Ejemplo n.º 1
0
 def verify_signature(self, pubkey):
     data = self.app_param + self.user_presence + self.counter + \
         self.chal_param
     digest = H(data)
     pub_key = pub_key_from_der(pubkey)
     if not pub_key.verify_dsa_asn1(digest, self.signature) == 1:
         raise Exception('Challenge signature verification failed!')
Ejemplo n.º 2
0
    def verify_signature(self, pubkey):
        data = (self.app_param + self.user_presence + self.counter +
                self.chal_param)
        digest = sha_256(data)
        pub_key = pub_key_from_der(pubkey)

        verify_ecdsa_signature(digest, pub_key, self.signature)
Ejemplo n.º 3
0
 def verify_signature(self, pubkey):
     data = self.app_param + self.user_presence + self.counter + \
         self.chal_param
     digest = sha_256(data)
     pub_key = pub_key_from_der(pubkey)
     if not pub_key.verify_dsa_asn1(digest, self.signature) == 1:
         raise Exception('Challenge signature verification failed!')
Ejemplo n.º 4
0
 def webauthnuser(self):
     d = json.loads(self.json_data)
     # We manually need to convert the pubkey from DER format (used in our
     # former U2F implementation) to the format required by webauthn. This
     # is based on the following example:
     # https://www.w3.org/TR/webauthn/#sctn-encoded-credPubKey-examples
     pub_key = pub_key_from_der(
         websafe_decode(d['publicKey'].replace('+', '-').replace('/', '_')))
     pub_key = binascii.unhexlify(
         'A5010203262001215820{:064x}225820{:064x}'.format(
             pub_key.public_numbers().x,
             pub_key.public_numbers().y))
     return webauthn.WebAuthnUser(d['keyHandle'], self.user.email,
                                  str(self.user),
                                  settings.SITE_URL, d['keyHandle'],
                                  websafe_encode(pub_key), 1,
                                  urlparse(settings.SITE_URL).netloc)
Ejemplo n.º 5
0
    def verify_signature(self, pubkey):
        data = (self.app_param + self.user_presence + self.counter +
                self.chal_param)
        pub_key = pub_key_from_der(pubkey)

        verify_ecdsa_signature(data, pub_key, self.signature)