<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
y_Y~                  @   s  d dl mZmZmZ d dlZd dlZd dlZd dlmZ d dl	m
Z
mZmZmZ d dlmZ d dlmZ d dlmZmZmZmZ dd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd ZG dd deZ dd Z!dd Z"dd Z#d d! Z$d"d# Z%d$d% Z&d&d' Z'd(d) Z(d*d+ Z)d,d- Z*d.d/ Z+d0d1 Z,d2d3 Z-d4d5 Z.d6d7 Z/d8d9 Z0d:d; Z1d Z2d<Z3d=d> Z4ej5j6ej5j7ej5j8ej5j9ej5j:ej5j;ej5j<ej5j=d?Z>d@dA Z?dBdC Z@dDdE ZAdFdG ZBdHdI ZCdJdK ZDdLdM ZEdNdO ZFej5jGej5j6ej5j7ej5j8ej5j9ej5j:ej5j;ej5jHej5j<ej5j=dP
ZIej5jGd ej5j6d<ej5j7dQej5j8dRej5j9dSej5j:dTej5j;dUej5jHdVej5j<dWej5j=dXi
ZJdYdZ ZKd[d\ ZLd]d^ ZMd_d` ZNdadb ZOdcdd ZPdedf ZQdgdh ZRdidj ZSdkdl ZTdmdn ZUdodp ZVejWe#ejXe$ejYe)ejZe+ej[e1ej\e%ej]e'ej^e(ej_e!ej`eAejaeBejbeejceCejde,ejee-ejfe0iZgejheEiZiejjeKejkeLejleMiZmejneejoeej\e%ejde,ej]e'ejpe/ejaeBiZqejreViZsejreViZtejueFiZvdS )q    )absolute_importdivisionprint_functionN)x509)	DERReaderINTEGERNULLSEQUENCE)_TLS_FEATURE_TYPE_TO_ENUM)_ASN1_TYPE_TO_ENUM)CRLEntryExtensionOIDCertificatePoliciesOIDExtensionOIDOCSPExtensionOIDc             C   s   d}| j jd|}| jj|||d}||d krX|d }| j jd|}| jj|||d}| j|dk | j j||d d  j S )NP   zchar[]   r   )_ffinew_libZOBJ_obj2txtopenssl_assertbufferdecode)backendobjZbuf_lenbufres r   #/usr/lib64/python3.6/decode_asn1.py_obj2txt   s    	r   c             C   sn   | j j|}| j|| jjk | j j|}| j|| jjk t| |}t| |}t|j	 }t
jt
j|||S )N)r   ZX509_NAME_ENTRY_get_objectr   r   r   ZX509_NAME_ENTRY_get_data_asn1_string_to_utf8r   r   typer   ZNameAttributeObjectIdentifier)r   Zx509_name_entryr   datavalueoidr    r   r   r   _decode_x509_name_entry0   s    


r%   c       	      C   s   | j j|}g }d}x\t|D ]P}| j j||}t| |}| j j|}||kr\|j|h n|d j| |}qW tj	dd |D S )Nr   c             s   s   | ]}t j|V  qd S )N)r   RelativeDistinguishedName).0Zrdnr   r   r   	<genexpr>K   s    z$_decode_x509_name.<locals>.<genexpr>r)   )
r   ZX509_NAME_entry_countrangeZX509_NAME_get_entryr%   Z Cryptography_X509_NAME_ENTRY_setappendaddr   Name)	r   Z	x509_namecount
attributesZprev_set_idxentryZ	attributeZset_idr   r   r   _decode_x509_name<   s    
r2   c             C   sV   | j j|}g }x@t|D ]4}| j j||}| j|| jjk |jt| | qW |S )N)	r   Zsk_GENERAL_NAME_numr*   Zsk_GENERAL_NAME_valuer   r   r   r+   _decode_general_name)r   gnsnumnamesignr   r   r   _decode_general_namesN   s    r9   c             C   s  |j | jjkr.t| |jjjd}tjj	|S |j | jj
kr\t| |jjjd}tjj	|S |j | jjkrt| |jj}tjtj|S |j | jjkrbt| |jj}t|}|dks|dkrNtj|d |d  }tj||d d  }tt|dd  }|jd}|dkrt|}d||d  kr6tdtj|jd	j| }	n
tj|}	tj|	S |j | jjkrtj t!| |jj"S |j | jj#krt| |jj$jd}tj%j	|S |j | jj&krt| |jj'j(}
t)| |jj'j*}tj+tj|
|S tj,d
jtj-j.|j |j |j d S )Nutf8          0r   1zInvalid netmaskz/{}z{} is not a supported typer)   )/r    r   ZGEN_DNS_asn1_string_to_bytesdZdNSNamer   r   ZDNSNameZ_init_without_validationZGEN_URIZuniformResourceIdentifierZUniformResourceIdentifierZGEN_RIDr   ZregisteredIDZRegisteredIDr!   Z	GEN_IPADDZ	iPAddresslen	ipaddressZ
ip_addressbinintfind
ValueErrorZ
ip_networkZexplodedformatZ	IPAddressZGEN_DIRNAMEZDirectoryNamer2   ZdirectoryNameZ	GEN_EMAILZ
rfc822NameZ
RFC822NameZGEN_OTHERNAMEZ	otherNametype_id_asn1_to_derr#   Z	OtherNameZUnsupportedGeneralNameTypeZ_GENERAL_NAMESget)r   r8   r"   r$   Zdata_lenbaseZnetmaskbitsprefixZiprI   r#   r   r   r   r3   Y   sP    



