pgE ddlZddlmZddlmZddlmZddlmZm Z m Z m Z m Z ddl mZgdZeje jeje je je jfZGdd ZGd d Z dd ed ejedejdejejeejejejejffdZ dd ed ejedejdefdZ ejejefZ!dejedejedejejdejej"e!dej#def dZ$dS)N)x509) serialization)PBES)dsaeced25519ed448rsa)PRIVATE_KEY_TYPES)rPKCS12CertificatePKCS12KeyAndCertificatesload_key_and_certificates load_pkcs12serialize_key_and_certificatesceZdZdejdejefdZe dejefdZ e dejfdZ de de fdZdefd Zdefd Zd S) r cert friendly_namect|tjstd|$t|tstd||_||_dS)Nz!Expecting x509.Certificate objectz#friendly_name must be bytes or None) isinstancer Certificate TypeErrorbytes_cert_friendly_name)selfrrs U/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/pkcs12.py__init__zPKCS12Certificate.__init__(sb $ 011 A?@@ @  $Z u-M-M $ABB B +returnc|jSN)rrs rrzPKCS12Certificate.friendly_name4s ""rc|jSr!rr"s r certificatezPKCS12Certificate.certificate8 zrotherczt|tstS|j|jko|j|jkSr!)rr NotImplementedr%rrr's r__eq__zPKCS12Certificate.__eq__<sC%!233 "! !   1 1 :"e&99 rc8t|j|jfSr!)hashr%rr"s r__hash__zPKCS12Certificate.__hash__EsT%t'9:;;;rcBd|j|jS)Nz+)formatr%rr"s r__repr__zPKCS12Certificate.__repr__Hs%<CC  d0   rN)__name__ __module__ __qualname__rrtypingOptionalrrpropertyrr%objectboolr+intr.strr1rrr r 's , ,u- , , , ,#vu5###X#T-X F t    <#<<<< #      rr c"eZdZdejedejedejefdZe dejefdZ e dejefdZ e dejefdZ d e defd Zdefd Zdefd Zd S)r keyradditional_certsc||Vt|tjtjt jtjtj fstd|$t|tstdtd|Dstd||_||_||_dS)NLKey must be RSA, DSA, EllipticCurve, ED25519, or ED448 private key, or None.z/cert must be a PKCS12Certificate object or Nonec3@K|]}t|tVdSr!)rr ).0add_certs r z4PKCS12KeyAndCertificates.__init__..esA   x!2 3 3      rz@all values in additional_certs must be PKCS12Certificate objects)rr RSAPrivateKeyr DSAPrivateKeyrEllipticCurvePrivateKeyrEd25519PrivateKeyr Ed448PrivateKeyrr all_keyr_additional_certs)rr>rr?s rrz!PKCS12KeyAndCertificates.__init__Os ?: !!*)%   $ $ ?)   Jt5F$G$G MNN N  ,         !1rrc|jSr!)rLr"s rr>zPKCS12KeyAndCertificates.keyqs yrc|jSr!r$r"s rrzPKCS12KeyAndCertificates.certur&rc|jSr!)rMr"s rr?z)PKCS12KeyAndCertificates.additional_certsys %%rr'ct|tstS|j|jko|j|jko|j|jkSr!)rr r)r>rr?r*s rr+zPKCS12KeyAndCertificates.__eq__}sT%!9:: "! ! H ! @ UZ' @%)?? rc^t|j|jt|jfSr!)r-r>rtupler?r"s rr.z!PKCS12KeyAndCertificates.__hash__s&TXty%0E*F*FGHHHrcRd}||j|j|jS)Nz@)r0r>rr?)rfmts rr1z!PKCS12KeyAndCertificates.__repr__s) N zz$(DIt/DEEErN)r2r3r4r5r6r r Listrr7r>rr?r8r9r+r:r.r;r1r<rrr r NsN 2 _. / 2o/0 2!+&78 2 2 2 2DV_%67Xfo&78X&&+.?"@&&&X& F t    I#IIIIF#FFFFFFrr datapasswordbackendrc:ddlm}|||SNrrY),cryptography.hazmat.backends.openssl.backendrY%load_key_and_certificates_from_pkcs12rWrXrYossls rrrs-MLLLLL  5 5dH E EErc:ddlm}|||Sr[)r]rYrr_s rrrs- MLLLLL   D( + ++rnamer>rcasencryption_algorithmc4|Vt|tjtjt jtjtj fstd|)t|tj std|7t|}td|Dstdt|t jstd|||st%dddlm}||||||S) NrAz"cert must be a certificate or Nonec3XK|]%}t|tjtfV&dSr!)rrrr )rCvals rrEz1serialize_key_and_certificates..sS    $%         rz&all values in cas must be certificateszFKey encryption algorithm must be a KeySerializationEncryption instancez1You must supply at least one of key, cert, or casrr\)rr rFrrGrrHrrIr rJrrrlistrKrKeySerializationEncryption ValueErrorr]rY(serialize_key_and_certificates_to_pkcs12)rbr>rrcrdrYs rrrsX z      &  %  !     %     41A B B<=== 3ii         FDEE E mF    2    {t|C|LMMMDDDDDD  ; ; c42  rr!)%r5 cryptographyrcryptography.hazmat.primitivesr-cryptography.hazmat.primitives._serializationr)cryptography.hazmat.primitives.asymmetricrrrr r /cryptography.hazmat.primitives.asymmetric.typesr __all__UnionrFrGrHrIrJ_ALLOWED_PKCS12_TYPESr r rr6AnyTuplerrVrr_PKCS12_CAS_TYPESIterablerirr<rrrxs  888888FFFFFF       $ $ $ $ $ $ $ $ N@F@F@F@F@F@F@F@FL F F  Foe$ FZ F \ O%& OD$% K !# F F F F",, ,oe$,Z, ,,,,L 5 /% 5 . /5 /$* +5 ):; < 5 (B 5  555555r