o
    vh                     @   s  d Z ddlmZmZmZmZ ddlmZ ddlm	Z	m
Z
 ddlmZmZmZmZmZmZmZmZmZ ddlmZmZ ddlmZmZ G d	d
 d
eZG dd deZG dd deZG dd deZG dd deZG dd deZ G dd deZ!G dd deZ"G dd deZ#G dd deZ$G dd deZ%G dd  d eZ&G d!d" d"eZ'G d#d$ d$eZ(G d%d& d&eZ)G d'd( d(eZ*G d)d* d*eZ+G d+d, d,eZ,e,e+_-d-S ).z
ASN.1 type classes for PKCS#12 files. Exports the following items:

 - CertBag()
 - CrlBag()
 - Pfx()
 - SafeBag()
 - SecretBag()

Other type classes are defined that help compose the types listed above.
    )unicode_literalsdivisionabsolute_importprint_function   )
DigestInfo)ContentInfo
SignedData)	Any	BMPStringIntegerObjectIdentifierOctetStringParsableOctetStringSequence
SequenceOfSetOf)PrivateKeyInfoEncryptedPrivateKeyInfo)CertificateKeyPurposeIdc                   @   s(   e Zd ZdefdefdeddifgZdS )MacDatamacmac_salt
iterationsdefaultr   N)__name__
__module____qualname__r   r   r   _fields r    r    O/var/www/html/hyperkenya/venv/lib/python3.10/site-packages/asn1crypto/pkcs12.pyr   $   s
    r   c                   @   s   e Zd ZddiZdS )Version   v3Nr   r   r   _mapr    r    r    r!   r"   ,   s    r"   c                   @   s   e Zd ZdddddZdS )AttributeTypefriendly_namelocal_key_idmicrosoft_local_machine_keysettrusted_key_usage)z1.2.840.113549.1.9.20z1.2.840.113549.1.9.21z1.3.6.1.4.1.311.17.1z2.16.840.1.113894.746875.1.1Nr%   r    r    r    r!   r'   2   s    
r'   c                   @      e Zd ZeZdS )SetOfAnyN)r   r   r   r
   _child_specr    r    r    r!   r-   ?       r-   c                   @   r,   )SetOfBMPStringN)r   r   r   r   r.   r    r    r    r!   r0   C   r/   r0   c                   @   r,   )SetOfOctetStringN)r   r   r   r   r.   r    r    r    r!   r1   G   r/   r1   c                   @   r,   )SetOfKeyPurposeIdN)r   r   r   r   r.   r    r    r    r!   r2   K   r/   r2   c                   @   s6   e Zd ZdefdgZeeeedZdd Z	de	iZ
dS )	Attributetype)valuesN)r(   r)   microsoft_csp_namer+   c                 C   s   | j | d jtS )Nr4   )
_oid_specsgetnativer-   )selfr    r    r!   _values_spec\   s   zAttribute._values_specr5   N)r   r   r   r'   r   r0   r1   r2   r7   r;   _spec_callbacksr    r    r    r!   r3   O   s    r3   c                   @   r,   )
AttributesN)r   r   r   r3   r.   r    r    r    r!   r=   d   r/   r=   c                   @   s8   e Zd ZdefdefdeddifgZdZedd Z	dS )	Pfxversion	auth_safemac_dataoptionalTNc                 C   s@   | j d u r| d d }t|tr|d d }t|j| _ | j S )Nr@   contentcontent_info)_authenticated_safe
isinstancer	   AuthenticatedSafeloadr9   )r:   rC   r    r    r!   authenticated_safeq   s   

zPfx.authenticated_safe)
r   r   r   r"   r   r   r   rE   propertyrI   r    r    r    r!   r>   h   s    r>   c                   @   r,   )rG   N)r   r   r   r   r.   r    r    r    r!   rG   {   r/   rG   c                   @   s   e Zd ZdddddddZdS )	BagIdkey_bagpkcs8_shrouded_key_bagcert_bagcrl_bag
secret_bagsafe_contents)z1.2.840.113549.1.12.10.1.1z1.2.840.113549.1.12.10.1.2z1.2.840.113549.1.12.10.1.3z1.2.840.113549.1.12.10.1.4z1.2.840.113549.1.12.10.1.5z1.2.840.113549.1.12.10.1.6Nr%   r    r    r    r!   rK      s    
rK   c                   @   s   e Zd ZdddZdS )CertIdx509sdsi)z1.2.840.113549.1.9.22.1z1.2.840.113549.1.9.22.2Nr%   r    r    r    r!   rR      s    
rR   c                   @   s.   e Zd ZdefdeddifgZdZdeiZdS )CertBagcert_id
cert_valueexplicitr   )rV   rW   rS   N)	r   r   r   rR   r   r   	_oid_pairr   r7   r    r    r    r!   rU      s    rU   c                   @   "   e Zd ZdefdeddifgZdS )CrlBagcrl_id	crl_valuerX   r   Nr   r   r   r   r   r   r    r    r    r!   r[          r[   c                   @   rZ   )	SecretBagsecret_type_idsecret_valuerX   r   Nr^   r    r    r    r!   r`      r_   r`   c                   @   s   e Zd ZdS )SafeContentsN)r   r   r   r    r    r    r!   rc      s    rc   c                   @   sD   e Zd ZdefdeddifdeddifgZdZee	e
eeed	Zd
S )SafeBagbag_id	bag_valuerX   r   bag_attributesrB   T)re   rf   )rL   rM   rN   rO   rP   rQ   N)r   r   r   rK   r
   r=   r   rY   r   r   rU   r[   r`   rc   r7   r    r    r    r!   rd      s    
rd   N).__doc__
__future__r   r   r   r   algosr   cmsr   r	   corer
   r   r   r   r   r   r   r   r   keysr   r   rS   r   r   r   r"   r'   r-   r0   r1   r2   r3   r=   r>   rG   rK   rR   rU   r[   r`   rc   rd   r.   r    r    r    r!   <module>   s4   ,