r3   c             C   s   t j S )N)r   ZOCSPNoCheck)r   extr   r   r   _decode_ocsp_no_check   s    rP   c             C   s0   | j jd|}| j j|| jj}tjt| |S )NzASN1_INTEGER *)r   castgcr   ASN1_INTEGER_freer   Z	CRLNumber_asn1_integer_to_int)r   rO   asn1_intr   r   r   _decode_crl_number   s    rV   c             C   s0   | j jd|}| j j|| jj}tjt| |S )NzASN1_INTEGER *)r   rQ   rR   r   rS   r   ZDeltaCRLIndicatorrT   )r   rO   rU   r   r   r   _decode_delta_crl_indicator   s    rW   c               @   s   e Zd Zdd Zdd ZdS )_X509ExtensionParserc             C   s   || _ || _|| _|| _d S )N)	ext_countget_exthandlers_backend)selfr   rY   rZ   r[   r   r   r   __init__   s    z_X509ExtensionParser.__init__c             C   sp  g }t  }xXt| j|D ]D}| j||}| jj|| jjjk | jjj	|}|dk}t
jt| j| jjj|}||krt
jdj|||tjkr | jjj|}	t| j|	}
t|
jt}g }x |j s|j|jtj  qW t
jdd |D }|jt
j||| |j| qn\|tjkr|| jjj|}	tt| j|	}|jtj   |jt
j||t
j!  |j| qy| j"| }W nv t#k
r    | jjj|}	| jj|	| jjjk | jjj$|	j%|	j&d d  }t
j'||}|jt
j||| Y nXX | jjj(|}|| jjjkr8| jj)  t*dj||| j|}|jt
j||| |j| qW t
j+|S )Nr   zDuplicate {} extension foundc             S   s   g | ]}t | qS r   )r
   )r'   r0   r   r   r   
<listcomp>   s    z._X509ExtensionParser.parse.<locals>.<listcomp>z/The {} extension is invalid and can't be parsed),setr*   rY   rZ   r\   r   r   r   r   ZX509_EXTENSION_get_criticalr   r!   r   ZX509_EXTENSION_get_objectZDuplicateExtensionrH   r   ZTLS_FEATUREZX509_EXTENSION_get_datar@   r   Zread_single_elementr	   Zis_emptyr+   Zread_elementr   Z
as_integerZ
TLSFeatureZ	Extensionr,   ZPRECERT_POISONZcheck_emptyZPrecertPoisonr[   KeyErrorr   r"   lengthZUnrecognizedExtensionZX509V3_EXT_d2iZ_consume_errorsrG   Z
Extensions)r]   Zx509_obj
extensionsZ	seen_oidsr7   rO   ZcritZcriticalr$   r"   Z
data_bytesZfeaturesZparsedr#   readerZhandlerZderZunrecognizedZext_datar   r   r   parse   sh    



