o
    s–h_	  ã                   @  sv   d dl mZ ddlmZmZmZmZmZ ddlm	Z	 d dl
mZ d dlmZ d dlmZ e d	¡ZG d
d„ deƒZdS )é    )Úannotationsé   )ÚAttestationÚAttestationTypeÚAttestationResultÚInvalidDataÚcatch_builtinsé   )Úsha256)Úx509)Údefault_backend)Úbytes_eqz1.2.840.113635.100.8.2c                   @  s   e Zd ZdZedd„ ƒZdS )ÚAppleAttestationÚapplec           	      C  s`   |d }t || ƒ}t |d tƒ ¡}|j t¡}|jjdd … }t||ƒs*t	dƒ‚t
tj|ƒS )NÚx5cr   é   zNonce does not match!)r
   r   Úload_der_x509_certificater   Ú
extensionsÚget_extension_for_oidÚ	OID_APPLEÚvaluer   r   r   r   ÚANON_CA)	ÚselfÚ	statementÚ	auth_dataÚclient_data_hashr   Úexpected_nonceÚcertÚextÚ	ext_nonce© r    úR/var/www/html/env_mimamsha/lib/python3.10/site-packages/fido2/attestation/apple.pyÚverify2   s   
zAppleAttestation.verifyN)Ú__name__Ú
__module__Ú__qualname__ÚFORMATr   r"   r    r    r    r!   r   /   s    r   N)Ú
__future__r   Úbaser   r   r   r   r   Úutilsr
   Úcryptographyr   Úcryptography.hazmat.backendsr   Ú,cryptography.hazmat.primitives.constant_timer   ÚObjectIdentifierr   r   r    r    r    r!   Ú<module>   s   
