� A��g~)����ddlmZddlZddlZddlZddlZddlZddlmZddl m Z ddl m Z ddl mZmZddlmZddlmZdd lmZmZdd lmZdd lmZmZmZmZmZmZm Z m!Z!m"Z"dd l#m$Z$m%Z%dd l&m'Z'm(Z(m)Z)m*Z*ej+ddd���Z,d�d�Z-d�d�Z.Gd�de/��Z0Gd�de/��Z1Gd�dej2���Z3Gd �d!��Z4Gd"�d#e3��Z5Gd$�d%e3��Z6Gd&�d'e3��Z7Gd(�d)e3��Z8Gd*�d+e3��Z9Gd,�d-��Z:Gd.�d/e3��Z;Gd0�d1e3��Z<Gd2�d3e3��Z=Gd4�d5e3��Z>Gd6�d7��Z?Gd8�d9ej@��ZAeAjBeAjCeAjDeAjEeAjFeAjGeAjHeAjId:�ZJeAjBd;eAjCd<eAjDd=eAjEd>eAjFd?eAjGd@eAjHdAeAjIdBiZKeAjLdeAjBd;eAjCd<eAjDd=eAjEd>eAjFd?eAjGd@eAjMdBeAjHdCeAjIdDi ZNGdE�dFe3��ZOGdG�dHe3��ZPGdI�dJ��ZQGdK�dL��ZRGdM�dN��ZSGdO�dPe3��ZTGdQ�dRe3��ZUGdS�dTe3��ZVGdU�dVe3��ZWGdW�dXej@��ZXdY�eXD��ZYGdZ�d[e3��ZZGd\�d]e3��Z[Gd^�d_e3��Z\Gd`�daej]e,��Z^Gdb�dc��Z_Gdd�dee3��Z`Gdf�dge3��ZaGdh�die3��ZbGdj�dke3��ZcGdl�dme3��ZdGdn�doe3��ZeGdp�dqe3��ZfGdr�dse3��ZgGdt�due3��ZhGdv�dwe3��ZiGdx�dye3��ZjGdz�d{��ZkGd|�d}��ZlGd~�d��ZmGd��d�e3��ZnGd��d�e3��ZodS)��)� 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� covariant� public_keyr �return�bytesc��t|t��r5|�tjjtjj��}n�t|t��r5|�tjj tjj ��}nH|�tjjtjj ��}tj |��}tj|�����S�N)� isinstancer � public_bytesr�Encoding�DER� PublicFormat�PKCS1r �X962�UncompressedPoint�SubjectPublicKeyInfor�parse_spki_for_data�hashlib�sha1�digest)r!�data� serializeds �l/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/cryptography/x509/extensions.py�_key_identifier_from_public_keyr62s����*�l�+�+�4��&�&� � "� &� � &� ,� � ��� �J� 6� 7� 7� 4��&�&� � "� '� � &� 8� � ���  �,�,� � "� &� � &� ;� � � ��'� �3�3�� �<�� � � $� $� &� &�&�� field_name�strc�.��d�fd� }�fd�}�fd�}|||fS)Nr"�intc�>��tt|�����Sr%)�len�getattr��selfr8s �r5� len_methodz*_make_sequence_methods.<locals>.len_methodKs����7�4��,�,�-�-�-r7c�>��tt|�����Sr%)�iterr>r?s �r5� iter_methodz+_make_sequence_methods.<locals>.iter_methodNs����G�D�*�-�-�.�.�.r7c�0��t|���|Sr%)r>)r@�idxr8s �r5�getitem_methodz._make_sequence_methods.<locals>.getitem_methodQs����t�Z�(�(��-�-r7�r"r;�)r8rArDrGs` r5�_make_sequence_methodsrJJsb���.�.�.�.�.�.�/�/�/�/�/�.�.�.�.�.� �{�N� 2�2r7c� ��eZdZd�fd� Z�xZS) �DuplicateExtension�msgr9�oidrr"�Nonec�X��t���|��||_dSr%��super�__init__rN�r@rMrN� __class__s �r5rSzDuplicateExtension.__init__X�&��� �������������r7�rMr9rNrr"rO��__name__� __module__� __qualname__rS� __classcell__�rUs@r5rLrLW�=����������������r7rLc� ��eZdZd�fd� Z�xZS) �ExtensionNotFoundrMr9rNrr"rOc�X��t���|��||_dSr%rQrTs �r5rSzExtensionNotFound.__init__^rVr7rWrXr]s@r5r`r`]r^r7r`c�"�eZdZUded<dd�ZdS)rz!typing.ClassVar[ObjectIdentifier]rNr"r#c�&�td|�����)z7 Serializes the extension type to DER. z3public_bytes is not implemented for extension type )�NotImplementedError�r@s r5r'zExtensionType.public_bytesfs!��"� J�$� J� J� � � r7N�r"r#)rYrZr[�__annotations__r'rIr7r5rrcs6�������*�*�*�*� � � � � � r7)� metaclassc�L�eZdZdd�Zdd �Zdd �Zed��\ZZZ dd�Z dS)� Extensions� extensions�)typing.Iterable[Extension[ExtensionType]]r"rOc�.�t|��|_dSr%)�list� _extensions)r@rks r5rSzExtensions.__init__ps�� � �+�+����r7rNr�Extension[ExtensionType]c�R�|D]}|j|kr|cS�td|�d�|���)N�No � extension was found)rNr`)r@rN�exts r5�get_extension_for_oidz Extensions.get_extension_for_oidusJ��� � �C��w�#�~�~�� � � �� � ?�c� ?� ?� ?��E�E�Er7�extclass�type[ExtensionTypeVar]�Extension[ExtensionTypeVar]c��|turtd���|D]}t|j|��r|cS�t d|�d�|j���)Nz|UnrecognizedExtension can't be used with get_extension_for_class because more than one instance of the class may be present.rrrs)�UnrecognizedExtension� TypeErrorr&�valuer`rN)r@rvrts r5�get_extension_for_classz"Extensions.get_extension_for_class~s��� �,� ,� ,��)��� � � � �C��#�)�X�.�.� �� � � � � � 0�(� 0� 0� 0�(�,� � � r7ror9c��d|j�d�S)Nz <Extensions(�)>)rores r5�__repr__zExtensions.__repr__�s��2�d�.�2�2�2�2r7N)rkrlr"rO)rNrr"rp)rvrwr"rx�r"r9) rYrZr[rSrur}rJ�__len__�__iter__� __getitem__r�rIr7r5rjrjos�������,�,�,�,� F�F�F�F� � � � �$&<�%;�M�%J�%J�"�G�X�{�3�3�3�3�3�3r7rjc�\�eZdZejZdd�Zdd �Zdd �Zdd �Z e dd ���Z dd�Z dS)� CRLNumber� crl_numberr;r"rOc�\�t|t��std���||_dS�Nzcrl_number must be an integer�r&r;r{� _crl_number�r@r�s r5rSzCRLNumber.__init__��1���*�c�*�*� =��;�<�<� <�%����r7�other�object�boolc�Z�t|t��stS|j|jkSr%)r&r��NotImplementedr��r@r�s r5�__eq__zCRLNumber.__eq__�s*���%��+�+� "�!� !���%�"2�2�2r7c�*�t|j��Sr%��hashr�res r5�__hash__zCRLNumber.__hash__�����D�O�$�$�$r7r9c��d|j�d�S)Nz <CRLNumber(r�r�res r5r�zCRLNumber.__repr__�s��0�T�_�0�0�0�0r7c��|jSr%�r�res r5r�zCRLNumber.crl_number�� ����r7r#c�*�tj|��Sr%�� rust_x509�encode_extension_valueres r5r'zCRLNumber.public_bytes�����/��5�5�5r7N�r�r;r"rO�r�r�r"r�rHr�rf) rYrZr[r� CRL_NUMBERrNrSr�r�r��propertyr�r'rIr7r5r�r��s������� � !�C�&�&�&�&� 3�3�3�3� %�%�%�%�1�1�1�1�� � � ��X� �6�6�6�6�6�6r7r�c��eZdZejZdd �Zed d ���Zed!d���Z d"d�Z d#d�Z d$d�Z e d%d���Ze d&d���Ze d'd���Zd(d�ZdS))�AuthorityKeyIdentifier�key_identifier� bytes | None�authority_cert_issuer�#typing.Iterable[GeneralName] | None�authority_cert_serial_number� int | Noner"rOc� �|du|dukrtd���|�7t|��}td�|D����std���|�$t |t ��std���||_||_||_dS)NzXauthority_cert_issuer and authority_cert_serial_number must both be present or both Nonec3�@K�|]}t|t��V��dSr%�r&r��.0�xs r5� <genexpr>z2AuthorityKeyIdentifier.__init__.<locals>.<genexpr>�s=������/0� �1�k�*�*������r7z;authority_cert_issuer must be a list of GeneralName objectsz/authority_cert_serial_number must be an integer) � ValueErrorrn�allr{r&r;�_key_identifier�_authority_cert_issuer�_authority_cert_serial_number)r@r�r�r�s r5rSzAuthorityKeyIdentifier.__init__�s��� "�T� )� (�D� 0� � ��4��� � !� ,�$(�)>�$?�$?� !����4I������ � ����� (� 3�J� (�#�= �= � 3��M�N�N� N�-���&;��#�-I��*�*�*r7r!r c�<�t|��}||dd���S�N�r�r�r��r6)�clsr!r2s r5�from_issuer_public_keyz-AuthorityKeyIdentifier.from_issuer_public_key�s3��1��<�<���s�!�"&�)-� � � � r7�ski�SubjectKeyIdentifierc�(�||jdd���Sr��r2)r�r�s r5�"from_issuer_subject_key_identifierz9AuthorityKeyIdentifier.from_issuer_subject_key_identifier�s(���s��:�"&�)-� � � � r7r9c�8�d|j�d|j�d|j�d�S)Nz'<AuthorityKeyIdentifier(key_identifier=z, authority_cert_issuer=z, authority_cert_serial_number=rr�res r5r�zAuthorityKeyIdentifier.__repr__�s@�� �d�6I� � �%)�%?� � �,0�,M� � � � r7r�r�r�c��t|t��stS|j|jko|j|jko|j|jkSr%)r&r�r�r�r�r�r�s r5r�zAuthorityKeyIdentifier.__eq__�sY���%�!7�8�8� "�!� !� � �5�#7� 7� 2��*�e�.I�I� 2��1��1�2� r7r;c�v�|j�d}nt|j��}t|j||jf��Sr%)r��tupler�r�r�)r@�acis r5r�zAuthorityKeyIdentifier.__hash__sD�� � %� -��C�C���2�3�3�C�� � �#�t�'H� I� � � r7c��|jSr%)r�res r5r�z%AuthorityKeyIdentifier.key_identifier � ���#�#r7�list[GeneralName] | Nonec��|jSr%)r�res r5r�z,AuthorityKeyIdentifier.authority_cert_issuers ���*�*r7c��|jSr%)r�res r5r�z3AuthorityKeyIdentifier.authority_cert_serial_numbers ���1�1r7r#c�*�tj|��Sr%r�res r5r'z#AuthorityKeyIdentifier.public_bytesr�r7N)r�r�r�r�r�r�r"rO)r!r r"r�)r�r�r"r�r�r�rH�r"r��r"r��r"r�rf)rYrZr[r�AUTHORITY_KEY_IDENTIFIERrNrS� classmethodr�r�r�r�r�r�r�r�r�r'rIr7r5r�r��s%������ � /�C�J�J�J�J�L� � � ��[� �� � � ��[� � � � � �  �  �  �  � � � � ��$�$�$��X�$��+�+�+��X�+� �2�2�2��X�2�6�6�6�6�6�6r7r�c��eZdZejZdd�Zedd���Ze dd ���Z e dd ���Z dd �Z dd�Z dd�Zdd�ZdS)r�r2r#r"rOc��||_dSr%��_digest)r@r2s r5rSzSubjectKeyIdentifier.__init__"s ���� � � r7r!r c�2�|t|����Sr%r�)r�r!s r5�from_public_keyz$SubjectKeyIdentifier.from_public_key%s���s�2�:�>�>�?�?�?r7c��|jSr%r�res r5r2zSubjectKeyIdentifier.digest+� ���|�r7c��|jSr%r�res r5r�z#SubjectKeyIdentifier.key_identifier/r�r7r9c��d|j�d�S)Nz<SubjectKeyIdentifier(digest=rr�res r5r�zSubjectKeyIdentifier.__repr__3s��@�t�{�@�@�@�@r7r�r�r�c�x�t|t��stStj|j|j��Sr%)r&r�r�r�bytes_eqr2r�s r5r�zSubjectKeyIdentifier.__eq__6s2���%�!5�6�6� "�!� !��%�d�k�5�<�@�@�@r7r;c�*�t|j��Sr%)r�r2res r5r�zSubjectKeyIdentifier.__hash__<����D�K� � � r7c�*�tj|��Sr%r�res r5r'z!SubjectKeyIdentifier.public_bytes?r�r7N)r2r#r"rO)r!r r"r�rfr�r�rH)rYrZr[r�SUBJECT_KEY_IDENTIFIERrNrSr�r�r�r2r�r�r�r�r'rIr7r5r�r�s������� � -�C������@�@�@��[�@� �����X�������X��A�A�A�A�A�A�A�A� !�!�!�!�6�6�6�6�6�6r7r�c�b�eZdZejZdd�Zed��\ZZ Z dd�Z dd �Z dd�Z dd�ZdS)�AuthorityInformationAccess� descriptions�"typing.Iterable[AccessDescription]r"rOc��t|��}td�|D����std���||_dS)Nc3�@K�|]}t|t��V��dSr%�r&�AccessDescriptionr�s r5r�z6AuthorityInformationAccess.__init__.<locals>.<genexpr>J�-����J�J��:�a�!2�3�3�J�J�J�J�J�Jr7�@Every item in the descriptions list must be an AccessDescription�rnr�r{� _descriptions�r@r�s r5rSz#AuthorityInformationAccess.__init__F�W���L�)�)� ��J�J�\�J�J�J�J�J� ��$��� � *����r7r�r9c��d|j�d�S)Nz<AuthorityInformationAccess(r�r�res r5r�z#AuthorityInformationAccess.__repr__Ts��D�d�.@�D�D�D�Dr7r�r�r�c�Z�t|t��stS|j|jkSr%)r&r�r�r�r�s r5r�z!AuthorityInformationAccess.__eq__Ws,���%�!;�<�<� "�!� !��!�U�%8�8�8r7r;c�D�tt|j����Sr%�r�r�r�res r5r�z#AuthorityInformationAccess.__hash__]����E�$�,�-�-�.�.�.r7r#c�*�tj|��Sr%r�res r5r'z'AuthorityInformationAccess.public_bytes`r�r7N�r�r�r"rOr�r�rHrf)rYrZr[r�AUTHORITY_INFORMATION_ACCESSrNrSrJr�r�r�r�r�r�r'rIr7r5r�r�Cs������� � 3�C� *� *� *� *�&<�%;�O�%L�%L�"�G�X�{�E�E�E�E�9�9�9�9� /�/�/�/�6�6�6�6�6�6r7r�c�b�eZdZejZdd�Zed��\ZZ Z dd�Z dd �Z dd�Z dd�ZdS)�SubjectInformationAccessr�r�r"rOc��t|��}td�|D����std���||_dS)Nc3�@K�|]}t|t��V��dSr%r�r�s r5r�z4SubjectInformationAccess.__init__.<locals>.<genexpr>kr�r7r�r�r�s r5rSz!SubjectInformationAccess.__init__gr�r7r�r9c��d|j�d�S)Nz<SubjectInformationAccess(rr�res r5r�z!SubjectInformationAccess.__repr__us��B�D�,>�B�B�B�Br7r�r�r�c�Z�t|t��stS|j|jkSr%)r&r�r�r�r�s r5r�zSubjectInformationAccess.__eq__xs,���%�!9�:�:� "�!� !��!�U�%8�8�8r7r;c�D�tt|j����Sr%r�res r5r�z!SubjectInformationAccess.__hash__~r�r7r#c�*�tj|��Sr%r�res r5r'z%SubjectInformationAccess.public_bytes�r�r7Nr�r�r�rHrf)rYrZr[r�SUBJECT_INFORMATION_ACCESSrNrSrJr�r�r�r�r�r�r'rIr7r5r�r�ds������� � 1�C� *� *� *� *�&<�%;�O�%L�%L�"�G�X�{�C�C�C�C�9�9�9�9� /�/�/�/�6�6�6�6�6�6r7r�c�^�eZdZdd�Zdd �Zdd �Zdd�Zedd���Zedd���Z dS)r�� access_methodr�access_locationrr"rOc��t|t��std���t|t��std���||_||_dS)Nz)access_method must be an ObjectIdentifierz%access_location must be a GeneralName)r&rr{r�_access_method�_access_location)r@rr s r5rSzAccessDescription.__init__�s_���-�)9�:�:� I��G�H�H� H��/�;�7�7� E��C�D�D� D�+��� /����r7r9c�(�d|j�d|j�d�S)Nz!<AccessDescription(access_method=z, access_location=r)rr res r5r�zAccessDescription.__repr__�s0�� 8��0B� 8� 8�#�3� 8� 8� 8� r7r�r�r�c�z�t|t��stS|j|jko|j|jkSr%)r&r�r�rr r�s r5r�zAccessDescription.__eq__�sC���%�!2�3�3� "�!� !� � �%�"5� 5� >��$��(=�=� r7r;c�8�t|j|jf��Sr%)r�rr res r5r�zAccessDescription.__hash__�s���T�'��)=�>�?�?�?r7c��|jSr%)r res r5rzAccessDescription.access_method�� ���"�"r7c��|jSr%)r res r5r z!AccessDescription.access_location�� ���$�$r7N)rrr rr"rOr�r�rH�r"r)r"r) rYrZr[rSr�r�r�r�rr rIr7r5r�r��s������� 0� 0� 0� 0� � � � �  � � � �@�@�@�@��#�#�#��X�#��%�%�%��X�%�%�%r7r�c�t�eZdZejZdd�Zedd���Zedd ���Z dd �Z dd�Z dd�Z dd�Z dS)�BasicConstraints�car�� path_lengthr�r"rOc���t|t��std���|�|std���|�*t|t��r|dkrtd���||_||_dS)Nzca must be a boolean valuez)path_length must be None when ca is Falserz2path_length must be a non-negative integer or None)r&r�r{r�r;�_ca� _path_length)r@rrs r5rSzBasicConstraints.__init__�s����"�d�#�#� :��8�9�9� 9� � "�2� "��H�I�I� I� � "��;��,�,� #�0;�a����D��� ����'����r7c��|jSr%)rres r5rzBasicConstraints.ca�� ���x�r7c��|jSr%)rres r5rzBasicConstraints.path_length�� ��� � r7r9c�(�d|j�d|j�d�S)Nz<BasicConstraints(ca=z, path_length=r)rrres r5r�zBasicConstraints.__repr__�s/�� 0�D�G� 0� 0��+� 0� 0� 0� r7r�r�c�z�t|t��stS|j|jko|j|jkSr%)r&rr�rrr�s r5r�zBasicConstraints.__eq__�s:���%�!1�2�2� "�!� !��w�%�(�"�L�t�'7�5�;L�'L�Lr7r;c�8�t|j|jf��Sr%)r�rrres r5r�zBasicConstraints.__hash__�s���T�W�d�.�/�0�0�0r7r#c�*�tj|��Sr%r�res r5r'zBasicConstraints.public_bytes�r�r7N)rr�rr�r"rO�r"r�r�r�r�rHrf)rYrZr[r�BASIC_CONSTRAINTSrNrSr�rrr�r�r�r'rIr7r5rr�s������� � (�C�(�(�(�(�"�����X���!�!�!��X�!� � � � � M�M�M�M� 1�1�1�1�6�6�6�6�6�6r7rc�\�eZdZejZdd�Zedd���Zdd �Z dd �Z dd �Z dd�Z dS)�DeltaCRLIndicatorr�r;r"rOc�\�t|t��std���||_dSr�r�r�s r5rSzDeltaCRLIndicator.__init__�r�r7c��|jSr%r�res r5r�zDeltaCRLIndicator.crl_number�r�r7r�r�r�c�Z�t|t��stS|j|jkSr%)r&r'r�r�r�s r5r�zDeltaCRLIndicator.__eq__�s+���%�!2�3�3� "�!� !���%�"2�2�2r7c�*�t|j��Sr%r�res r5r�zDeltaCRLIndicator.__hash__�r�r7r9c��d|j�d�S)Nz<DeltaCRLIndicator(crl_number=rr�res r5r�zDeltaCRLIndicator.__repr__�s��C���C�C�C�Cr7r#c�*�tj|��Sr%r�res r5r'zDeltaCRLIndicator.public_bytes�r�r7Nr�rHr�r�rf) rYrZr[r�DELTA_CRL_INDICATORrNrSr�r�r�r�r�r'rIr7r5r'r'�s������� � *�C�&�&�&�&� � � � ��X� �3�3�3�3� %�%�%�%�D�D�D�D�6�6�6�6�6�6r7r'c�b�eZdZejZdd�Zed��\ZZ Z dd�Z dd �Z dd�Z dd�ZdS)�CRLDistributionPoints�distribution_points�"typing.Iterable[DistributionPoint]r"rOc��t|��}td�|D����std���||_dS)Nc3�@K�|]}t|t��V��dSr%�r&�DistributionPointr�s r5r�z1CRLDistributionPoints.__init__.<locals>.<genexpr>�>���� � �12�J�q�+� ,� ,� � � � � � r7�?distribution_points must be a list of DistributionPoint objects�rnr�r{�_distribution_points�r@r1s r5rSzCRLDistributionPoints.__init__��j��#�#6�7�7��� � �6I� � � � � � ����� � %8��!�!�!r7r:r9c��d|j�d�S)Nz<CRLDistributionPoints(r�r:res r5r�zCRLDistributionPoints.__repr__s��F��)B�F�F�F�Fr7r�r�r�c�Z�t|t��stS|j|jkSr%)r&r0r�r:r�s r5r�zCRLDistributionPoints.__eq__s,���%�!6�7�7� "�!� !��(�E�,F�F�Fr7r;c�D�tt|j����Sr%�r�r�r:res r5r�zCRLDistributionPoints.__hash__����E�$�3�4�4�5�5�5r7r#c�*�tj|��Sr%r�res r5r'z"CRLDistributionPoints.public_bytesr�r7N�r1r2r"rOr�r�rHrf)rYrZr[r�CRL_DISTRIBUTION_POINTSrNrSrJr�r�r�r�r�r�r'rIr7r5r0r0�s������� � .�C� 8� 8� 8� 8�&<�%;��&�&�"�G�X�{�G�G�G�G�G�G�G�G� 6�6�6�6�6�6�6�6�6�6r7r0c�b�eZdZejZdd�Zed��\ZZ Z dd�Z dd �Z dd�Z dd�ZdS)� FreshestCRLr1r2r"rOc��t|��}td�|D����std���||_dS)Nc3�@K�|]}t|t��V��dSr%r5r�s r5r�z'FreshestCRL.__init__.<locals>.<genexpr>%r7r7r8r9r;s r5rSzFreshestCRL.__init__!r<r7r:r9c��d|j�d�S)Nz <FreshestCRL(rr>res r5r�zFreshestCRL.__repr__3s��<�t�8�<�<�<�<r7r�r�r�c�Z�t|t��stS|j|jkSr%)r&rGr�r:r�s r5r�zFreshestCRL.__eq__6s+���%��-�-� "�!� !��(�E�,F�F�Fr7r;c�D�tt|j����Sr%rAres r5r�zFreshestCRL.__hash__<rBr7r#c�*�tj|��Sr%r�res r5r'zFreshestCRL.public_bytes?r�r7NrDr�r�rHrf)rYrZr[r� FRESHEST_CRLrNrSrJr�r�r�r�r�r�r'rIr7r5rGrGs������� � #�C� 8� 8� 8� 8�&<�%;��&�&�"�G�X�{�=�=�=�=�G�G�G�G� 6�6�6�6�6�6�6�6�6�6r7rGc��eZdZdd �Zdd �Zdd�Zdd�Zedd���Zedd���Z edd���Z edd���Z dS) r6� full_namer�� relative_name� RelativeDistinguishedName | None�reasons�frozenset[ReasonFlags] | None� crl_issuerr"rOc��|r|rtd���|s|s|std���|�7t|��}td�|D����std���|r$t |t ��std���|�7t|��}td�|D����std���|r=t |t ��rtd�|D����std ���|r+tj|vstj |vrtd ���||_ ||_ ||_ ||_ dS) NzOYou cannot provide both full_name and relative_name, at least one must be None.z?Either full_name, relative_name or crl_issuer must be provided.c3�@K�|]}t|t��V��dSr%r�r�s r5r�z-DistributionPoint.__init__.<locals>.<genexpr>Xs,����E�E�a�z�!�[�1�1�E�E�E�E�E�Er7z/full_name must be a list of GeneralName objectsz1relative_name must be a RelativeDistinguishedNamec3�@K�|]}t|t��V��dSr%r�r�s r5r�z-DistributionPoint.__init__.<locals>.<genexpr>es,����F�F�a�z�!�[�1�1�F�F�F�F�F�Fr7z2crl_issuer must be None or a list of general namesc3�@K�|]}t|t��V��dSr%�r&� ReasonFlagsr�s r5r�z-DistributionPoint.__init__.<locals>.<genexpr>ls,����C�C�a�z�!�[�1�1�C�C�C�C�C�Cr7z0reasons must be None or frozenset of ReasonFlagszLunspecified and remove_from_crl are not valid reasons in a DistributionPoint)r�rnr�r{r&r� frozensetr[� unspecified�remove_from_crl� _full_name�_relative_name�_reasons� _crl_issuer)r@rPrQrSrUs r5rSzDistributionPoint.__init__Ds��� � �� ��*��� �� �� �z� ����� � � ��Y���I��E�E�9�E�E�E�E�E� ��E���� � ��m�-F�G�G� ��G���� � !��j�)�)�J��F�F�:�F�F�F�F�F� ��H���� � P��7�I�.�.� P��C�C�7�C�C�C�C�C� P��N�O�O� O� � � � #�w� .� .��*�g�5�5��$��� � $���+����� �%����r7r9c�,�d�|��S)Nz}<DistributionPoint(full_name={0.full_name}, relative_name={0.relative_name}, reasons={0.reasons}, crl_issuer={0.crl_issuer})>��formatres r5r�zDistributionPoint.__repr__~s�� *�*0�&��,�,� r7r�r�r�c��t|t��stS|j|jko/|j|jko|j|jko|j|jkSr%)r&r6r�rPrQrSrUr�s r5r�zDistributionPoint.__eq__�sf���%�!2�3�3� "�!� !� �N�e�o� -� 4��"�e�&9�9� 4�� �� �-� 4���5�#3�3�  r7r;c��|j�t|j��}nd}|j�t|j��}nd}t||j|j|f��Sr%)rPr�rUr�rQrS)r@�fnrUs r5r�zDistributionPoint.__hash__�sZ�� �>� %�16�t�~�1F�1F�B�B��B� �?� &�9>�t��9O�9O�J�J��J��R��+�T�\�:�F�G�G�Gr7r�c��|jSr%�r_res r5rPzDistributionPoint.full_name�� ����r7c��|jSr%�r`res r5rQzDistributionPoint.relative_name�rr7c��|jSr%)rares r5rSzDistributionPoint.reasons�s ���}�r7c��|jSr%)rbres r5rUzDistributionPoint.crl_issuer�r�r7N) rPr�rQrRrSrTrUr�r"rOr�r�rHr��r"rR�r"rT) rYrZr[rSr�r�r�r�rPrQrSrUrIr7r5r6r6Cs�������8&�8&�8&�8&�t � � � �  �  �  �  � H� H� H� H������X���#�#�#��X�#������X��� � � ��X� � � r7r6c�6�eZdZdZdZdZdZdZdZdZ dZ d Z d Z d S) r[r]� keyCompromise� cACompromise�affiliationChanged� superseded�cessationOfOperation�certificateHold�privilegeWithdrawn� aACompromise� removeFromCRLN) rYrZr[r]�key_compromise� ca_compromise�affiliation_changedrv�cessation_of_operation�certificate_hold�privilege_withdrawn� aa_compromiser^rIr7r5r[r[�sD�������K�$�N�"�M�.���J�3��(��.��"�M�%�O�O�Or7r[)��������r�r�r�r�r�r�r�r�� � c�t�eZdZejZdd�Zdd�Zdd �Zdd�Z e dd���Z e dd���Z dd�Z dS)�PolicyConstraints�require_explicit_policyr��inhibit_policy_mappingr"rOc���|�$t|t��std���|�$t|t��std���|�|�td���||_||_dS)Nz>require_explicit_policy must be a non-negative integer or Nonez=inhibit_policy_mapping must be a non-negative integer or NonezSAt least one of require_explicit_policy and inhibit_policy_mapping must not be None)r&r;r{r��_require_explicit_policy�_inhibit_policy_mapping)r@r�r�s r5rSzPolicyConstraints.__init__�s��� #� .�z� #�S�8 �8 � .����� � "� -�j� "�C�7 �7 � -��O��� � "� )�.E�.M��:��� � )@��%�'=��$�$�$r7r9c�,�d�|��S)Nz{<PolicyConstraints(require_explicit_policy={0.require_explicit_policy}, inhibit_policy_mapping={0.inhibit_policy_mapping})>rdres r5r�zPolicyConstraints.__repr__s�� ������ r7r�r�r�c�z�t|t��stS|j|jko|j|jkSr%)r&r�r�r�r�r�s r5r�zPolicyConstraints.__eq__sD���%�!2�3�3� "�!� !� � (�E�,I� I� L��+�u�/K�K� r7r;c�8�t|j|jf��Sr%)r�r�r�res r5r�zPolicyConstraints.__hash__'s"��� � )�4�+F� G� � � r7c��|jSr%)r�res r5r�z)PolicyConstraints.require_explicit_policy,s ���,�,r7c��|jSr%)r�res r5r�z(PolicyConstraints.inhibit_policy_mapping0� ���+�+r7r#c�*�tj|��Sr%r�res r5r'zPolicyConstraints.public_bytes4r�r7N)r�r�r�r�r"rOr�r�rHr�rf)rYrZr[r�POLICY_CONSTRAINTSrNrSr�r�r�r�r�r�r'rIr7r5r�r��s������� � )�C�>�>�>�>�: � � � � � � � � � � � � �-�-�-��X�-��,�,�,��X�,�6�6�6�6�6�6r7r�c�b�eZdZejZdd�Zed��\ZZ Z dd�Z dd �Z dd�Z dd�ZdS)�CertificatePolicies�policies�"typing.Iterable[PolicyInformation]r"rOc��t|��}td�|D����std���||_dS)Nc3�@K�|]}t|t��V��dSr%)r&�PolicyInformationr�s r5r�z/CertificatePolicies.__init__.<locals>.<genexpr>=s-����F�F��:�a�!2�3�3�F�F�F�F�F�Fr7z;Every item in the policies list must be a PolicyInformation)rnr�r{� _policies)r@r�s r5rSzCertificatePolicies.__init__;sP����>�>���F�F�X�F�F�F�F�F� ��$��� � "����r7r�r9c��d|j�d�S)Nz<CertificatePolicies(r)r�res r5r�zCertificatePolicies.__repr__G���9�t�~�9�9�9�9r7r�r�r�c�Z�t|t��stS|j|jkSr%)r&r�r�r�r�s r5r�zCertificatePolicies.__eq__Js*���%�!4�5�5� "�!� !��~���0�0r7r;c�D�tt|j����Sr%)r�r�r�res r5r�zCertificatePolicies.__hash__P����E�$�.�)�)�*�*�*r7r#c�*�tj|��Sr%r�res r5r'z CertificatePolicies.public_bytesSr�r7N)r�r�r"rOr�r�rHrf)rYrZr[r�CERTIFICATE_POLICIESrNrSrJr�r�r�r�r�r�r'rIr7r5r�r�8s������� � +�C�"�"�"�"�&<�%;�K�%H�%H�"�G�X�{�:�:�:�:�1�1�1�1� +�+�+�+�6�6�6�6�6�6r7r�c�^�eZdZdd�Zdd �Zdd �Zdd�Zedd���Zedd���Z dS)r��policy_identifierr�policy_qualifiers�(typing.Iterable[str | UserNotice] | Noner"rOc���t|t��std���||_|�7t |��}t d�|D����std���||_dS)Nz-policy_identifier must be an ObjectIdentifierc3�NK�|] }t|ttf��V��!dSr%)r&r9� UserNoticer�s r5r�z-PolicyInformation.__init__.<locals>.<genexpr>dsB������56� �1�s�J�/�0�0������r7zMpolicy_qualifiers must be a list of strings and/or UserNotice objects or None)r&rr{�_policy_identifierrnr��_policy_qualifiers)r@r�r�s r5rSzPolicyInformation.__init__Xs��� �+�-=�>�>� M��K�L�L� L�"3��� � (� $�%6� 7� 7� ����:K������ � �1���� #4����r7r9c�(�d|j�d|j�d�S)Nz%<PolicyInformation(policy_identifier=z, policy_qualifiers=r)r�r�res r5r�zPolicyInformation.__repr__ns0�� <�D�4J� <� <�!%�!7� <� <� <� r7r�r�r�c�z�t|t��stS|j|jko|j|jkSr%)r&r�r�r�r�r�s r5r�zPolicyInformation.__eq__tsD���%�!2�3�3� "�!� !� � "�e�&=� =� B��&�%�*A�A� r7r;c�j�|j�t|j��}nd}t|j|f��Sr%)r�r�r�r�)r@�pqs r5r�zPolicyInformation.__hash__}s8�� � !� -��t�-�.�.�B�B��B��T�+�R�0�1�1�1r7c��|jSr%)r�res r5r�z#PolicyInformation.policy_identifier�� ���&�&r7�list[str | UserNotice] | Nonec��|jSr%)r�res r5r�z#PolicyInformation.policy_qualifiers�� ���&�&r7N)r�rr�r�r"rOr�r�rHr)r"r�) rYrZr[rSr�r�r�r�r�r�rIr7r5r�r�Ws�������4�4�4�4�, � � � �  � � � �2�2�2�2��'�'�'��X�'��'�'�'��X�'�'�'r7r�c�^�eZdZdd�Zdd �Zdd �Zdd�Zedd���Zedd���Z dS)r��notice_reference�NoticeReference | None� explicit_text� str | Noner"rOc�n�|r$t|t��std���||_||_dS)Nz2notice_reference must be None or a NoticeReference)r&�NoticeReferencer{�_notice_reference�_explicit_text)r@r�r�s r5rSzUserNotice.__init__�sQ�� � �J� �o�% �% � ��D��� �"2���+����r7r9c�(�d|j�d|j�d�S)Nz<UserNotice(notice_reference=z, explicit_text=r)r�r�res r5r�zUserNotice.__repr__�s0�� 6�D�,A� 6� 6�!�/� 6� 6� 6� r7r�r�r�c�z�t|t��stS|j|jko|j|jkSr%)r&r�r�r�r�r�s r5r�zUserNotice.__eq__�sB���%��,�,� "�!� !� � !�U�%;� ;� :��"�e�&9�9� r7r;c�8�t|j|jf��Sr%)r�r�r�res r5r�zUserNotice.__hash__�s���T�*�D�,>�?�@�@�@r7c��|jSr%)r�res r5r�zUserNotice.notice_reference�� ���%�%r7c��|jSr%)r�res r5r�zUserNotice.explicit_text�rr7N)r�r�r�r�r"rOr�r�rH)r"r��r"r�) rYrZr[rSr�r�r�r�r�r�rIr7r5r�r��s������� ,� ,� ,� ,� � � � �  � � � �A�A�A�A��&�&�&��X�&��#�#�#��X�#�#�#r7r�c�^�eZdZdd�Zdd �Zdd �Zdd�Zedd���Zedd���Z dS)r�� organizationr��notice_numbers�typing.Iterable[int]r"rOc��||_t|��}td�|D����std���||_dS)Nc3�@K�|]}t|t��V��dSr%)r&r;r�s r5r�z+NoticeReference.__init__.<locals>.<genexpr>�s,����>�>�!�:�a��%�%�>�>�>�>�>�>r7z)notice_numbers must be a list of integers)� _organizationrnr�r{�_notice_numbers)r@r�r�s r5rSzNoticeReference.__init__�sV�� *����n�-�-���>�>�~�>�>�>�>�>� I��G�H�H� H�-����r7r9c�(�d|j�d|j�d�S)Nz<NoticeReference(organization=z, notice_numbers=r)r�r�res r5r�zNoticeReference.__repr__�s0�� 6�T�->� 6� 6�"�1� 6� 6� 6� r7r�r�r�c�z�t|t��stS|j|jko|j|jkSr%)r&r�r�r�r�r�s r5r�zNoticeReference.__eq__�sB���%��1�1� "�!� !� � ��!3� 3� <��#�u�';�;� r7r;c�R�t|jt|j��f��Sr%)r�r�r�r�res r5r�zNoticeReference.__hash__�s#���T�&��d�.A�(B�(B�C�D�D�Dr7c��|jSr%)r�res r5r�zNoticeReference.organization�� ���!�!r7� list[int]c��|jSr%)r�res r5r�zNoticeReference.notice_numbers�r�r7N)r�r�r�r�r"rOr�r�rHr�)r"r�) rYrZr[rSr�r�r�r�r�r�rIr7r5r�r��s������� .� .� .� .� � � � �  � � � �E�E�E�E��"�"�"��X�"��$�$�$��X�$�$�$r7r�c�b�eZdZejZdd�Zed��\ZZ Z dd�Z dd �Z dd�Z dd�ZdS)�ExtendedKeyUsage�usages�!typing.Iterable[ObjectIdentifier]r"rOc��t|��}td�|D����std���||_dS)Nc3�@K�|]}t|t��V��dSr%�r&rr�s r5r�z,ExtendedKeyUsage.__init__.<locals>.<genexpr>�s-����C�C�q�:�a�!1�2�2�C�C�C�C�C�Cr7z9Every item in the usages list must be an ObjectIdentifier)rnr�r{�_usages)r@r�s r5rSzExtendedKeyUsage.__init__�sN���f�����C�C�F�C�C�C�C�C� ��K��� ��� � � r7r�r9c��d|j�d�S)Nz<ExtendedKeyUsage(r)r�res r5r�zExtendedKeyUsage.__repr__����4�D�L�4�4�4�4r7r�r�r�c�Z�t|t��stS|j|jkSr%)r&r�r�r�r�s r5r�zExtendedKeyUsage.__eq__�s*���%�!1�2�2� "�!� !��|�u�}�,�,r7r;c�D�tt|j����Sr%)r�r�r�res r5r�zExtendedKeyUsage.__hash__�s���E�$�,�'�'�(�(�(r7r#c�*�tj|��Sr%r�res r5r'zExtendedKeyUsage.public_bytes�r�r7N)r�r�r"rOr�r�rHrf)rYrZr[r�EXTENDED_KEY_USAGErNrSrJr�r�r�r�r�r�r'rIr7r5r�r��s������� � )�C�����&<�%;�I�%F�%F�"�G�X�{�5�5�5�5�-�-�-�-� )�)�)�)�6�6�6�6�6�6r7r�c�<�eZdZejZd d�Zdd�Zdd �Zdd �Z d S)� OCSPNoCheckr�r�r"r�c�>�t|t��stSdS�NT)r&r�r�r�s r5r�zOCSPNoCheck.__eq__s���%��-�-� "�!� !��tr7r;c�*�tt��Sr%)r�r�res r5r�zOCSPNoCheck.__hash__ s���K� � � r7r9c��dS)Nz<OCSPNoCheck()>rIres r5r�zOCSPNoCheck.__repr__ s�� � r7r#c�*�tj|��Sr%r�res r5r'zOCSPNoCheck.public_bytesr�r7Nr�rHr�rf) rYrZr[r� OCSP_NO_CHECKrNr�r�r�r'rIr7r5r�r�sl������ � $�C����� !�!�!�!�!�!�!�!�6�6�6�6�6�6r7r�c�<�eZdZejZd d�Zdd�Zdd �Zdd �Z d S)� PrecertPoisonr�r�r"r�c�>�t|t��stSdSr�)r&r�r�r�s r5r�zPrecertPoison.__eq__s���%��/�/� "�!� !��tr7r;c�*�tt��Sr%)r�r�res r5r�zPrecertPoison.__hash__s���M�"�"�"r7r9c��dS)Nz<PrecertPoison()>rIres r5r�zPrecertPoison.__repr__ s��"�"r7r#c�*�tj|��Sr%r�res r5r'zPrecertPoison.public_bytes#r�r7Nr�rHr�rf) rYrZr[r�PRECERT_POISONrNr�r�r�r'rIr7r5r�r�sl������ � %�C����� #�#�#�#�#�#�#�#�6�6�6�6�6�6r7r�c�b�eZdZejZdd�Zed��\ZZ Z dd�Z dd �Z dd�Z dd�ZdS)� TLSFeature�features�typing.Iterable[TLSFeatureType]r"rOc��t|��}td�|D����rt|��dkrtd���||_dS)Nc3�@K�|]}t|t��V��dSr%)r&�TLSFeatureTyper�s r5r�z&TLSFeature.__init__.<locals>.<genexpr>-s,����D�D�a�J�q�.�1�1�D�D�D�D�D�Dr7rz@features must be a list of elements from the TLSFeatureType enum)rnr�r=r{� _features)r@r�s r5rSzTLSFeature.__init__*sa����>�>���D�D�8�D�D�D�D�D� ��8�}�}��!�!����� � "����r7rr9c��d|j�d�S)Nz<TLSFeature(features=r)rres r5r�zTLSFeature.__repr__9r�r7r�r�r�c�Z�t|t��stS|j|jkSr%)r&r�r�rr�s r5r�zTLSFeature.__eq__<s)���%��,�,� "�!� !��~���0�0r7r;c�D�tt|j����Sr%)r�r�rres r5r�zTLSFeature.__hash__Br�r7r#c�*�tj|��Sr%r�res r5r'zTLSFeature.public_bytesEr�r7N)r�r�r"rOr�r�rHrf)rYrZr[r� TLS_FEATURErNrSrJr�r�r�r�r�r�r'rIr7r5r�r�'s������� � "�C� "� "� "� "�&<�%;�K�%H�%H�"�G�X�{�:�:�:�:�1�1�1�1� +�+�+�+�6�6�6�6�6�6r7r�c��eZdZdZdZdS)r�r��N)rYrZr[�status_request�status_request_v2rIr7r5r�r�Is�������N����r7r�c��i|] }|j|�� SrI�r|r�s r5� <dictcomp>r Ts��@�@�@�A�Q�W�a�@�@�@r7c�\�eZdZejZdd�Zdd�Zdd �Zdd �Z e dd ���Z dd�Z dS)�InhibitAnyPolicy� skip_certsr;r"rOc��t|t��std���|dkrtd���||_dS)Nzskip_certs must be an integerrz)skip_certs must be a non-negative integer)r&r;r{r�� _skip_certs)r@rs r5rSzInhibitAnyPolicy.__init__ZsI���*�c�*�*� =��;�<�<� <� ��>�>��H�I�I� I�%����r7r9c��d|j�d�S)Nz<InhibitAnyPolicy(skip_certs=r)rres r5r�zInhibitAnyPolicy.__repr__cs��B�t��B�B�B�Br7r�r�r�c�Z�t|t��stS|j|jkSr%)r&rr�rr�s r5r�zInhibitAnyPolicy.__eq__fs+���%�!1�2�2� "�!� !���%�"2�2�2r7c�*�t|j��Sr%)r�rres r5r�zInhibitAnyPolicy.__hash__lr�r7c��|jSr%)rres r5rzInhibitAnyPolicy.skip_certsor�r7r#c�*�tj|��Sr%r�res r5r'zInhibitAnyPolicy.public_bytessr�r7N)rr;r"rOr�r�rHrf) rYrZr[r�INHIBIT_ANY_POLICYrNrSr�r�r�r�rr'rIr7r5rrWs������� � )�C�&�&�&�&�C�C�C�C�3�3�3�3� %�%�%�%�� � � ��X� �6�6�6�6�6�6r7rc��eZdZejZd!d �Zed"d���Zed"d���Z ed"d���Z ed"d���Z ed"d���Z ed"d���Z ed"d���Zed"d���Zed"d���Zd#d�Zd$d�Zd%d�Zd&d�Zd S)'�KeyUsage�digital_signaturer��content_commitment�key_encipherment�data_encipherment� key_agreement� key_cert_sign�crl_sign� encipher_only� decipher_onlyr"rOc ��|s|s| rtd���||_||_||_||_||_||_||_||_| |_ dS)NzKencipher_only and decipher_only can only be true when key_agreement is true) r��_digital_signature�_content_commitment�_key_encipherment�_data_encipherment�_key_agreement�_key_cert_sign� _crl_sign�_encipher_only�_decipher_only) r@rrrrrrr r!r"s r5rSzKeyUsage.__init__zs���� �-� �=� ��(��� � #4���#5�� �!1���"3���+���+���!���+���+����r7c��|jSr%)r$res r5rzKeyUsage.digital_signature�r�r7c��|jSr%)r%res r5rzKeyUsage.content_commitment�s ���'�'r7c��|jSr%)r&res r5rzKeyUsage.key_encipherment�r�r7c��|jSr%)r'res r5rzKeyUsage.data_encipherment�r�r7c��|jSr%)r(res r5rzKeyUsage.key_agreement�rr7c��|jSr%)r)res r5rzKeyUsage.key_cert_sign�rr7c��|jSr%)r*res r5r zKeyUsage.crl_sign�� ���~�r7c�<�|jstd���|jS)Nz7encipher_only is undefined unless key_agreement is true)rr�r+res r5r!zKeyUsage.encipher_only��-���!� '��I��� ��&� &r7c�<�|jstd���|jS)Nz7decipher_only is undefined unless key_agreement is true)rr�r,res r5r"zKeyUsage.decipher_only�r6r7r9c��� |j}|j}n#t$rd}d}YnwxYwd|j�d|j�d|j�d|j�d|j�d|j�d|j �d |�d |�d �S) NFz<KeyUsage(digital_signature=z, content_commitment=z, key_encipherment=z, data_encipherment=z, key_agreement=z, key_cert_sign=z , crl_sign=z, encipher_only=z, decipher_only=r) r!r"r�rrrrrrr )r@r!r"s r5r�zKeyUsage.__repr__�s��� "� �.�M� �.�M�M��� "� "� "�"�M�!�M�M�M�  "���� N�4�+A� N� N�"&�"9� N� N� $� 5� N� N�"&�!7� N� N�"�/�  N� N� "�/�  N� N� =A�M�  N� N� +�  N� N� =J�  N� N� N� s ��"�"r�r�c�Z�t|t��stS|j|jko|j|jkoo|j|jko_|j|jkoO|j|jko?|j|jko/|j |j ko|j |j ko|j |j kSr%) r&rr�rrrrrrr r+r,r�s r5r�zKeyUsage.__eq__�s����%��*�*� "�!� !� � "�e�&=� =� <��'�5�+C�C� <��%��)?�?� <��&�%�*A�A� <��"�e�&9�9�  <� �"�e�&9�9�  <� � ���/�  <��#�u�';�;� <��#�u�';�;� r7r;c ��t|j|j|j|j|j|j|j|j|j f ��Sr%) r�rrrrrrr r+r,res r5r�zKeyUsage.__hash__�sN����&��'��%��&��"��"�� ��#��#� �  �  � r7r#c�*�tj|��Sr%r�res r5r'zKeyUsage.public_bytes�r�r7N)rr�rr�rr�rr�rr�rr�r r�r!r�r"r�r"rOr$r�r�rHrf)rYrZr[r� KEY_USAGErNrSr�rrrrrrr r!r"r�r�r�r'rIr7r5rrws������� � �C�,�,�,�,�8�'�'�'��X�'��(�(�(��X�(��&�&�&��X�&��'�'�'��X�'��#�#�#��X�#��#�#�#��X�#������X���'�'�'��X�'��'�'�'��X�'� � � � �* � � � �  �  �  �  �6�6�6�6�6�6r7rc��eZdZejZdd�Zdd �Zdd �Zdd�Z dd�Z dd�Z dd�Z e dd���Ze dd���Zd d�ZdS)!�NameConstraints�permitted_subtreesr��excluded_subtreesr"rOc���|�]t|��}|std���td�|D����std���|�|��|�]t|��}|std���td�|D����std���|�|��|�|�td���||_||_dS)Nz3permitted_subtrees must be a non-empty list or Nonec3�@K�|]}t|t��V��dSr%r�r�s r5r�z+NameConstraints.__init__.<locals>.<genexpr> s,����N�N�a�z�!�[�1�1�N�N�N�N�N�Nr7z@permitted_subtrees must be a list of GeneralName objects or Nonez2excluded_subtrees must be a non-empty list or Nonec3�@K�|]}t|t��V��dSr%r�r�s r5r�z+NameConstraints.__init__.<locals>.<genexpr>�,����M�M�a�z�!�[�1�1�M�M�M�M�M�Mr7z?excluded_subtrees must be a list of GeneralName objects or NonezIAt least one of permitted_subtrees and excluded_subtrees must not be None)rnr�r�r{�_validate_tree�_permitted_subtrees�_excluded_subtrees)r@r?r@s r5rSzNameConstraints.__init__�sC�� � )�!%�&8�!9�!9� �%� � �I�����N�N�;M�N�N�N�N�N� ������ � � � 2� 3� 3� 3� � (� $�%6� 7� 7� �$� � �H�����M�M�;L�M�M�M�M�M� ������ � � � 1� 2� 2� 2� � %�*;�*C��#��� � $6�� �"3����r7r�r�r�c�z�t|t��stS|j|jko|j|jkSr%)r&r>r�r@r?r�s r5r�zNameConstraints.__eq__)sC���%��1�1� "�!� !� � "�e�&=� =� D��'�5�+C�C� r7�tree�typing.Iterable[GeneralName]c�Z�|�|��|�|��dSr%)�_validate_ip_name�_validate_dns_name�r@rIs r5rEzNameConstraints._validate_tree2s0�� ���t�$�$�$� ����%�%�%�%�%r7c�V�td�|D����rtd���dS)Nc3�K�|]E}t|t��o+t|jtjtjf�� V��FdSr%)r&rr|� ipaddress� IPv4Network� IPv6Network�r��names r5r�z4NameConstraints._validate_ip_name.<locals>.<genexpr>7sk���� � � � �t�Y� '� '� ��� �Y�2�I�4I�J���� � � � � � r7zGIPAddress name constraints must be an IPv4Network or IPv6Network object)�anyr{rNs r5rLz!NameConstraints._validate_ip_name6sU�� � � � �  � � � � � ��&��� � � r7c�V�td�|D����rtd���dS)Nc3�RK�|]"}t|t��od|jvV��#dS)�*N)r&rr|rTs r5r�z5NameConstraints._validate_dns_name.<locals>.<genexpr>DsI���� � �@D�J�t�W� %� %� ;�#���*;� � � � � � r7zDDNSName name constraints must not contain the '*' wildcard character)rVr�rNs r5rMz"NameConstraints._validate_dns_nameCsS�� � � �HL� � � � � � ����� � � r7r9c�(�d|j�d|j�d�S)Nz$<NameConstraints(permitted_subtrees=z, excluded_subtrees=r)r?r@res r5r�zNameConstraints.__repr__Ls0�� <�4�3J� <� <�!%�!7� <� <� <� r7r;c��|j�t|j��}nd}|j�t|j��}nd}t||f��Sr%)r?r�r@r�)r@�ps�ess r5r�zNameConstraints.__hash__RsR�� � "� .�16�t�7N�1O�1O�B�B��B� � !� -�16�t�7M�1N�1N�B�B��B��R��H�~�~�r7r�c��|jSr%)rFres r5r?z"NameConstraints.permitted_subtrees_s ���'�'r7c��|jSr%)rGres r5r@z!NameConstraints.excluded_subtreeser�r7r#c�*�tj|��Sr%r�res r5r'zNameConstraints.public_byteskr�r7N)r?r�r@r�r"rOr�)rIrJr"rOr�rHr�rf)rYrZr[r�NAME_CONSTRAINTSrNrSr�rErLrMr�r�r�r?r@r'rIr7r5r>r>�s������� � '�C�(4�(4�(4�(4�T � � � �&�&�&�&� � � � ����� � � � � � � � ��(�(�(��X�(� �'�'�'��X�'� 6�6�6�6�6�6r7r>c�v�eZdZdd �Zedd ���Zedd ���Zedd ���Zdd�Zdd�Z dd�Z dS)� ExtensionrNr�criticalr�r|rr"rOc���t|t��std���t|t��std���||_||_||_dS)Nz2oid argument must be an ObjectIdentifier instance.z critical must be a boolean value)r&rr{r��_oid� _critical�_value)r@rNrdr|s r5rSzExtension.__init__psi���#�/�0�0� ��D��� ��(�D�)�)� @��>�?�?� ?��� �!����� � � r7c��|jSr%�rfres r5rNz Extension.oid� ���y�r7c��|jSr%)rgres r5rdzExtension.critical�r4r7c��|jSr%�rhres r5r|zExtension.value�� ���{�r7r9c�8�d|j�d|j�d|j�d�S)Nz<Extension(oid=z , critical=�, value=r)rNrdr|res r5r�zExtension.__repr__�s<�� $�d�h� $� $�4�=� $� $��Z� $� $� $� r7r�r�c��t|t��stS|j|jko|j|jko|j|jkSr%)r&rcr�rNrdr|r�s r5r�zExtension.__eq__�sO���%��+�+� "�!� !� �H�� � !� *�� ���/� *�� �e�k�)� r7r;c�D�t|j|j|jf��Sr%)r�rNrdr|res r5r�zExtension.__hash__�s���T�X�t�}�d�j�9�:�:�:r7N)rNrrdr�r|rr"rOrr$)r"rr�r�rH) rYrZr[rSr�rNrdr|r�r�r�rIr7r5rcrcos������� � � � ������X�������X�������X�� � � � �  � � � �;�;�;�;�;�;r7rcc���eZdZd#d�Zed��\ZZZej d$d ���Z ej d%d ���Z ej d&d���Z ej d'd���Z ej d(d���Z d)d�Z d*d�Z d+d�Z d,d!�Z d"S)-� GeneralNames� general_namesrJr"rOc��t|��}td�|D����std���||_dS)Nc3�@K�|]}t|t��V��dSr%r�r�s r5r�z(GeneralNames.__init__.<locals>.<genexpr>�s,����E�E�!�:�a��-�-�E�E�E�E�E�Er7z^Every item in the general_names list must be an object conforming to the GeneralName interface)rnr�r{�_general_names�r@rvs r5rSzGeneralNames.__init__�sV���]�+�+� ��E�E�}�E�E�E�E�E� ��A��� � ,����r7ry�type�Btype[DNSName] | type[UniformResourceIdentifier] | type[RFC822Name]� list[str]c��dSr%rI�r@r{s r5�get_values_for_typez GeneralNames.get_values_for_type�� �� �Cr7�type[DirectoryName]� list[Name]c��dSr%rIrs r5r�z GeneralNames.get_values_for_type�� ���Sr7�type[RegisteredID]�list[ObjectIdentifier]c��dSr%rIrs r5r�z GeneralNames.get_values_for_type�� ��"%�r7�type[IPAddress]�list[_IPAddressTypes]c��dSr%rIrs r5r�z GeneralNames.get_values_for_type�� ��!$�r7�type[OtherName]�list[OtherName]c��dSr%rIrs r5r�z GeneralNames.get_values_for_type�� ���#r7��type[DNSName] | type[DirectoryName] | type[IPAddress] | type[OtherName] | type[RFC822Name] | type[RegisteredID] | type[UniformResourceIdentifier]�Ylist[_IPAddressTypes] | list[str] | list[OtherName] | list[Name] | list[ObjectIdentifier]c�l���fd�|D��}�tkr d�|D��St|��S)Nc3�<�K�|]}t|����|V��dSr%)r&)r��ir{s �r5r�z3GeneralNames.get_values_for_type.<locals>.<genexpr>�s2�����7�7�a�:�a��#6�#6�7��7�7�7�7�7�7r7c��g|] }|j�� SrIr )r�r�s r5� <listcomp>z4GeneralNames.get_values_for_type.<locals>.<listcomp>�s��*�*�*��A�G�*�*�*r7)rrn)r@r{�objss ` r5r�z GeneralNames.get_values_for_type�sI���&8�7�7�7�4�7�7�7�� �9� � �*�*�T�*�*�*� *��D�z�z�r7r9c��d|j�d�S)Nz<GeneralNames(r�ryres r5r�zGeneralNames.__repr__�s��7�� 3�7�7�7�7r7r�r�r�c�Z�t|t��stS|j|jkSr%)r&rur�ryr�s r5r�zGeneralNames.__eq__�s+���%��.�.� "�!� !��"�e�&:�:�:r7r;c�D�tt|j����Sr%)r�r�ryres r5r�zGeneralNames.__hash__�s���E�$�-�.�.�/�/�/r7N�rvrJr"rO�r{r|r"r}�r{r�r"r��r{r�r"r��r{r�r"r��r{r�r"r��r{r�r"r�r�r�rH)rYrZr[rSrJr�r�r��typing�overloadr�r�r�r�rIr7r5ruru�s:������,�,�,�,�&<�%;�<L�%M�%M�"�G�X�{� �_�����_�� �_�����_��  �_�%�%�%��_�%�  �_�$�$�$��_�$� �_�����_������08�8�8�8�;�;�;�;� 0�0�0�0�0�0r7ruc��eZdZejZd%d�Zed��\ZZ Z e j d&d ���Z e j d'd ���Z e j d(d���Z e j d)d���Z e j d*d���Z d+d�Z d,d�Zd-d�Zd.d!�Zd/d#�Zd$S)0�SubjectAlternativeNamervrJr"rOc�.�t|��|_dSr%�ruryrzs r5rSzSubjectAlternativeName.__init__����*�=�9�9����r7ryr{r|r}c��dSr%rIrs r5r�z*SubjectAlternativeName.get_values_for_type�r�r7r�r�c��dSr%rIrs r5r�z*SubjectAlternativeName.get_values_for_type�r�r7r�r�c��dSr%rIrs r5r�z*SubjectAlternativeName.get_values_for_typer�r7r�r�c��dSr%rIrs r5r�z*SubjectAlternativeName.get_values_for_type r�r7r�r�c��dSr%rIrs r5r�z*SubjectAlternativeName.get_values_for_typer�r7r�r�c�6�|j�|��Sr%�ryr�rs r5r�z*SubjectAlternativeName.get_values_for_type��� �"�6�6�t�<�<�<r7r9c��d|j�d�S)Nz<SubjectAlternativeName(rr�res r5r�zSubjectAlternativeName.__repr__'s��A�$�*=�A�A�A�Ar7r�r�r�c�Z�t|t��stS|j|jkSr%)r&r�r�ryr�s r5r�zSubjectAlternativeName.__eq__*s,���%�!7�8�8� "�!� !��"�e�&:�:�:r7r;c�*�t|j��Sr%�r�ryres r5r�zSubjectAlternativeName.__hash__0����D�'�(�(�(r7r#c�*�tj|��Sr%r�res r5r'z#SubjectAlternativeName.public_bytes3r�r7Nr�r�r�r�r�r�r�r�r�rHrf)rYrZr[r�SUBJECT_ALTERNATIVE_NAMErNrSrJr�r�r�r�r�r�r�r�r�r'rIr7r5r�r��sZ������ � /�C�:�:�:�:�&<�%;�<L�%M�%M�"�G�X�{� �_�����_�� �_�����_��  �_�%�%�%��_�%�  �_�$�$�$��_�$� �_�����_��=�=�=�=�$B�B�B�B�;�;�;�;� )�)�)�)�6�6�6�6�6�6r7r�c��eZdZejZd%d�Zed��\ZZ Z e j d&d ���Z e j d'd ���Z e j d(d���Z e j d)d���Z e j d*d���Z d+d�Z d,d�Zd-d�Zd.d!�Zd/d#�Zd$S)0�IssuerAlternativeNamervrJr"rOc�.�t|��|_dSr%r�rzs r5rSzIssuerAlternativeName.__init__:r�r7ryr{r|r}c��dSr%rIrs r5r�z)IssuerAlternativeName.get_values_for_type?r�r7r�r�c��dSr%rIrs r5r�z)IssuerAlternativeName.get_values_for_typeGr�r7r�r�c��dSr%rIrs r5r�z)IssuerAlternativeName.get_values_for_typeMr�r7r�r�c��dSr%rIrs r5r�z)IssuerAlternativeName.get_values_for_typeSr�r7r�r�c��dSr%rIrs r5r�z)IssuerAlternativeName.get_values_for_typeXr�r7r�r�c�6�|j�|��Sr%r�rs r5r�z)IssuerAlternativeName.get_values_for_type]r�r7r9c��d|j�d�S)Nz<IssuerAlternativeName(rr�res r5r�zIssuerAlternativeName.__repr__os��@��)<�@�@�@�@r7r�r�r�c�Z�t|t��stS|j|jkSr%)r&r�r�ryr�s r5r�zIssuerAlternativeName.__eq__rs,���%�!6�7�7� "�!� !��"�e�&:�:�:r7r;c�*�t|j��Sr%r�res r5r�zIssuerAlternativeName.__hash__xr�r7r#c�*�tj|��Sr%r�res r5r'z"IssuerAlternativeName.public_bytes{r�r7Nr�r�r�r�r�r�r�r�r�rHrf)rYrZr[r�ISSUER_ALTERNATIVE_NAMErNrSrJr�r�r�r�r�r�r�r�r�r'rIr7r5r�r�7sZ������ � .�C�:�:�:�:�&<�%;�<L�%M�%M�"�G�X�{� �_�����_�� �_�����_��  �_�%�%�%��_�%�  �_�$�$�$��_�$� �_�����_��=�=�=�=�$A�A�A�A�;�;�;�;� )�)�)�)�6�6�6�6�6�6r7r�c��eZdZejZd%d�Zed��\ZZ Z e j d&d ���Z e j d'd ���Z e j d(d���Z e j d)d���Z e j d*d���Z d+d�Z d,d�Zd-d�Zd.d!�Zd/d#�Zd$S)0�CertificateIssuerrvrJr"rOc�.�t|��|_dSr%r�rzs r5rSzCertificateIssuer.__init__�r�r7ryr{r|r}c��dSr%rIrs r5r�z%CertificateIssuer.get_values_for_type�r�r7r�r�c��dSr%rIrs r5r�z%CertificateIssuer.get_values_for_type�r�r7r�r�c��dSr%rIrs r5r�z%CertificateIssuer.get_values_for_type�r�r7r�r�c��dSr%rIrs r5r�z%CertificateIssuer.get_values_for_type�r�r7r�r�c��dSr%rIrs r5r�z%CertificateIssuer.get_values_for_type�r�r7r�r�c�6�|j�|��Sr%r�rs r5r�z%CertificateIssuer.get_values_for_type�r�r7r9c��d|j�d�S)Nz<CertificateIssuer(rr�res r5r�zCertificateIssuer.__repr__�s��<�T�%8�<�<�<�<r7r�r�r�c�Z�t|t��stS|j|jkSr%)r&r�r�ryr�s r5r�zCertificateIssuer.__eq__�s,���%�!2�3�3� "�!� !��"�e�&:�:�:r7r;c�*�t|j��Sr%r�res r5r�zCertificateIssuer.__hash__�r�r7r#c�*�tj|��Sr%r�res r5r'zCertificateIssuer.public_bytes�r�r7Nr�r�r�r�r�r�r�r�r�rHrf)rYrZr[r�CERTIFICATE_ISSUERrNrSrJr�r�r�r�r�r�r�r�r�r'rIr7r5r�r�sV������ � 1�C�:�:�:�:�&<�%;�<L�%M�%M�"�G�X�{� �_�����_�� �_�����_��  �_�%�%�%��_�%�  �_�$�$�$��_�$� �_�����_��=�=�=�=�$=�=�=�=�;�;�;�;� )�)�)�)�6�6�6�6�6�6r7r�c�\�eZdZejZdd�Zdd�Zdd �Zdd �Z e dd���Z dd�Z dS)� CRLReason�reasonr[r"rOc�\�t|t��std���||_dS)Nz*reason must be an element from ReasonFlags)r&r[r{�_reason)r@r�s r5rSzCRLReason.__init__�s/���&�+�.�.� J��H�I�I� I��� � � r7r9c��d|j�d�S)Nz<CRLReason(reason=r�r�res r5r�zCRLReason.__repr__�r�r7r�r�r�c�Z�t|t��stS|j|jkSr%)r&r�r�r�r�s r5r�zCRLReason.__eq__�s)���%��+�+� "�!� !��{�e�l�*�*r7r;c�*�t|j��Sr%)r�r�res r5r�zCRLReason.__hash__�r�r7c��|jSr%r�res r5r�zCRLReason.reason�r�r7r#c�*�tj|��Sr%r�res r5r'zCRLReason.public_bytes�r�r7N)r�r[r"rOr�r�rH)r"r[rf) rYrZr[r� CRL_REASONrNrSr�r�r�r�r�r'rIr7r5r�r��s������� � )�C����� 5�5�5�5�+�+�+�+� !�!�!�!������X��6�6�6�6�6�6r7r�c�t�eZdZejZdd�Zdd�Zdd �Zdd �Z e dd���Z e dd���Z dd�Z dS)�InvalidityDate�invalidity_date�datetime.datetimer"rOc�f�t|tj��std���||_dS)Nz+invalidity_date must be a datetime.datetime)r&�datetimer{�_invalidity_date)r@r�s r5rSzInvalidityDate.__init__�s5���/�8�+<�=�=� K��I�J�J� J� /����r7r9c��d|j�d�S)Nz <InvalidityDate(invalidity_date=r�r�res r5r�zInvalidityDate.__repr__�s��K�$�2G�K�K�K�Kr7r�r�r�c�Z�t|t��stS|j|jkSr%)r&r�r�r�r�s r5r�zInvalidityDate.__eq__�s+���%��0�0� "�!� !��#�u�'<�<�<r7r;c�*�t|j��Sr%)r�r�res r5r�zInvalidityDate.__hash__�s���D�(�)�)�)r7c��|jSr%r�res r5r�zInvalidityDate.invalidity_date�rr7c���|jj�*|j�tjj���S|j�tjj���S)N)�tzinfo)�tz)r�r��replacer��timezone�utc� astimezoneres r5�invalidity_date_utcz"InvalidityDate.invalidity_date_utc�sN�� � � '� /��(�0�0��8I�8M�0�N�N� N��(�3�3�x�7H�7L�3�M�M� Mr7r#c�*�tj|��Sr%r�res r5r'zInvalidityDate.public_bytesr�r7N)r�r�r"rOr�r�rH)r"r�rf)rYrZr[r�INVALIDITY_DATErNrSr�r�r�r�r�r�r'rIr7r5r�r��s������� � .�C�0�0�0�0� L�L�L�L�=�=�=�=� *�*�*�*��%�%�%��X�%��N�N�N��X�N� 6�6�6�6�6�6r7r�c�b�eZdZejZdd�Zed��\ZZ Z dd�Z dd �Z dd�Z dd�ZdS)�)PrecertificateSignedCertificateTimestamps�signed_certificate_timestamps�+typing.Iterable[SignedCertificateTimestamp]r"rOc��t|��}td�|D����std���||_dS)Nc3�@K�|]}t|t��V��dSr%�r&r �r��scts r5r�zEPrecertificateSignedCertificateTimestamps.__init__.<locals>.<genexpr>�A���� � �� �s�6� 7� 7� � � � � � r7�YEvery item in the signed_certificate_timestamps list must be a SignedCertificateTimestamp�rnr�r{�_signed_certificate_timestamps�r@r�s r5rSz2PrecertificateSignedCertificateTimestamps.__init__ �k�� )-�-J�(K�(K�%�� � �4� � � � � � ��/��� �/L��+�+�+r7rr9c�(�dt|���d�S)Nz+<PrecertificateSignedCertificateTimestamps(r�rnres r5r�z2PrecertificateSignedCertificateTimestamps.__repr__ s��K�T�$�Z�Z�K�K�K�Kr7r;c�D�tt|j����Sr%�r�r�rres r5r�z2PrecertificateSignedCertificateTimestamps.__hash__#����E�$�=�>�>�?�?�?r7r�r�r�c�Z�t|t��stS|j|jkSr%)r&r�r�rr�s r5r�z0PrecertificateSignedCertificateTimestamps.__eq__&s3���%�!J�K�K� "�!� !� � /��3� 4� r7r#c�*�tj|��Sr%r�res r5r'z6PrecertificateSignedCertificateTimestamps.public_bytes/r�r7N�r�r�r"rOr�rHr�rf)rYrZr[r�%PRECERT_SIGNED_CERTIFICATE_TIMESTAMPSrNrSrJr�r�r�r�r�r�r'rIr7r5r�r�s������� � <�C�L�L�L�L�"&<�%;�(�&�&�"�G�X�{�L�L�L�L�@�@�@�@� � � � �6�6�6�6�6�6r7r�c�b�eZdZejZdd�Zed��\ZZ Z dd�Z dd �Z dd�Z dd�ZdS)�SignedCertificateTimestampsr�r�r"rOc��t|��}td�|D����std���||_dS)Nc3�@K�|]}t|t��V��dSr%r�rs r5r�z7SignedCertificateTimestamps.__init__.<locals>.<genexpr>=rr7rrrs r5rSz$SignedCertificateTimestamps.__init__6rr7rr9c�(�dt|���d�S)Nz<SignedCertificateTimestamps(rr res r5r�z$SignedCertificateTimestamps.__repr__Ks��=�t�D�z�z�=�=�=�=r7r;c�D�tt|j����Sr%r res r5r�z$SignedCertificateTimestamps.__hash__Nr r7r�r�r�c�Z�t|t��stS|j|jkSr%)r&rr�rr�s r5r�z"SignedCertificateTimestamps.__eq__Qs3���%�!<�=�=� "�!� !� � /��3� 4� r7r#c�*�tj|��Sr%r�res r5r'z(SignedCertificateTimestamps.public_bytesZr�r7Nrr�rHr�rf)rYrZr[r�SIGNED_CERTIFICATE_TIMESTAMPSrNrSrJr�r�r�r�r�r�r'rIr7r5rr3s������� � 4�C�L�L�L�L�"&<�%;�(�&�&�"�G�X�{�>�>�>�>�@�@�@�@� � � � �6�6�6�6�6�6r7rc�\�eZdZejZdd�Zdd �Zdd �Zdd �Z e dd���Z dd�Z dS)� OCSPNonce�noncer#r"rOc�\�t|t��std���||_dS)Nznonce must be bytes)r&r#r{�_nonce)r@rs r5rSzOCSPNonce.__init__as.���%��'�'� 3��1�2�2� 2��� � � r7r�r�r�c�Z�t|t��stS|j|jkSr%)r&rr�rr�s r5r�zOCSPNonce.__eq__gs)���%��+�+� "�!� !��z�U�[�(�(r7r;c�*�t|j��Sr%)r�rres r5r�zOCSPNonce.__hash__ms���D�J���r7r9c��d|j�d�S)Nz<OCSPNonce(nonce=r)rres r5r�zOCSPNonce.__repr__ps��3�4�:�3�3�3�3r7c��|jSr%)rres r5rzOCSPNonce.noncesror7c�*�tj|��Sr%r�res r5r'zOCSPNonce.public_byteswr�r7N)rr#r"rOr�rHr�rf) rYrZr[r�NONCErNrSr�r�r�r�rr'rIr7r5rr^s������� � �C����� )�)�)�)�  � � � �4�4�4�4������X��6�6�6�6�6�6r7rc�L�eZdZejZdd�Zdd �Zdd �Zdd �Z dd�Z dd�Z dS)�OCSPAcceptableResponses� responsesr�r"rOc��t|��}td�|D����rtd���||_dS)Nc3�BK�|]}t|t�� V��dSr%r�)r��rs r5r�z3OCSPAcceptableResponses.__init__.<locals>.<genexpr>�s0����F�F�q�:�a�!1�2�2�2�F�F�F�F�F�Fr7z'All responses must be ObjectIdentifiers)rnrVr{� _responses)r@r's r5rSz OCSPAcceptableResponses.__init__~sG����O�O� � �F�F�I�F�F�F� F� F� G��E�F�F� F�#����r7r�r�r�c�Z�t|t��stS|j|jkSr%)r&r&r�r+r�s r5r�zOCSPAcceptableResponses.__eq__�s+���%�!8�9�9� "�!� !���%�"2�2�2r7r;c�D�tt|j����Sr%)r�r�r+res r5r�z OCSPAcceptableResponses.__hash__�s���E�$�/�*�*�+�+�+r7r9c��d|j�d�S)Nz#<OCSPAcceptableResponses(responses=r)r+res r5r�z OCSPAcceptableResponses.__repr__�s��H�T�_�H�H�H�Hr7�!typing.Iterator[ObjectIdentifier]c�*�t|j��Sr%)rCr+res r5r�z OCSPAcceptableResponses.__iter__�r�r7r#c�*�tj|��Sr%r�res r5r'z$OCSPAcceptableResponses.public_bytes�r�r7N)r'r�r"rOr�rHr�)r"r/rf) rYrZr[r�ACCEPTABLE_RESPONSESrNrSr�r�r�r�r'rIr7r5r&r&{s������� � /�C�$�$�$�$�3�3�3�3� ,�,�,�,�I�I�I�I�%�%�%�%�6�6�6�6�6�6r7r&c���eZdZejZd!d�Zd"d�Zd#d�Zd$d�Z e d%d���Z e d&d���Z e d'd���Z e d'd���Ze d(d���Ze d'd���Ze d'd���Zd)d�Zd S)*�IssuingDistributionPointrPr�rQrR�only_contains_user_certsr��only_contains_ca_certs�only_some_reasonsrT� indirect_crl�only_contains_attribute_certsr"rOc ���|�t|��}|r=t|t��rtd�|D����st d���|r+t j|vst j|vrtd���t|t��r?t|t��r*t|t��rt|t��st d���|||g}td�|D����dkrtd���t|||||||g��std���||_ ||_ ||_||_||_||_||_dS) Nc3�@K�|]}t|t��V��dSr%rZr�s r5r�z4IssuingDistributionPoint.__init__.<locals>.<genexpr>�rDr7z:only_some_reasons must be None or frozenset of ReasonFlagszTunspecified and remove_from_crl are not valid reasons in an IssuingDistributionPointzuonly_contains_user_certs, only_contains_ca_certs, indirect_crl and only_contains_attribute_certs must all be boolean.c��g|]}|�|��SrIrIr�s r5r�z5IssuingDistributionPoint.__init__.<locals>.<listcomp>�s��0�0�0�a�a�0��0�0�0r7r�z}Only one of the following can be set to True: only_contains_user_certs, only_contains_ca_certs, only_contains_attribute_certsz�Cannot create empty extension: if only_contains_user_certs, only_contains_ca_certs, indirect_crl, and only_contains_attribute_certs are all False, then either full_name, relative_name, or only_some_reasons must have a value.)rnr&r\r�r{r[r]r^r�r�r=rV�_only_contains_user_certs�_only_contains_ca_certs� _indirect_crl�_only_contains_attribute_certs�_only_some_reasonsr_r`) r@rPrQr5r6r7r8r9�crl_constraintss r5rSz!IssuingDistributionPoint.__init__�s��� � ��Y���I� � ��,�i�8�8� ��M�M�;L�M�M�M�M�M� ��L��� � � � � #�'8� 8� 8��*�.?�?�?��+��� � �/�� 6� 6� ��1�4�8�8� ��<��.�.� ��8�$�?�?� � �'��� � %� "� )� �� �0�0�?�0�0�0� 1� 1�A� 5� 5��0��� � �(�&��-���!� �  �  � ��%��� �*B��&�'=��$�)���.K��+�"3���#���+����r7r9c�x�d|j�d|j�d|j�d|j�d|j�d|j�d|j�d�S) Nz$<IssuingDistributionPoint(full_name=z, relative_name=z, only_contains_user_certs=z, only_contains_ca_certs=z, only_some_reasons=z, indirect_crl=z , only_contains_attribute_certs=r)rPrQr5r6r7r8r9res r5r�z!IssuingDistributionPoint.__repr__�s��� 6�4�>� 6� 6�!�/� 6� 6�(,�(E� 6� 6�'+�&A� 6� 6�"&�!7�  6� 6� !�-�  6� 6��1� 6� 6� 6� r7r�r�c��t|t��stS|j|jko_|j|jkoO|j|jko?|j|jko/|j|jko|j|jko|j |j kSr%) r&r4r�rPrQr5r6r7r8r9r�s r5r�zIssuingDistributionPoint.__eq__�s����%�!9�:�:� "�!� !� �N�e�o� -� 3��"�e�&9�9� 3��-��1O�O� 3��+�u�/K�K� 3��&�%�*A�A�  3� �!�U�%7�7�  3� �2��2�3� r7r;c �t�t|j|j|j|j|j|j|jf��Sr%)r�rPrQr5r6r7r8r9res r5r�z!IssuingDistributionPoint.__hash__ sB������"��-��+��&��!��2� �  �  � r7r�c��|jSr%rjres r5rPz"IssuingDistributionPoint.full_namerkr7c��|jSr%rmres r5rQz&IssuingDistributionPoint.relative_namerr7c��|jSr%)r=res r5r5z1IssuingDistributionPoint.only_contains_user_certs s ���-�-r7c��|jSr%)r>res r5r6z/IssuingDistributionPoint.only_contains_ca_certs$r�r7c��|jSr%)rAres r5r7z*IssuingDistributionPoint.only_some_reasons(r�r7c��|jSr%)r?res r5r8z%IssuingDistributionPoint.indirect_crl.r�r7c��|jSr%)r@res r5r9z6IssuingDistributionPoint.only_contains_attribute_certs2s ���2�2r7r#c�*�tj|��Sr%r�res r5r'z%IssuingDistributionPoint.public_bytes6r�r7N)rPr�rQrRr5r�r6r�r7rTr8r�r9r�r"rOr�r�rHr�rpr$rqrf)rYrZr[r�ISSUING_DISTRIBUTION_POINTrNrSr�r�r�r�rPrQr5r6r7r8r9r'rIr7r5r4r4�se������ � 1�C�S,�S,�S,�S,�j  �  �  �  �  �  �  �  �  �  �  �  ������X���#�#�#��X�#��.�.�.��X�.��,�,�,��X�,��'�'�'��X�'� �"�"�"��X�"��3�3�3��X�3�6�6�6�6�6�6r7r4c��eZdZejZdd�Zedd ���Zedd ���Z edd ���Z dd �Z dd�Z dd�Z dd�ZdS)�MSCertificateTemplate� template_idr� major_versionr�� minor_versionr"rOc���t|t��std���||_|�t|t��r|�$t|t��std���||_||_dS)N�oid must be an ObjectIdentifierz8major_version and minor_version must be integers or None)r&rr{� _template_idr;�_major_version�_minor_version)r@rQrRrSs r5rSzMSCertificateTemplate.__init__=s��� �+�'7�8�8� ?��=�>�>� >�'��� � %�j���.L�.L� %� � %�j���.L�.L� %��J��� �,���+����r7c��|jSr%)rVres r5rQz!MSCertificateTemplate.template_idQrr7c��|jSr%)rWres r5rRz#MSCertificateTemplate.major_versionUrr7c��|jSr%)rXres r5rSz#MSCertificateTemplate.minor_versionYrr7r9c�8�d|j�d|j�d|j�d�S)Nz#<MSCertificateTemplate(template_id=z, major_version=z, minor_version=r)rQrRrSres r5r�zMSCertificateTemplate.__repr__]s@�� 4�$�2B� 4� 4�!�/� 4� 4�!�/� 4� 4� 4� r7r�r�r�c��t|t��stS|j|jko|j|jko|j|jkSr%)r&rPr�rQrRrSr�s r5r�zMSCertificateTemplate.__eq__dsV���%�!6�7�7� "�!� !� � �� 1� 1� :��"�e�&9�9� :��"�e�&9�9� r7r;c�D�t|j|j|jf��Sr%)r�rQrRrSres r5r�zMSCertificateTemplate.__hash__ns ���T�%�t�'9�4�;M�N�O�O�Or7r#c�*�tj|��Sr%r�res r5r'z"MSCertificateTemplate.public_bytesqr�r7N)rQrrRr�rSr�r"rOrr�r�r�rHrf)rYrZr[r�MS_CERTIFICATE_TEMPLATErNrSr�rQrRrSr�r�r�r'rIr7r5rPrP:s������� � .�C�,�,�,�,�(�!�!�!��X�!��#�#�#��X�#��#�#�#��X�#� � � � � � � � �P�P�P�P�6�6�6�6�6�6r7rPc�v�eZdZdd�Zedd ���Zedd ���Zedd ���Zdd �Zdd�Z dd�Z dS)�NamingAuthority�id�ObjectIdentifier | None�urlr��textr"rOc��|�$t|t��std���|�$t|t��std���|�$t|t��std���||_||_||_dS)Nzid must be an ObjectIdentifierzurl must be a strztext must be a str)r&rr{r9�_id�_url�_text)r@rcrerfs r5rSzNamingAuthority.__init__vs��� �>�*�R�1A�"B�"B�>��<�=�=� =� �?�:�c�3�#7�#7�?��/�0�0� 0� � �J�t�S�$9�$9� ��0�1�1� 1������ ��� � � r7c��|jSr%)rhres r5rczNamingAuthority.id�rr7c��|jSr%)rires r5rezNamingAuthority.url�rkr7c��|jSr%)rjres r5rfzNamingAuthority.text�s ���z�r7r9c�8�d|j�d|j�d|j�d�S)Nz<NamingAuthority(id=z, url=z, text=r)rcrerfres r5r�zNamingAuthority.__repr__�sF�� @��'� @� @�!%�� @� @�26�)� @� @� @� r7r�r�r�c��t|t��stS|j|jko|j|jko|j|jkSr%)r&rbr�rcrerfr�s r5r�zNamingAuthority.__eq__�sO���%��1�1� "�!� !� �G�u�x� � (���E�I�%� (�� �U�Z�'� r7r;c�D�t|j|j|jf��Sr%)r�rcrerfres r5r�zNamingAuthority.__hash__�s(�������� � � � � r7N)rcrdrer�rfr�r"rO)r"rdr�r�r�rH) rYrZr[rSr�rcrerfr�r�r�rIr7r5rbrbus�����������&�����X�������X�������X�� � � � �  � � � � � � � � � r7rbc��eZdZdd �Zedd���Zed d���Zed!d���Zed"d���Zed#d���Z d$d�Z d%d�Z d&d�Z dS)'�ProfessionInfo�naming_authority�NamingAuthority | None�profession_items�typing.Iterable[str]�profession_oids�(typing.Iterable[ObjectIdentifier] | None�registration_numberr��add_profession_infor�r"rOc��|�$t|t��std���t|��}t d�|D����std���|�7t|��}t d�|D����std���|�$t|t ��std���|�$t|t ��std���||_||_||_ ||_ ||_ dS)N�*naming_authority must be a NamingAuthorityc3�@K�|]}t|t��V��dSr%)r&r9)r��items r5r�z*ProfessionInfo.__init__.<locals>.<genexpr>�s,����F�F�T�:�d�C�(�(�F�F�F�F�F�Fr7z5Every item in the profession_items list must be a strc3�@K�|]}t|t��V��dSr%r�)r�rNs r5r�z*ProfessionInfo.__init__.<locals>.<genexpr>�s>������69� �3� 0�1�1������r7zBEvery item in the profession_oids list must be an ObjectIdentifierz!registration_number must be a strz!add_profession_info must be bytes) r&rbr{rnr�r9r#�_naming_authority�_profession_items�_profession_oids�_registration_number�_add_profession_info)r@rsrurwryrzs r5rSzProfessionInfo.__init__�sU�� � '� � �o�1 �1 � '��H�I�I� I�� 0�1�1���F�F�5E�F�F�F�F�F� ��G��� � � &�"�?�3�3�O����=L������ � �'���� � *�:� ��4 �4 � *��?�@�@� @� � *�:� ��4 �4 � *��?�@�@� @�!1���!1��� /���$7��!�$7��!�!�!r7c��|jSr%�r�res r5rszProfessionInfo.naming_authority�r�r7r}c��|jSr%)r�res r5ruzProfessionInfo.profession_items�r�r7�list[ObjectIdentifier] | Nonec��|jSr%)r�res r5rwzProfessionInfo.profession_oids�rr7c��|jSr%)r�res r5ryz"ProfessionInfo.registration_number�� ���(�(r7c��|jSr%)r�res r5rzz"ProfessionInfo.add_profession_info�r�r7r9c �X�d|j�d|j�d|j�d|j�d|j�d� S)Nz!<ProfessionInfo(naming_authority=z, profession_items=z, profession_oids=z, registration_number=z, add_profession_info=r)rsrurwryrzres r5r�zProfessionInfo.__repr__�sp�� B��0E� B� B� $� 5� B� B�#�3� B� B�$(�#;� B� B�$(�#;�  B� B� B� r7r�r�r�c���t|t��stS|j|jko?|j|jko/|j|jko|j|jko|j|jkSr%)r&rrr�rsrurwryrzr�s r5r�zProfessionInfo.__eq__�s����%��0�0� "�!� !� � !�U�%;� ;� F��%��)?�?� F��$��(=�=� F��(�E�,E�E� F��(�E�,E�E�  r7r;c��|j�t|j��}nd}t|jt|j��||j|jf��Sr%)rwr�r�rsruryrz)r@rws r5r�zProfessionInfo.__hash__ s\�� � � +�#�D�$8�9�9�O�O�"�O���%��d�+�,�,���(��(�  � � � r7N) rsrtrurvrwrxryr�rzr�r"rO�r"rt)r"r})r"r�r�r�r�r�rH) rYrZr[rSr�rsrurwryrzr�r�r�rIr7r5rrrr�s������+8�+8�+8�+8�Z�&�&�&��X�&��&�&�&��X�&��%�%�%��X�%��)�)�)��X�)��)�)�)��X�)� � � � �  �  �  �  �  �  �  �  �  �  r7rrc�v�eZdZdd �Zedd ���Zedd ���Zedd ���Zdd�Zdd�Z dd�Z dS)� Admission�admission_authority�GeneralName | Nonersrt�profession_infos�typing.Iterable[ProfessionInfo]r"rOc�6�|�$t|t��std���|�$t|t��std���t |��}t d�|D����std���||_||_||_dS)Nz)admission_authority must be a GeneralNamer|c3�@K�|]}t|t��V��dSr%)r&rr)r��infos r5r�z%Admission.__init__.<locals>.<genexpr>( s=���� � �15�J�t�^� ,� ,� � � � � � r7z@Every item in the profession_infos list must be a ProfessionInfo) r&rr{rbrnr��_admission_authorityr��_profession_infos)r@r�rsr�s r5rSzAdmission.__init__ s��� � *�:� ��4 �4 � *��G�H�H� H� � '� � �o�1 �1 � '��H�I�I� I�� 0�1�1��� � �9I� � � � � � ��!��� � %8��!�!1���!1����r7c��|jSr%)r�res r5r�zAdmission.admission_authority4 r�r7c��|jSr%r�res r5rszAdmission.naming_authority8 r�r7�list[ProfessionInfo]c��|jSr%)r�res r5r�zAdmission.profession_infos< r�r7r9c�8�d|j�d|j�d|j�d�S)Nz<Admission(admission_authority=z, naming_authority=z, profession_infos=r)r�rsr�res r5r�zAdmission.__repr__@ s@�� :�d�.F� :� :� $� 5� :� :� $� 5� :� :� :� r7r�r�r�c��t|t��stS|j|jko|j|jko|j|jkSr%)r&r�r�r�rsr�r�s r5r�zAdmission.__eq__G sW���%��+�+� "�!� !� � $��(A� A� @��%��)?�?� @��%��)?�?� r7r;c�^�t|j|jt|j��f��Sr%)r�r�rsr�r�res r5r�zAdmission.__hash__Q s3����(��%��d�+�,�,� � � � r7N)r�r�rsrtr�r�r"rO�r"r�r�)r"r�r�r�rH) rYrZr[rSr�r�rsr�r�r�r�rIr7r5r�r� s�������2�2�2�2�:�)�)�)��X�)��&�&�&��X�&��&�&�&��X�&� � � � � � � � � � � � � � r7r�c�z�eZdZejZdd�Zed��\ZZ Z e dd ���Z dd �Z dd�Zdd�Zdd�ZdS)� Admissions� authorityr�� admissions�typing.Iterable[Admission]r"rOc���|�$t|t��std���t|��}t d�|D����std���||_||_dS)Nzauthority must be a GeneralNamec3�@K�|]}t|t��V��dSr%)r&r�)r�� admissions r5r�z&Admissions.__init__.<locals>.<genexpr>g s=���� � �1:�J�y�)� ,� ,� � � � � � r7zBEvery item in the contents_of_admissions list must be an Admission)r&rr{rnr�� _authority� _admissions)r@r�r�s r5rSzAdmissions.__init__^ s��� � ��I�{�)K�)K� ��=�>�>� >��*�%�%� �� � �>H� � � � � � ����� � $���%����r7r�c��|jSr%)r�res r5r�zAdmissions.authorityt rkr7r9c�(�d|j�d|j�d�S)Nz<Admissions(authority=z , admissions=r)r�r�res r5r�zAdmissions.__repr__x s/�� /�T�_� /� /��*� /� /� /� r7r�r�r�c�z�t|t��stS|j|jko|j|jkSr%)r&r�r�r�r�r�s r5r�zAdmissions.__eq__~ s@���%��,�,� "�!� !� �N�e�o� -� 6�� �E�$5�5� r7r;c�R�t|jt|j��f��Sr%)r�r�r�r�res r5r�zAdmissions.__hash__� s"���T�^�U�4�+;�%<�%<�=�>�>�>r7r#c�*�tj|��Sr%r�res r5r'zAdmissions.public_bytes� r�r7N)r�r�r�r�r"rOr�r�r�rHrf)rYrZr[r� ADMISSIONSrNrSrJr�r�r�r�r�r�r�r�r'rIr7r5r�r�[ s������� � !�C�&�&�&�&�(&<�%;�M�%J�%J�"�G�X�{� �����X�� � � � �  � � � �?�?�?�?�6�6�6�6�6�6r7r�c�f�eZdZdd�Zedd���Zedd ���Zdd �Zdd�Zdd�Z dd�Z dS)rzrNrr|r#r"rOc�j�t|t��std���||_||_dS)NrU)r&rr{rfrh)r@rNr|s r5rSzUnrecognizedExtension.__init__� s6���#�/�0�0� ?��=�>�>� >��� ��� � � r7c��|jSr%rjres r5rNzUnrecognizedExtension.oid� rkr7c��|jSr%rnres r5r|zUnrecognizedExtension.value� ror7r9c�(�d|j�d|j�d�S)Nz<UnrecognizedExtension(oid=rqr)rNr|res r5r�zUnrecognizedExtension.__repr__� s.�� &�$�(� &� &��Z� &� &� &� r7r�r�r�c�z�t|t��stS|j|jko|j|jkSr%)r&rzr�rNr|r�s r5r�zUnrecognizedExtension.__eq__� s8���%�!6�7�7� "�!� !��x�5�9�$�B���u�{�)B�Br7r;c�8�t|j|jf��Sr%)r�rNr|res r5r�zUnrecognizedExtension.__hash__� s���T�X�t�z�*�+�+�+r7c��|jSr%r res r5r'z"UnrecognizedExtension.public_bytes� s ���z�r7N)rNrr|r#r"rOrrfr�r�rH) rYrZr[rSr�rNr|r�r�r�r'rIr7r5rzrz� s����������� �����X�������X�� � � � � C�C�C�C� ,�,�,�,������r7rz)r!r r"r#)r8r9)p� __future__r�abcr�r0rQr�� cryptographyr�"cryptography.hazmat.bindings._rustrrr��cryptography.hazmat.primitivesrr�,cryptography.hazmat.primitives.asymmetric.ecr �-cryptography.hazmat.primitives.asymmetric.rsar �/cryptography.hazmat.primitives.asymmetric.typesr r �*cryptography.x509.certificate_transparencyr �cryptography.x509.general_namerrrrrrrrr�cryptography.x509.namerr�cryptography.x509.oidrrrr�TypeVarrr6rJ� ExceptionrLr`�ABCMetarrjr�r�r�r�r�r�rr'r0rGr6�Enumr[r|r}r~rvrr�r�r��_REASON_BIT_MAPPING�_CRLREASONFLAGSr]r^�_CRL_ENTRY_REASON_ENUM_TO_CODEr�r�r�r�r�r�r�r�r�r��_TLS_FEATURE_TYPE_TO_ENUMrrr>�Genericrcrur�r�r�r�r�r�rrr&r4rPrbrrr�r�rzrIr7r5�<module>r�s@ �� #�"�"�"�"�"� � � � ������������� � � � �������3�3�3�3�3�3�@�@�@�@�@�@�G�G�G�G�G�G�G�G�O�O�O�O�O�O�F�F�F�F�F�F��������������� � � � � � � � � � � � � � � � � � � � � � �C�B�B�B�B�B�B�B�������������"�6�>��o������ '�'�'�'�0 3� 3� 3� 3���������� ����� ����  �  �  �  �  �c�k�  �  �  �  �$3�$3�$3�$3�$3�$3�$3�$3�N6�6�6�6�6� �6�6�6�:i6�i6�i6�i6�i6�]�i6�i6�i6�X!6�!6�!6�!6�!6�=�!6�!6�!6�H6�6�6�6�6��6�6�6�B6�6�6�6�6�}�6�6�6�B%%�%%�%%�%%�%%�%%�%%�%%�P,6�,6�,6�,6�,6�}�,6�,6�,6�^6�6�6�6�6� �6�6�6�:"6�"6�"6�"6�"6�M�"6�"6�"6�J"6�"6�"6�"6�"6�-�"6�"6�"6�Jh �h �h �h �h �h �h �h �V &� &� &� &� &�%�*� &� &� &�4�!�� ��&����)��#��&�� � � �������q��#�Q���A��&��� �!��#�Q���q� ��0��Q������q��#�Q���A��&��� �!�����#�Q���r� "��>6�>6�>6�>6�>6� �>6�>6�>6�B6�6�6�6�6�-�6�6�6�>6'�6'�6'�6'�6'�6'�6'�6'�r(#�(#�(#�(#�(#�(#�(#�(#�V%$�%$�%$�%$�%$�%$�%$�%$�P6�6�6�6�6�}�6�6�6�<6�6�6�6�6�-�6�6�6�&6�6�6�6�6�M�6�6�6�&6�6�6�6�6��6�6�6�D�����U�Z����A�@��@�@�@��6�6�6�6�6�}�6�6�6�@B6�B6�B6�B6�B6�}�B6�B6�B6�Jp6�p6�p6�p6�p6�m�p6�p6�p6�f-;�-;�-;�-;�-;���/�0�-;�-;�-;�`M0�M0�M0�M0�M0�M0�M0�M0�`E6�E6�E6�E6�E6�]�E6�E6�E6�PE6�E6�E6�E6�E6�M�E6�E6�E6�PE6�E6�E6�E6�E6� �E6�E6�E6�P6�6�6�6�6� �6�6�6�:!6�!6�!6�!6�!6�]�!6�!6�!6�H(6�(6�(6�(6�(6� �(6�(6�(6�V(6�(6�(6�(6�(6�-�(6�(6�(6�V6�6�6�6�6� �6�6�6�:6�6�6�6�6�m�6�6�6�:_6�_6�_6�_6�_6�}�_6�_6�_6�D86�86�86�86�86�M�86�86�86�v7 �7 �7 �7 �7 �7 �7 �7 �td �d �d �d �d �d �d �d �NB �B �B �B �B �B �B �B �J06�06�06�06�06��06�06�06�f�����M�����r7
Memory