Example #1
0
def test_aes_ok_encrypt():
    saved_key = "thT80v8XOBJaFZ85wmP05TdqSX/BB4lVTIvGuac/vgE="

    request_nonce = "I3AWYKKIgTtchOGCHwNi6A=="
    request_verifer = "eij8zQB61XVoh36SisyTDFbmh5J88oVzq/gVpOKQHQM="

    message = "https://webmail.gurkenbruehe.de"

    kpc = AESCipher(saved_key, request_nonce)
    assert kpc.is_valid(request_nonce, request_verifer)
    assert kpc.encrypt(
        message) == "LTvHK1ctTVFVT9APqW6jhwKtdsZ5Vu21Pa79pLV4b+Y="
Example #2
0
    def set_verifier(self, new_client_id=None):
        if new_client_id:
            client_id = new_client_id
            key = Conf().backend.get_key_for_client(client_id)
            if not key:
                raise AuthenticationError()
        else:
            client_id = self.get_client_id()
            key = self.kpc.get_key()

        nonce = AESCipher.generate_nonce()
        response_kpc = AESCipher(key, nonce)

        self.response_dict.update({"Nonce": nonce, "Verifier": response_kpc.encrypt(nonce)})
        self.set_response_kpc = response_kpc
Example #3
0
    def authenticate(self):
        client_id = self.get_client_id()
        log.info("Authenticate client %s" % client_id)

        key = Conf().backend.get_config(client_id)
        if not key:
            raise AuthenticationError()

        nonce = self.request_dict['Nonce']
        verifier = self.request_dict['Verifier']

        kpc = AESCipher(key, nonce)

        # wrong saved key in database -> force associate
        if not kpc.is_valid(nonce, verifier):
            raise InvalidAuthentication()

        self.set_kpc = kpc
        self.set_verifier()
def test_entry_spec_unicode():
    saved_key = "thT80v8XOBJaFZ85wmP05TdqSX/BB4lVTIvGuac/vgE="

    request_nonce = "I3AWYKKIgTtchOGCHwNi6A=="
    request_verifer = "eij8zQB61XVoh36SisyTDFbmh5J88oVzq/gVpOKQHQM="

    kpc = AESCipher(saved_key, request_nonce)

    entry = EntrySpec(uuid=u"1", title=u"ä", login=u"ü",
                      password=u"ö", url=u"http://www.fuß.de/login/form.html")

    assert entry.to_json_dict(kpc)
Example #5
0
    def authenticate(self):
        client_id = self.get_client_id()

        log.info("Authenticate client %s" % client_id)

        key = Conf().backend.get_key_for_client(client_id)
        # FIXME: Fix unit tests
        # Special case when methods used in unit test are not mocked correctly.
        # <TestAES name='AESCipher().key' id='25131856'> is not None :S
        if key is None or not isinstance(key, basestring):
            raise AuthenticationError()

        nonce = self.request_dict['Nonce']
        verifier = self.request_dict['Verifier']

        kpc = AESCipher(key, nonce)

        # wrong saved key in database -> force associate
        if not kpc.is_valid(nonce, verifier):
            raise InvalidAuthentication()

        self.set_kpc = kpc
        self.set_verifier()
Example #6
0
def test_gen_nonce():
    nonce = AESCipher.generate_nonce()
    assert len(
        nonce
    ) == 24  # a 16 char number should always result in a 24 char base64 string