def _do_save(self, req, user): """ Save ssh key into database """ if not req.args.get('ssh_key'): add_warning(req, _('Failed to add SSH key: Key is required')) return user ssh_key = req.args.get('ssh_key') ssh_key = SshKey.remove_comment_from_key_string(ssh_key) if not SshKey.validate_key_string(ssh_key): add_warning( req, _('Failed to add SSH key: invalid SSH key, key must be in open ssh format' )) return user description = req.args.get('description') if len(description) > 200: add_warning(req, _('Failed to add SSH key: Too long description')) return user key_store = CQDESshKeyStore.instance() user_id = user.id if key_store.add_ssh_key(user_id, ssh_key, description): add_notice( req, _('New SSH key added (please allow 5 minutes for replication)') ) return user add_warning(req, _('Failed to add SSH key: Server error')) return user
def _do_save(self, req, user): """ Save ssh key into database """ if not req.args.get('ssh_key'): add_warning(req, _('Failed to add SSH key: Key is required')) return user ssh_key = req.args.get('ssh_key') ssh_key = SshKey.remove_comment_from_key_string(ssh_key) if not SshKey.validate_key_string(ssh_key): add_warning(req, _('Failed to add SSH key: invalid SSH key, key must be in open ssh format')) return user description = req.args.get('description') if len(description) > 200: add_warning(req, _('Failed to add SSH key: Too long description')) return user key_store = CQDESshKeyStore.instance() user_id = user.id if key_store.add_ssh_key(user_id, ssh_key, description): add_notice(req, _('New SSH key added (please allow 5 minutes for replication)')) return user add_warning(req, _('Failed to add SSH key: Server error')) return user
def test_remove_comment_from_key(self): key_string = "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsEctmRR8YdO+nnZauPqhhsvOn6c30szVe1Gqmc6kM8/Wi9XS+dUKAL12iuQTrkuFCY6wvmfLG9ACIV8b1ZXxOxE3G5Q+0FvGJMHCdKL0b2fDCLiDNpcg22xOb4QaXggJaXR+M8yxNn5I+LIKpSA6vP6HEYKxm3aHQyrYDhy7WuJ8L/BUw+cAxDa0+y9l9ZuKwv5IdNTwU/WdQWeBXiLyhEV6Pcnx6pTDjgJqtnTHePQ/Cm/pedIYoeamFZwWkabnoTPZPiKa+ATLNXXOBzvcV32f2EFW7957TodpL1Yhg/WPDcD/2ypGWgmtUmWhYxJhXAactaTiZni+nhVjEi9zmQ== [email protected] on paras" result = SshKey.remove_comment_from_key_string(key_string) count = len(result.split()) self.assertEquals(count, 2) key_string = "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsEctmRR8YdO+nnZauPqhhsvOn6c30szVe1Gqmc6kM8/Wi9XS+dUKAL12iuQTrkuFCY6wvmfLG9ACIV8b1ZXxOxE3G5Q+0FvGJMHCdKL0b2fDCLiDNpcg22xOb4QaXggJaXR+M8yxNn5I+LIKpSA6vP6HEYKxm3aHQyrYDhy7WuJ8L/BUw+cAxDa0+y9l9ZuKwv5IdNTwU/WdQWeBXiLyhEV6Pcnx6pTDjgJqtnTHePQ/Cm/pedIYoeamFZwWkabnoTPZPiKa+ATLNXXOBzvcV32f2EFW7957TodpL1Yhg/WPDcD/2ypGWgmtUmWhYxJhXAactaTiZni+nhVjEi9zmQ==" result = SshKey.remove_comment_from_key_string(key_string) count = len(result.split()) self.assertEquals(count, 2)
def test_create_from_row_error(self): row =["37", "2903", "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsEctmRR8YdO+nnZauPqhhsvOn6c30szVe1Gqmc6kM8/Wi9XS+dUKAL12iuQTrkuFCY6wvmfLG9ACIV8b1ZXxOxE3G5Q+0FvGJMHCdKL0b2fDCLiDNpcg22xOb4QaXggJaXR+M8yxNn5I+LIKpSA6vP6HEYKxm3aHQyrYDhy7WuJ8L/BUw+cAxDa0+y9l9ZuKwv5IdNTwU/WdQWeBXiLyhEV6Pcnx6pTDjgJqtnTHePQ/Cm/pedIYoeamFZwWkabnoTPZPiKa+ATLNXXOBzvcV32f2EFW7957TodpL1Yhg/WPDcD/2ypGWgmtUmWhYxJhXAactaTiZni+nhVjEi9zmQ==", "2010-12-01 12:15:07"] new_key = SshKey.from_sql_row(row) self.assertEquals(new_key, None)
def test_create_from_row_error(self): row = [ "37", "2903", "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsEctmRR8YdO+nnZauPqhhsvOn6c30szVe1Gqmc6kM8/Wi9XS+dUKAL12iuQTrkuFCY6wvmfLG9ACIV8b1ZXxOxE3G5Q+0FvGJMHCdKL0b2fDCLiDNpcg22xOb4QaXggJaXR+M8yxNn5I+LIKpSA6vP6HEYKxm3aHQyrYDhy7WuJ8L/BUw+cAxDa0+y9l9ZuKwv5IdNTwU/WdQWeBXiLyhEV6Pcnx6pTDjgJqtnTHePQ/Cm/pedIYoeamFZwWkabnoTPZPiKa+ATLNXXOBzvcV32f2EFW7957TodpL1Yhg/WPDcD/2ypGWgmtUmWhYxJhXAactaTiZni+nhVjEi9zmQ==", "2010-12-01 12:15:07" ] new_key = SshKey.from_sql_row(row) self.assertEquals(new_key, None)
def test_validate_key_error_none_key(self): key_string = None result = SshKey.validate_key_string(key_string) self.assertFalse(result)
def test_validate_key_error_empty_key(self): key_string = "" result = SshKey.validate_key_string(key_string) self.assertFalse(result)
def test_remove_comment_from_key_error(self): key_string = None result = SshKey.remove_comment_from_key_string(key_string) self.assertEquals(result, None)
def test_validate_key_error_garble(self): key_string = "aglktjdkfgh4ya485yaqbv27q5cta72xb4to927t4vbtc7qne7tk27atf4rdtk78t4o8a7to287dt2387t5823adth8a27t4538a273t5rad8fht7b4cx872ctv14acxv4vx724528375c2v83476238c5628736827356258376c286vuwertawcuyewtvaccuw63vtyecrftcauitcai8ca3cvbsvdhcajrtjhefjhewyvcejw@hrywcvhgwejawfcvtweerftcjawerfcajv3xc84bru6wjruyagtavc2iq2bx4%5tiq2c5tb4i5c78t587ctqixuhe45rgdsgdf,msdf-g.,ergtreaiy3w v834 92461x t<yzb 32t" result = SshKey.validate_key_string(key_string) self.assertFalse(result)
def test_validate_key_error_invalid_key_padding(self): key_string = "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsEctmRR8YdO+nnZauPqhhsvOn6c30szVe1Gqmc6kM8/Wi9XS+dUKAL12iuQTrkuFCY6wvmfLG9ACIV8b1ZXxOxE3G5Q+0FvGJMHCdKL0b2fDCLiDNpcg22xOb4QaXggJaXR+M8yxNn5I+LIKpSA6vP6HEYKxm3aHQyrYDhy7WuJ8L/BUw+cAxDa0+y9l9ZuKwv5IdNTwU/WdQWeBXiLyhEV6Pcnx6pTDjgJqtnTHePQ/Cm/pedIYoeamFZwWkabnoTPZPiKa+ATLNXXOBzvcV32f2EFW7957TodpL1Yhg/WPDcD/2ypGWgmtUmWhYxJhXAactaTiZni+nhVjEi9zmQ=" result = SshKey.validate_key_string(key_string) self.assertFalse(result)
def test_validate_key_error_too_long_key(self): key_string = "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsEctmRR8YdO+nnZauPqhhsvOn6c30szVe1Gqmc6kM8/Wi9XS+dUKAL12iuQTrkuFCY6wvmfLG9ACIV8b1ZXxOxE3G5Q+0FvGJMHCdKL0b2fDCLiDNpcg22xOb4QaXggJaXR+M8yxNn5I+LIKpSA6vP6HEYKxm3aHQyrYDhy7WuJ8L/BUw+cAxDa0+y9l9ZuKwv5IdNTwU/WdQWeBXiLyhEV6Pcnx6pTDjgJqtnTHePQ/Cm/pedIYoeamFZwWkabnoTPZPiKa+ATLNXXOBzvcV32f2EFW7957TodpL1Yhg/WPDcD/2ypGWgmtUmWhYxJhXAactaTidfsgsertaefsdgasgsdgsasdcaxcexcaewcxffeaerwq3rqrseavreacaxra3245rxa23r2a5xq35q235x235x2x5q2Zni+nhVjEi9zmQ==" result = SshKey.validate_key_string(key_string) self.assertFalse(result)
def test_validate_key_error_too_short_key(self): key_string = "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsEctmRR8YdO+nnZauPqhhsvOn6c30szVe1Gqmc6" result = SshKey.validate_key_string(key_string) self.assertFalse(result)