
     hK                        d dl Z d dlmZ d dlmZ d dlmZ d dlmZm	Z	m
Z
mZmZ d dlmZ g dZe j        ej        ej        e	j        ej        e
j        f         Z G d d	          Z G d
 d          Z	 ddede j        e         de j        de j        e j        e         e j        ej                 e j        ej                 f         fdZ	 ddede j        e         de j        defdZ e j        ej        ef         Z!de j        e         de j        e         de j        ej                 de j        e j"        e!                  dej#        defdZ$dS )    N)x509)serialization)PBES)dsaeced448ed25519rsa)PrivateKeyTypes)r   PKCS12PrivateKeyTypesPKCS12CertificatePKCS12KeyAndCertificatesload_key_and_certificatesload_pkcs12serialize_key_and_certificatesc                       e Zd Zdej        dej        e         fdZe	dej        e         fd            Z
e	dej        fd            ZdedefdZdefd	Zdefd
ZdS )r   certfriendly_namec                     t          |t          j                  st          d          |$t          |t                    st          d          || _        || _        d S )Nz!Expecting x509.Certificate objectz#friendly_name must be bytes or None)
isinstancer   Certificate	TypeErrorbytes_cert_friendly_name)selfr   r   s      o/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/cryptography/hazmat/primitives/serialization/pkcs12.py__init__zPKCS12Certificate.__init__'   sb    
 $ 011 	A?@@@$Zu-M-M$ABBB
+    returnc                     | j         S N)r   r   s    r   r   zPKCS12Certificate.friendly_name3   s    ""r   c                     | j         S r"   r   r#   s    r   certificatezPKCS12Certificate.certificate7   
    zr   otherc                 z    t          |t                    st          S | j        |j        k    o| j        |j        k    S r"   )r   r   NotImplementedr&   r   r   r(   s     r   __eq__zPKCS12Certificate.__eq__;   sC    %!233 	"!!  11 :"e&99	
r   c                 8    t          | j        | j        f          S r"   )hashr&   r   r#   s    r   __hash__zPKCS12Certificate.__hash__D   s    T%t'9:;;;r   c                 B    d                     | j        | j                  S )Nz+<PKCS12Certificate({}, friendly_name={!r})>)formatr&   r   r#   s    r   __repr__zPKCS12Certificate.__repr__G   s%    <CCd0
 
 	
r   N)__name__
__module____qualname__r   r   typingOptionalr   r   propertyr   r&   objectboolr,   intr/   strr2    r   r   r   r   &   s        
,
, u-
, 
, 
, 
, #vu5 # # # X# T-    X
F 
t 
 
 
 
<# < < < <
# 
 
 
 
 
 
r   r   c                   "   e Zd Zdej        e         dej        e         dej        e         fdZe	dej        e         fd            Z
e	dej        e         fd            Ze	dej        e         fd            Zd	edefd
ZdefdZdefdZdS )r   keyr   additional_certsc                 |   |Vt          |t          j        t          j        t
          j        t          j        t          j
        f          st          d          |$t          |t                    st          d          t          d |D                       st          d          || _        || _        || _        d S )NLKey must be RSA, DSA, EllipticCurve, ED25519, or ED448 private key, or None.z/cert must be a PKCS12Certificate object or Nonec              3   @   K   | ]}t          |t                    V  d S r"   )r   r   ).0add_certs     r   	<genexpr>z4PKCS12KeyAndCertificates.__init__.<locals>.<genexpr>d   sA       
 
 x!233
 
 
 
 
 
r   z@all values in additional_certs must be PKCS12Certificate objects)r   r
   RSAPrivateKeyr   DSAPrivateKeyr   EllipticCurvePrivateKeyr	   Ed25519PrivateKeyr   Ed448PrivateKeyr   r   all_keyr   _additional_certs)r   r?   r   r@   s       r   r   z!PKCS12KeyAndCertificates.__init__N   s     ?:!!*)%	$
 	$
? )   Jt5F$G$GMNNN 
 
,
 
 
 
 
 	    	
