�
�3Tf
� �� � d dl mZ d dlZd dlZd dlZd dlZd dlZd dlmZ d dl m
Z
d dl mZ d dl
mZmZ d dlmZ d dlmZ d d lmZmZ d d
lmZ d dlmZmZmZmZmZmZm Z m!Z!m"Z" d dl#m$Z$m%Z% d d
l&m'Z'm(Z(m)Z)m*Z* ejV ddd�� Z, dsd�Z-dtd�Z. G d� de/� Z0 G d� de/� Z1 G d� dejd �� Z3 G d� d� Z4 G d� de3� Z5 G d� de3� Z6 G d � d!e3� Z7 G d"� d#e3� Z8 G d$� d%e3� Z9 G d&� d'� Z: G d(� d)e3� Z; G d*� d+e3� Z< G d,� d-e3� Z= G d.� d/e3� Z> G d0� d1� Z? G d2� d3ej� � ZAeAj� eAj� eAj� eAj� eAj� eAj� eAj� eAj� d4�ZJeAj� d5eAj� d6eAj� d7eAj� d8eAj� d9eAj� d:eAj� d;eAj� d<iZK G d=� d>e3� ZL G d?� d@e3� ZM G dA� dB� ZN G dC� dD� ZO G dE� dF� ZP G dG� dHe3� ZQ G dI� dJe3� ZR G dK� dLe3� ZS G dM� dNe3� ZT G dO� dPej� � ZUeUD � ci c] } | j� | �� c} ZW G dQ� dRe3� ZX G dS� dTe3� ZY G dU� dVe3� ZZ G dW� dXej� e, � Z\ G dY� dZ� Z] G d[� d\e3� Z^ G d]� d^e3� Z_ G d_� d`e3� Z` G da� dbe3� Za G dc� dde3� Zb G de� dfe3� Zc G dg� dhe3� Zd G di� dje3� Ze G dk� dle3� Zf G dm� dne3� Zg G do� dpe3� Zh G dq� dre3� Ziyc c} w )u� )�annotationsN)�utils)�asn1)�x509)�
constant_time�
serialization)�EllipticCurvePublicKey)�RSAPublicKey)�CertificateIssuerPublicKeyTypes�CertificatePublicKeyTypes)�SignedCertificateTimestamp) �
DirectoryName�DNSName�GeneralName� IPAddress� OtherName�RegisteredID�
RFC822Name�UniformResourceIdentifier�_IPAddressTypes)�Name�RelativeDistinguishedName)�CRLEntryExtensionOID�ExtensionOID�ObjectIdentifier�OCSPExtensionOID�ExtensionTypeVar�
ExtensionTypeT)�bound� covariantc �B � t | t � rC| j t j j
t j j � }n�t | t � rC| j t j j t j j � }nW| j t j j
t j j � }t j |� }t j |� j! � S �N)�
isinstancer
�public_bytesr �Encoding�DER�PublicFormat�PKCS1r �X962�UncompressedPoint�SubjectPublicKeyInfor �parse_spki_for_data�hashlib�sha1�digest)�
public_key�data�
serializeds �>/usr/lib/python3/dist-packages/cryptography/x509/extensions.py�_key_identifier_from_public_keyr4 2 s� � � �*�l�+��&�&��"�"�&�&��&�&�,�,�
��
�J� 6� 7��&�&��"�"�'�'��&�&�8�8�
�� �,�,��"�"�&�&��&�&�;�;�
�
� �'�'�
�3���<�<���$�$�&�&� c �. � � d� fd�}� fd�}� fd�}|||fS )Nc �. �� t t | �� � S r" |