3TfoddlmZddlZddlmZddlmZddlmZddl m Z m Z m Z m Z mZddlmZgdZej$ej&e j(e j*e j,e j.fZGd d ZGd d Z d dd Z d ddZej$ej:efZ ddZy)) annotationsN)x509) serialization)PBES)dsaeced448ed25519rsa)PrivateKeyTypes)rPKCS12PrivateKeyTypesPKCS12CertificatePKCS12KeyAndCertificatesload_key_and_certificates load_pkcs12serialize_key_and_certificatescXeZdZ ddZed dZed dZd dZd dZd dZ y)rct|tjs td|t|ts td||_||_y)Nz!Expecting x509.Certificate objectz#friendly_name must be bytes or None) isinstancer Certificate TypeErrorbytes_cert_friendly_name)selfcert friendly_names U/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/serialization/pkcs12.py__init__zPKCS12Certificate.__init__)sJ $ 0 01?@ @  $Z u-MAB B +c|jSN)rrs rrzPKCS12Certificate.friendly_name5s"""r c|jSr"rr#s r certificatezPKCS12Certificate.certificate9 zzr ct|tstS|j|jk(xr|j|jk(Sr")rrNotImplementedr&rrothers r__eq__zPKCS12Certificate.__eq__=sG%!23! !    1 1 1 :""e&9&99 r cDt|j|jfSr")hashr&rr#s r__hash__zPKCS12Certificate.__hash__FsT%%t'9'9:;;r cNdj|j|jS)Nz+)formatr&rr#s r__repr__zPKCS12Certificate.__repr__Is&<CC   d00  r N)rx509.Certificatertyping.Optional[bytes])returnr4)r5r3r+objectr5boolr5intr5str) __name__ __module__ __qualname__rpropertyrr&r,r/r2r rrr(sP , ,. ,## < r rcneZdZ d dZed dZed dZed dZd dZddZ ddZ y)rcj|bt|tjtjt j tjtjfs td|t|ts tdtd|Ds td||_||_||_y)NLKey must be RSA, DSA, EllipticCurve, ED25519, or ED448 private key, or None.z/cert must be a PKCS12Certificate object or Nonec3<K|]}t|tywr")rr).0add_certs r z4PKCS12KeyAndCertificates.__init__..fs   x!2 3 sz@all values in additional_certs must be PKCS12Certificate objects)rr RSAPrivateKeyr DSAPrivateKeyrEllipticCurvePrivateKeyr Ed25519PrivateKeyr Ed448PrivateKeyrrall_keyr_additional_certs)rkeyradditional_certss rrz!PKCS12KeyAndCertificates.__init__Ps ?: !!!!**))%%   $ )   Jt5F$GMN N ,     !1r c|jSr")rOr#s rrQzPKCS12KeyAndCertificates.keyrs yyr c|jSr"r%r#s rrzPKCS12KeyAndCertificates.certvr'r c|jSr")rPr#s rrRz)PKCS12KeyAndCertificates.additional_certszs%%%r ct|tstS|j|jk(xr4|j|jk(xr|j |j k(Sr")rrr)rQrrRr*s rr,zPKCS12KeyAndCertificates.__eq__~sZ%!9:! ! HH ! @ UZZ' @%%)?)?? r clt|j|jt|jfSr")r.rQrtuplerRr#s rr/z!PKCS12KeyAndCertificates.__hash__s'TXXtyy%0E0E*FGHHr chd}|j|j|j|jS)Nz@)r1rQrrR)rfmts rr2z!PKCS12KeyAndCertificates.__repr__s- N zz$((DIIt/D/DEEr N)rQ typing.Optional[PrivateKeyTypes]r"typing.Optional[PKCS12Certificate]rRtyping.List[PKCS12Certificate])r5r[)r5r\)r5r]r6r9r;) r=r>r?rr@rQrrRr,r/r2rAr rrrOsq 2 - 21 29 2D&& IFr rc2ddlm}|j||SNrbackend),cryptography.hazmat.backends.openssl.backendra%load_key_and_certificates_from_pkcs12datapasswordraossls rrrsM  5 5dH EEr c2ddlm}|j||Sr_)rbrarrds rrrs M   D( ++r c|bt|tjtjt j tjtjfs td|%t|tjs td|(t|}td|Ds tdt|t j"s td|| |s t%dddlm}|j+|||||S) NrDz"cert must be a certificate or Nonec3\K|]$}t|tjtf&ywr")rrrr)rFvals rrHz1serialize_key_and_certificates..s3   $$%   s*,z&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 rIrrJrrKr rLr rMrrrlistrNrKeySerializationEncryption ValueErrorrbra(serialize_key_and_certificates_to_pkcs12)namerQrcasencryption_algorithmras rrrs z        & &  % %  ! !    %    41A1A B<== 3i     DE E mFF  2   {t|CLMMD  ; ; c42 r r")rerrfr4ra typing.Anyr5zptyping.Tuple[typing.Optional[PrivateKeyTypes], typing.Optional[x509.Certificate], typing.List[x509.Certificate]])rerrfr4rarsr5r) rpr4rQz&typing.Optional[PKCS12PrivateKeyTypes]rz!typing.Optional[x509.Certificate]rqz0typing.Optional[typing.Iterable[_PKCS12CATypes]]rrz(serialization.KeySerializationEncryptionr5r) __future__rtyping cryptographyrcryptography.hazmat.primitivesr-cryptography.hazmat.primitives._serializationr)cryptography.hazmat.primitives.asymmetricrrr r r /cryptography.hazmat.primitives.asymmetric.typesr __all__UnionrIrJrKrLrMr rrrrr_PKCS12CATypesrrAr rr~sJ # 8FL     $ $ N@F@FL F  F$ F F F", ,$,, , 5 5 /5 ,5 : 5 C 5  5r