3Tf`ddlmZddlZddlZddlmZddlmZGddejZ GddejZ Gd d ejZ Gd d ejZ Gd dejZ GddejZGddeZGddeZGddZGddeZy)) annotationsN)utils) HashAlgorithmceZdZdZdZy)PBESz%PBESv1 using SHA1 and 3-Key TripleDESz)PBESv2 using SHA256 PBKDF2 and AES256 CBCN)__name__ __module__ __qualname__PBESv1SHA1And3KeyTripleDESCBCPBESv2SHA256AndAES256CBCO/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/_serialization.pyrrs$K!Jrrc$eZdZdZdZdZdZdZdZy)EncodingPEMDEROpenSSHRawz ANSI X9.62zS/MIMEN) rr r rrrrX962SMIMEr rrrrs C CG C D Errc(eZdZdZdZdZdZdZddZy) PrivateFormatPKCS8TraditionalOpenSSLrrPKCS12cr|tjtjfvr tdt |S)NzUencryption_builder only supported with PrivateFormat.OpenSSH and PrivateFormat.PKCS12)rrr ValueError!KeySerializationEncryptionBuilder)selfs rencryption_builderz PrivateFormat.encryption_builder&s:  --}/C/CD D, 166rN)returnr) rr r rrrrrr!r rrrrs! E- CG F7rrc$eZdZdZdZdZdZdZdZy) PublicFormatz&X.509 subjectPublicKeyInfo with PKCS#1z Raw PKCS#1rrzX9.62 Compressed PointzX9.62 Uncompressed PointN) rr r SubjectPublicKeyInfoPKCS1rrCompressedPointUncompressedPointr rrr$r$/s"C EG C.O2rr$ceZdZdZy)ParameterFormatPKCS3N)rr r r+r rrr*r*8s Err*c eZdZy)KeySerializationEncryptionNrr r r rrr-r-<rr-) metaclassceZdZddZy)BestAvailableEncryptioncdt|trt|dk(r td||_y)Nr!Password must be 1 or more bytes.) isinstancebyteslenrpasswordr r8s r__init__z BestAvailableEncryption.__init__As*(E*c(mq.@@A A  rN)r8r6rr r r:r rrr2r2@s!rr2c eZdZy) NoEncryptionNr.r rrr=r=Hr/rr=c`eZdZdddd ddZd dZ d dZ d dZd dZy) rN _kdf_rounds _hmac_hash_key_cert_algorithmc<||_||_||_||_yN)_formatr@rArB)r formatr@rArBs rr:z*KeySerializationEncryptionBuilder.__init__Ms" &$#6 rc|j tdt|ts t d|dkr tdt |j ||j|jS)Nzkdf_rounds already setzkdf_rounds must be an integerz%kdf_rounds must be a positive integerr?) r@rr5int TypeErrorrrErArB)r roundss r kdf_roundsz,KeySerializationEncryptionBuilder.kdf_rounds[sj    '56 6&#&;< < A:DE E0 LL $ 8 8   rc|jtjur td|j t dt |j|j||jS)Nz2hmac_hash only supported with PrivateFormat.PKCS12zhmac_hash already setr?) rErrrJrArrr@rBr algorithms r hmac_hashz+KeySerializationEncryptionBuilder.hmac_hashlsg <<}33 3D  ?? &45 50 LL(( $ 8 8   rc|jtjur td|j t dt |j|j|j|S)Nz;key_cert_algorithm only supported with PrivateFormat.PKCS12zkey_cert_algorithm already setr?) rErrrJrBrrr@rArNs rkey_cert_algorithmz4KeySerializationEncryptionBuilder.key_cert_algorithm}si <<}33 3'   # # /=> >0 LL(( )   rct|trt|dk(r tdt |j ||j |j|jS)Nrr4)rLrPrR) r5r6r7r_KeySerializationEncryptionrEr@rArBr9s rbuildz'KeySerializationEncryptionBuilder.buildsS(E*c(mq.@@A A* LL ''oo#77   r) rFrr@typing.Optional[int]rAtyping.Optional[HashAlgorithm]rBtyping.Optional[PBES]r"None)rKrIr"r)rOrr"r)rOrr"r)r8r6r"r-)rr r r:rLrPrRrUr rrrrLsv -15959 7 7* 7 3 7 3 7  7 " & * "  * "  rrc(eZdZ ddZy)rTcJ||_||_||_||_||_yrD)rEr8r@rArB)r rFr8rLrPrRs rr:z$_KeySerializationEncryption.__init__s)   %##5 rN) rFrr8r6rLrVrPrWrRrXr;r rrrTrTs7666 ) 6 2 626rrT) __future__rabctyping cryptographyr%cryptography.hazmat.primitives.hashesrEnumrrrr$r*ABCMetar-r2r=rrTr rrrcs # ? K5::K uzz 7EJJ 7 35::3ejj 3;; !8! - L L ^6"<6r