z_X509ExtensionParser.parseN)__name__
__module____qualname__r^   re   r   r   r   r   rX      s   rX   c             C   s@  | j jd|}| j j|| jj}| jj|}g }xt|D ]}d }| jj||}tj	t
| |j}|j| j jkr | jj|j}g }xt|D ]}	| jj|j|	}
tj	t
| |
j}|tjkr| j j|
jjj|
jjjd d  jd}|j| q|tjkstt| |
jj}|j| qW |jtj|| q<W tj|S )Nz"Cryptography_STACK_OF_POLICYINFO *ascii) r   rQ   rR   r   ZCERTIFICATEPOLICIES_freeZsk_POLICYINFO_numr*   Zsk_POLICYINFO_valuer   r!   r   Zpolicyid
qualifiersr   Zsk_POLICYQUALINFO_numZsk_POLICYQUALINFO_valuepqualidr   ZCPS_QUALIFIERr   rA   cpsurir"   rb   r   r+   ZCPS_USER_NOTICEAssertionError_decode_user_noticeZ
usernoticeZPolicyInformationZCertificatePolicies)r   Zcpr5   Zcertificate_policiesr7   rj   Zpir$   ZqnumjZpqirk   rl   Zuser_noticer   r   r   _decode_certificate_policies  s2    
rp   c       
      C   s   d }d }|j | jjkr"t| |j }|j| jjkrt| |jj}| jj|jj}g }x6t	|D ]*}| jj
|jj|}t| |}	|j|	 q\W tj||}tj||S )N)Zexptextr   r   r   Z	noticereforganizationr   Zsk_ASN1_INTEGER_numZ	noticenosr*   Zsk_ASN1_INTEGER_valuerT   r+   r   ZNoticeReferenceZ
UserNotice)
r   ZunZexplicit_textZnotice_referencerq   r5   Znotice_numbersr7   rU   Z
notice_numr   r   r   rn   )  s    
rn   c             C   sB   | j jd|}| j j|| jj}|jdk}t| |j}tj	||S )NzBASIC_CONSTRAINTS *   )
r   rQ   rR   r   ZBASIC_CONSTRAINTS_freeca_asn1_integer_to_int_or_noneZpathlenr   ZBasicConstraints)r   Zbc_stZbasic_constraintsrs   Zpath_lengthr   r   r   _decode_basic_constraintsA  s    

ru   c             C   s@   | j jd|}| j j|| jj}tj| j j|j|j	d d  S )NzASN1_OCTET_STRING *)
r   rQ   rR   r   ASN1_OCTET_STRING_freer   ZSubjectKeyIdentifierr   r"   rb   )r   asn1_stringr   r   r   _decode_subject_key_identifierQ  s
    rx   c             C   s   | j jd|}| j j|| jj}d }d }|j| j jkrT| j j|jj|jj	d d  }|j
| j jkrnt| |j
}t| |j}tj|||S )NzAUTHORITY_KEYID *)r   rQ   rR   r   ZAUTHORITY_KEYID_freeZkeyidr   r   r"   rb   Zissuerr9   rt   serialr   ZAuthorityKeyIdentifier)r   ZakidZkey_identifierZauthority_cert_issuerZauthority_cert_serial_numberr   r   r    _decode_authority_key_identifier[  s    
rz   c                s    j jd|} j j| fdd} jj|}g }xvt|D ]j} jj||} j|j j j	k t
jt |j} j|j j j	k t |j}|jt
j|| q>W |S )Nz*Cryptography_STACK_OF_ACCESS_DESCRIPTION *c                s    j j|  jj j jdS )NZACCESS_DESCRIPTION_free)r   Zsk_ACCESS_DESCRIPTION_pop_freer   Z	addressofZ_original_lib)r0   )r   r   r   <lambda>v  s   z,_decode_information_access.<locals>.<lambda>)r   rQ   rR   r   Zsk_ACCESS_DESCRIPTION_numr*   Zsk_ACCESS_DESCRIPTION_valuer   methodr   r   r!   r   locationr3   r+   ZAccessDescription)r   Ziar5   access_descriptionsr7   Zadr$   r8   r   )r   r   _decode_information_accessr  s    r   c             C   s   t | |}tj|S )N)r   r   ZAuthorityInformationAccess)r   aiar~   r   r   r   $_decode_authority_information_access  s    
r   c             C   s   t | |}tj|S )N)r   r   ZSubjectInformationAccess)r   r   r~   r   r   r   "_decode_subject_information_access  s    
r   c          
   C   s   | j jd|}| j j|| jj}| jj}||ddk}||ddk}||ddk}||ddk}||ddk}||ddk}||ddk}	||d	dk}
