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
Exemple #3
0
 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_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)
Exemple #6
0
 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)
Exemple #7
0
 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)
Exemple #9
0
 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)
Exemple #11
0
 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)
Exemple #12
0
 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)
Exemple #13
0
 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)
Exemple #14
0
 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)
Exemple #15
0
 def test_validate_key_error_empty_key(self):
     key_string = ""
     result = SshKey.validate_key_string(key_string)
     self.assertFalse(result)
 def test_validate_key_error_none_key(self):
     key_string = None
     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_too_short_key(self):
     key_string = "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsEctmRR8YdO+nnZauPqhhsvOn6c30szVe1Gqmc6"
     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)