a 4êdgßã @sÌddlZddlZzddlZdZWnHeyhZz0ejdkrHe eeƒ¡‚dZeeƒZWYdZ[n dZ[00e  ejdkd¡e  ed¡Gdd„dej ƒƒƒZ e  ed¡Gdd „d ej ƒƒZ ed krÈe ¡dS) éNÚwin32zThis should only run on windowszimport succeededc@seZdZdd„ZdS)ÚTestWhyCryptDidNotImportcCs| dt¡dS)Nz not supported)ÚassertInÚ IMPORT_ERROR©Úself©rú+/usr/local/lib/python3.9/test/test_crypt.pyÚtest_import_failure_messagesz4TestWhyCryptDidNotImport.test_import_failure_messageN)Ú__name__Ú __module__Ú __qualname__r rrrr rsrzcrypt module is requiredc@s€eZdZdd„Zdd„Zdd„Zdd„Ze e oFe j e j vpFe j e j vd ¡d d „ƒZ e e ofe je j vd ¡d d„ƒZdd„ZdS)Ú CryptTestCasecCsRt d¡}t d|¡}| ||¡t dd¡}|durNt d|¡}| ||¡dS)NÚ mypasswordÚab)ÚcryptÚ assertEqual)rÚcrÚcr2rrr Ú test_crypts     zCryptTestCase.test_cryptcCsl| ttjƒd¡tjD]N}t |¡}| t|ƒ|jhd£¡|jr| |j|dt|ƒ|j…¡qdS)Né@>rééééé) rÚlenrZ _saltcharsÚmethodsÚmksaltrÚ salt_charsÚident)rÚmethodÚsaltrrr Ú test_salt#s   zCryptTestCase.test_saltcCsjtjD]^}t d|¡}| t|ƒ|j¡t d|¡}| ||¡t dt |¡¡}| t|ƒ|j¡qdS)NZassword)rrrrZ total_sizer)rr!rrrrr Útest_saltedcrypt+s    zCryptTestCase.test_saltedcryptcCsL| ttjƒdk¡tj d¡r4| tjtjg¡n| tjdtj ¡dS)NrZopenbsdéÿÿÿÿ) Ú assertTruerrrÚsysÚplatformÚ startswithrÚMETHOD_BLOWFISHÚ METHOD_CRYPTrrrr Ú test_methods4s zCryptTestCase.test_methodszrequires support of SHA-2c CsŽtjtjfD]|}dD]r}tj||d}| d||¡| t|ƒ|jdtt|ƒƒ¡t d|¡}|  |¡t d|¡}| ||¡qq dS)N)éèi'i †©Úroundsz $rounds=%d$é r) rÚ METHOD_SHA256Ú METHOD_SHA512rrrrrÚstrr&)rr!r/r"rrrrr Útest_sha2_rounds;sÿ   zCryptTestCase.test_sha2_roundszrequires support of BlowfishcCs‚tddƒD]r}tjtjd|>d}| d||¡| t|ƒtjjddh¡t d|¡}| |¡t d|¡}| ||¡q dS) Nrr0rr.z$%02d$rrr) Úrangerrr*rrrr&r)rZ log_roundsr"rrrrr Útest_blowfish_roundsNs   z"CryptTestCase.test_blowfish_roundsc CsdtjtjtjfD]Â}| t¡tj|ddWdƒn1sB0Y| t¡tj|ddWdƒn1sz0Yddddd>fD]<}| t¡tj||dWdƒq”1sÆ0Yq”q| t¡ tjtjddWdƒn1s0Ytjtj fD]B}|  td ¡tj|d dWdƒn1sR0YqdS) NZ4096r.g°@rrr%içr-Úsupporti) rr1r2r*Z assertRaisesÚ TypeErrorrÚ ValueErrorr+Z METHOD_MD5ZassertRaisesRegex)rr!r/rrr Útest_invalid_rounds[sÿ , , 0 0z!CryptTestCase.test_invalid_roundsN)r r r rr#r$r,ÚunittestÚ skipUnlessrr1rr2r4r*r6r:rrrr rs  û ÿ rÚ__main__)r'r;rrÚ ImportErrorÚexr(ZSkipTestr3r<ZskipIfZTestCaserrr Úmainrrrr Ús    T