||d
dk}tj|||||||	|
|	S )NzASN1_BIT_STRING *r   r   r=                  r;   )r   rQ   rR   r   ZASN1_BIT_STRING_freeASN1_BIT_STRING_get_bitr   ZKeyUsage)r   Z
bit_stringZget_bitZdigital_signatureZcontent_commitmentZkey_enciphermentZdata_enciphermentZkey_agreementZkey_cert_signZcrl_signZencipher_onlyZdecipher_onlyr   r   r   _decode_key_usage  s,    r   c             C   s.   | j jd|}| j j|| jj}t| |}|S )NzGENERAL_NAMES *)r   rQ   rR   r   GENERAL_NAMES_freer9   )r   r4   general_namesr   r   r   _decode_general_names_extension  s    
r   c             C   s   t jt| |S )N)r   ZSubjectAlternativeNamer   )r   rO   r   r   r   _decode_subject_alt_name  s    r   c             C   s   t jt| |S )N)r   ZIssuerAlternativeNamer   )r   rO   r   r   r   _decode_issuer_alt_name  s    r   c             C   sF   | j jd|}| j j|| jj}t| |j}t| |j}tj	||dS )NzNAME_CONSTRAINTS *)Zpermitted_subtreesZexcluded_subtrees)
r   rQ   rR   r   ZNAME_CONSTRAINTS_free_decode_general_subtreesZpermittedSubtreesZexcludedSubtreesr   ZNameConstraints)r   ZncZ	permittedZexcludedr   r   r   _decode_name_constraints  s    r   c             C   sl   || j jkrd S | jj|}g }xFt|D ]:}| jj||}| j|| j jk t| |j}|j	| q*W |S )N)
r   r   r   Zsk_GENERAL_SUBTREE_numr*   Zsk_GENERAL_SUBTREE_valuer   r3   rL   r+   )r   Zstack_subtreesr5   Zsubtreesr7   r   namer   r   r   r     s    r   c       	      C   s   | j jd|}| j j|| jj}|j| j jkr@t| |j\}}nd }d }|jdk}|j	dk}|j
dk}|jdk}|j| j jkrt| |j}nd }tj|||||||S )NzISSUING_DIST_POINT *rr   )r   rQ   rR   r   ZISSUING_DIST_POINT_free	distpointr   _decode_distpointZonlyuserZonlyCAZindirectCRLZonlyattrZonlysomereasons_decode_reasonsr   ZIssuingDistributionPoint)	r   Zidp	full_namerelative_nameZ	only_userZonly_caZindirect_crlZ	only_attrZonly_some_reasonsr   r   r   _decode_issuing_dist_point  s*    



r   c             C   sD   | j jd|}| j j|| jj}t| |j}t| |j}tj	||S )NzPOLICY_CONSTRAINTS *)
r   rQ   rR   r   ZPOLICY_CONSTRAINTS_freert   ZrequireExplicitPolicyZinhibitPolicyMappingr   ZPolicyConstraints)r   ZpcZrequire_explicit_policyZinhibit_policy_mappingr   r   r   _decode_policy_constraints  s    

r   c             C   s   | j jd|}| j j|| jj}| jj|}g }xJt|D ]>}| jj||}| j|| j j	k t
jt| |}|j| q:W t
j|S )Nz#Cryptography_STACK_OF_ASN1_OBJECT *)r   rQ   rR   r   Zsk_ASN1_OBJECT_freeZsk_ASN1_OBJECT_numr*   Zsk_ASN1_OBJECT_valuer   r   r   r!   r   r+   ZExtendedKeyUsage)r   Zskr5   Zekusr7   r   r$   r   r   r   _decode_extended_key_usage  s    r   r   c       
      C   s   | j jd|}| j j|| jj}| jj|}g }xt|D ]}d }d }d }d }| jj||}	|	j| j j	krvt