!1r   r    c                     | j         S r"   )rM   r#   s    r   r?   zPKCS12KeyAndCertificates.keyp   s
    yr   c                     | j         S r"   r%   r#   s    r   r   zPKCS12KeyAndCertificates.certt   r'   r   c                     | j         S r"   )rN   r#   s    r   r@   z)PKCS12KeyAndCertificates.additional_certsx   s    %%r   r(   c                     t          |t                    st          S | j        |j        k    o| j        |j        k    o| j        |j        k    S r"   )r   r   r*   r?   r   r@   r+   s     r   r,   zPKCS12KeyAndCertificates.__eq__|   sT    %!9:: 	"!! H	! @	UZ'@%)??	
r   c                 ^    t          | j        | j        t          | j                  f          S r"   )r.   r?   r   tupler@   r#   s    r   r/   z!PKCS12KeyAndCertificates.__hash__   s&    TXty%0E*F*FGHHHr   c                 R    d}|                     | j        | j        | j                  S )Nz@<PKCS12KeyAndCertificates(key={}, cert={}, additional_certs={})>)r1   r?   r   r@   )r   fmts     r   r2   z!PKCS12KeyAndCertificates.__repr__   s)    N 	 zz$(DIt/DEEEr   N)r3   r4   r5   r6   r7   r   r   Listr   r8   r?   r   r@   r9   r:   r,   r;   r/   r<   r2   r=   r   r   r   r   M   sL        2__- 2 o/0 2 !+&78	 2  2  2  2D V__5    X fo&78    X &&+.?"@ & & & X&
F 
t 
 
 
 
I# I I I IF# F F F F F Fr   r   datapasswordbackendr    c                 :    ddl m} |                    | |          S Nr   rZ   ),cryptography.hazmat.backends.openssl.backendrZ   %load_key_and_certificates_from_pkcs12rX   rY   rZ   ossls       r   r   r      s-     MLLLLL55dHEEEr   c                 :    ddl m} |                    | |          S r\   )r^   rZ   r   r`   s       r   r   r      s-    
 MLLLLLD(+++r   namer?   r   casencryption_algorithmc                 4   |Vt          |t          j        t          j        t
          j        t          j        t          j
        f          st          d          |)t          |t          j                  st          d          |7t          |          }t          d |D                       st          d          t          |t           j                  st          d          |||st%          d          ddlm} |                    | ||||          S )	NrB   z"cert must be a certificate or Nonec              3   X   K   | ]%}t          |t          j        t          f          V  &d S r"   )r   r   r   r   )rD   vals     r   rF   z1serialize_key_and_certificates.<locals>.<genexpr>   sS       	
 	
  $% 	
 	
 	
 	
 	
 	
r   z&all values in cas must be certificateszFKey encryption algorithm must be a KeySerializationEncryption instancez1You must supply at least one of key, cert, or casr   r]   )r   r
   rG   r   rH   r   rI   r	   rJ   r   rK   r   r   r   listrL   r   KeySerializationEncryption
ValueErrorr^   rZ   (serialize_key_and_certificates_to_pkcs12)rc   r?   r   rd   re   rZ   s         r   r   r      sX    z&%!	
	  	  %
 
 	
 
41A B B<===
3ii 	
 	
 	
 	
 	
 	
 	
 
	F DEEEmF  
 2
 
 	

 {t|C|LMMMDDDDDD;;c42  r   r"   )%r6   cryptographyr   cryptography.hazmat.primitivesr   -cryptography.hazmat.primitives._serializationr   )cryptography.hazmat.primitives.asymmetricr   r   r   r	   r
   /cryptography.hazmat.primitives.asymmetric.typesr   __all__UnionrG   rH   rI   rJ   rK   r   r   r   r   r7   AnyTupler   rW   r   r   _PKCS12CATypesIterablerj   r   r=   r   r   <module>rx      s  
        8 8 8 8 8 8 F F F F F F              L K K K K K   		 $
 $
 $
 $
 $
 $
 $
 $
N@F @F @F @F @F @F @F @FL F F
Foe$F ZF \
OO$
OD$%
K !#	F F F F" , ,
,oe$, Z, 	, , , , 5
/%
 5	.	/5 /$*
+5 
8	9	5
 (B5 5 5 5 5 5 5r   