예제 #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="
예제 #2
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()
예제 #3
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()