| |	j}|	j| j j	krt| |	j}|	j| j j	krt| |	j\}}|jtj|||| q:W |S )Nz"Cryptography_STACK_OF_DIST_POINT *)r   rQ   rR   r   ZCRL_DIST_POINTS_freeZsk_DIST_POINT_numr*   Zsk_DIST_POINT_valuereasonsr   r   Z	CRLissuerr9   r   r   r+   r   ZDistributionPoint)
r   cdpsr5   dist_pointsr7   r   r   Z
crl_issuerr   Zcdpr   r   r   _decode_dist_points  s*    r   )r   r=   r   r   r   r   r   r;   c             C   s<   g }x.t jtD ] \}}| jj||r|j| qW t|S )N)sixZ	iteritems_REASON_BIT_MAPPINGr   r   r+   	frozenset)r   r   Zenum_reasonsZbit_positionreasonr   r   r   r   S  s
    r   c       	      C   s   |j tkr t| |jj}|d fS |jj}| jj|}t }x@t	|D ]4}| jj
||}| j|| jjk |jt| | qDW tj|}d |fS )N)r    _DISTPOINT_TYPE_FULLNAMEr9   r   fullnameZrelativenamer   Zsk_X509_NAME_ENTRY_numr`   r*   Zsk_X509_NAME_ENTRY_valuer   r   r   r,   r%   r   r&   )	r   r   r   ZrnsZrnumr/   r7   Zrnr   r   r   r   r   ]  s    
	
r   c             C   s   t | |}tj|S )N)r   r   ZCRLDistributionPoints)r   r   r   r   r   r   _decode_crl_distribution_pointsv  s    
r   c             C   s   t | |}tj|S )N)r   r   ZFreshestCRL)r   r   r   r   r   r   _decode_freshest_crl{  s    
r   c             C   s4   | j jd|}| j j|| jj}t| |}tj|S )NzASN1_INTEGER *)r   rQ   rR   r   rS   rT   r   ZInhibitAnyPolicy)r   rU   Z
skip_certsr   r   r   _decode_inhibit_any_policy  s    
r   c             C   sn   ddl m} | jjd|}| jj|| jj}g }x8t| jj|D ]$}| jj	||}|j
|| || qBW |S )Nr   )_SignedCertificateTimestampzCryptography_STACK_OF_SCT *)Z)cryptography.hazmat.backends.openssl.x509r   r   rQ   rR   r   ZSCT_LIST_freer*   Z
sk_SCT_numZsk_SCT_valuer+   )r   	asn1_sctsr   Zsctsr7   Zsctr   r   r   _decode_scts  s    r   c             C   s   t jt| |S )N)r   Z)PrecertificateSignedCertificateTimestampsr   )r   r   r   r   r   -_decode_precert_signed_certificate_timestamps  s    r   c             C   s   t jt| |S )N)r   ZSignedCertificateTimestampsr   )r   r   r   r   r   %_decode_signed_certificate_timestamps  s    r   )
r   r   r=   r   r   r   r   r;   	   
   r=   r   r   r   r   r;   r   r   c             C   sb   | j jd|}| j j|| jj}| jj|}ytjt| S  t	k
r\   t
dj|Y nX d S )NzASN1_ENUMERATED *zUnsupported reason code: {})r   rQ   rR   r   ZASN1_ENUMERATED_freeZASN1_ENUMERATED_getr   Z	CRLReason_CRL_ENTRY_REASON_CODE_TO_ENUMra   rG   rH   )r   enumcoder   r   r   _decode_crl_reason  s    r   c             C   s0   | j jd|}| j j|| jj}tjt| |S )NzASN1_GENERALIZEDTIME *)r   rQ   rR   r   ASN1_GENERALIZEDTIME_freer   ZInvalidityDate_parse_asn1_generalized_time)r   Zinv_dategeneralized_timer   r   r   _decode_invalidity_date  s
    r   c             C   s4   | j jd|}| j j|| jj}t| |}tj|S )NzGENERAL_NAMES *)r   rQ   rR   r   r   r9   r   ZCertificateIssuer)r   r4   r   r   r   r   _decode_cert_issuer  s    
r   c                sn    j jd} jj||} j|dk  j|d  j jk  j j| fdd} j j|d |d d  S )Nzunsigned char **r   c                s    j j| d S )Nr   )r   OPENSSL_free)r   )r   r   r   r{     s    z_asn1_to_der.<locals>.<lambda>)r   r   r   Zi2d_ASN1_TYPEr   r   rR   r   )r   Z	asn1_typer   r   r   )r   r   rJ     s    rJ   c             C   s@   | j j|| jj}| j|| jjk | jj|| j j}| j|S )N)r   ZASN1_INTEGER_to_BNr   r   r   rR   ZBN_freeZ
_bn_to_int)r   rU   Zbnr   r   r   rT     s    rT   c             C   s   || j jkrd S t| |S d S )N)r   r   rT   )r   rU   r   r   r   rt     s    rt   c             C   s   | j j|j|jd d  S )N)r   r   r"   rb   )r   rw   r   r   r   r@     s    r@   c             C   s   t | |jdS )Nri   )r@   r   )r   rw   r   r   r   _asn1_string_to_ascii  s    r   c                s~    j jd} jj||}|dkr2tdj|j j|d  j jk  j j	| fdd} j j
|d |d d  jdS )	Nzunsigned char **r   z&Unsupported ASN1 string type. Type: {}r   c                s    j j| d S )Nr   )r   r   )r   )r   r   r   r{     s    z&_asn1_string_to_utf8.<locals>.<lambda>r:   r)   )r   r   r   ZASN1_STRING_to_UTF8rG   rH   r    r   r   rR   r   r   )r   rw   r   r   r   )r   r   r     s    r   c             C   s`   | j || jjk | jj|| jj}|| jjkrDtdjt| || jj|| jj	}t
| |S )Nz1Couldn't parse ASN.1 time as generalizedtime {!r})r   r   r   r   ZASN1_TIME_to_generalizedtimerG   rH   r@   rR   r   r   )r   Z	asn1_timer   r   r   r   _parse_asn1_time  s    r   c             C   s"   t | | jjd|}tjj|dS )NzASN1_STRING *z%Y%m%d%H%M%SZ)r   r   rQ   datetimeZstrptime)r   r   Ztimer   r   r   r   '  s    r   c             C   s0   | j jd|}| j j|| jj}tjt| |S )NzASN1_OCTET_STRING *)r   rQ   rR   r   rv   r   Z	OCSPNoncer@   )r   Znoncer   r   r   _decode_nonce.  s    r   )wZ
__future__r   r   r   r   rC   r   Zcryptographyr   Zcryptography.hazmat._derr   r   r   r	   Zcryptography.x509.extensionsr
   Zcryptography.x509.namer   Zcryptography.x509.oidr   r   r   r   r   r%   r2   r9   r3   rP   rV   rW   objectrX   rp   rn   ru   rx   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   Z_DISTPOINT_TYPE_RELATIVENAMEr   ZReasonFlagsZkey_compromiseZca_compromiseZaffiliation_changedZ
