
    Dj
                    z    d dl mZ d dlmZ d dlmZ d dlmZ ddl	m
Z
 ddlmZmZmZmZmZ  G d	 d
e          ZdS )    )annotations)x509)InvalidSignature)default_backend   )ES256   )AttestationAttestationResultAttestationTyper   catch_builtinsc                  >    e Zd ZdZed             Zed             ZdS )FidoU2FAttestationzfido-u2fc           	        |j         }|J d|j        d         z   |j        d         z   }|d         }t                              |j        ||j        ||d         |d                    t          t          j        |          S )N   x5cr   sig)	credential_data
public_keyr   verify_signature
rp_id_hashcredential_idr   r   BASIC)self	statement	auth_dataclient_data_hashcdpkr   s          P/home/thesage/.hermes/venv/lib/python3.11/site-packages/fido2/attestation/u2f.pyverifyzFidoU2FAttestation.verify/   s    &~~~r}R((2=+<<++ Fe	
 	
 	
 !!6<<<    c                   d| z   |z   |z   |z   }t          j        |t                                }	 t          j        |                                                              ||           d S # t          $ r t                      w xY w)N    )	r   load_der_x509_certificater   r   from_cryptography_keyr   r#   _InvalidSignaturer   )	app_paramclient_param
key_handler   
cert_bytes	signaturemcerts           r"   r   z#FidoU2FAttestation.verify_signature?   s     I,z9JF-j/:K:KLL	%'(9(9::AA!YOOOOO  	% 	% 	%"$$$	%s   :A- -BN)__name__
__module____qualname__FORMATr   r#   staticmethodr    r$   r"   r   r   ,   sM        F= = ^= % % \% % %r$   r   N)
__future__r   cryptographyr   cryptography.exceptionsr   r)   cryptography.hazmat.backendsr   coser   baser
   r   r   r   r   r6   r$   r"   <module>r=      s   8 # " " " " "       I I I I I I 8 8 8 8 8 8                   % % % % % % % % % %r$   