supersededZcessation_of_operationZcertificate_holdZprivilege_withdrawnZaa_compromiser   r   r   r   r   r   r   r   r   ZunspecifiedZremove_from_crlr   Z_CRL_ENTRY_REASON_ENUM_TO_CODEr   r   r   rJ   rT   rt   r@   r   r   r   r   r   ZBASIC_CONSTRAINTSZSUBJECT_KEY_IDENTIFIERZ	KEY_USAGEZSUBJECT_ALTERNATIVE_NAMEZEXTENDED_KEY_USAGEZAUTHORITY_KEY_IDENTIFIERZAUTHORITY_INFORMATION_ACCESSZSUBJECT_INFORMATION_ACCESSZCERTIFICATE_POLICIESZCRL_DISTRIBUTION_POINTSZFRESHEST_CRLZOCSP_NO_CHECKZINHIBIT_ANY_POLICYZISSUER_ALTERNATIVE_NAMEZNAME_CONSTRAINTSZPOLICY_CONSTRAINTSZ_EXTENSION_HANDLERS_BASEZ%PRECERT_SIGNED_CERTIFICATE_TIMESTAMPSZ_EXTENSION_HANDLERS_SCTZ
CRL_REASONZINVALIDITY_DATEZCERTIFICATE_ISSUERZ_REVOKED_EXTENSION_HANDLERSZ
CRL_NUMBERZDELTA_CRL_INDICATORZISSUING_DISTRIBUTION_POINTZ_CRL_EXTENSION_HANDLERSZNONCEZ_OCSP_REQ_EXTENSION_HANDLERSZ"_OCSP_BASICRESP_EXTENSION_HANDLERSZSIGNED_CERTIFICATE_TIMESTAMPSZ'_OCSP_SINGLERESP_EXTENSION_HANDLERS_SCTr   r   r   r   <module>   s   NQ!

-






