Viewing File: /usr/lib/python2.7/site-packages/passlib/tests/test_crypto_builtin_md4.pyc

ó
ö
5Xc@ sêdZddlmZmZddlmZddlZddlmZm	Z	m
Z
ddlmZddl
mZmZdd	d
gZdefd„ƒYZd„Zeeƒd
ƒd
efd„ƒYƒZd	efd„ƒYZdS(s2passlib.tests -- unittests for passlib.crypto._md4iÿÿÿÿ(twith_statementtdivision(thexlifyN(t
bascii_to_strtPY3tu(tlookup_hash(tTestCaset
skipUnlesst_Common_MD4_TesttMD4_Builtin_TesttMD4_SSL_TestcB s_eZdZdddddddgZd„Zd„Zd„Zd„Zd„Zd„Z	RS(s$common code for testing md4 backendstt 31d6cfe0d16ae931b73c59d7e0c089c0tat bde52cb31de33e46245e05fbdbd6fb24tabct a448017aaf21d8525fc10ae87aa6729dsmessage digestt d9130a8164549fe818874806e1c7014btabcdefghijklmnopqrstuvwxyzt d79e1c308aa5bbcdeea8ed63df412da9t>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789t 043f8582f241db351ce627e153e7f0e4tP12345678901234567890123456789012345678901234567890123456789012345678901234567890t e33b4ddc9c38f2199c3e7b164fcc0536cC s
tdƒjS(sd
        get md4 constructor --
        overridden by subclasses to use alternate backends.
        tmd4(Rtconst(tself((sI/usr/lib/python2.7/site-packages/passlib/tests/test_crypto_builtin_md4.pyt
get_md4_const'scC sL|jƒƒ}|j|jdƒ|j|jdƒ|j|jdƒdS(sinformational attributesRii@N(RtassertEqualtnametdigest_sizet
block_size(Rth((sI/usr/lib/python2.7/site-packages/passlib/tests/test_crypto_builtin_md4.pyt
test_attrs.scC sî|jƒ}|dƒ}|j|jƒdƒ|jdƒ|j|jƒdƒ|jdƒ|j|jƒdƒtr¸|ƒ}|jt|jtdƒƒ|j|jƒdƒn2|ƒ}|jtdƒƒ|j|jƒdƒdS(supdate() methodRR
RRtbcdefghijklmnopqrstuvwxyzRN(RRt	hexdigesttupdateRtassertRaisest	TypeErrorR(RRR!((sI/usr/lib/python2.7/site-packages/passlib/tests/test_crypto_builtin_md4.pyttest_md4_update5s

		cC sL|jƒ}x9|jD].\}}||ƒjƒ}|j||ƒqWdS(shexdigest() methodN(RtvectorsR$R(RRtinputthextout((sI/usr/lib/python2.7/site-packages/passlib/tests/test_crypto_builtin_md4.pyttest_md4_hexdigestLscC sX|jƒ}xE|jD]:\}}tt||ƒjƒƒƒ}|j||ƒqWdS(sdigest() methodN(RR)RRtdigestR(RRR*R+R,((sI/usr/lib/python2.7/site-packages/passlib/tests/test_crypto_builtin_md4.pyttest_md4_digestSscC sn|jƒ}|dƒ}|jƒ}|jdƒ|j|jƒdƒ|jdƒ|j|jƒdƒdS(s
copy() methodRtdeft 804e7f1c2586e50b49ac65db5b645131tghit c5225580bfe176f6deeee33dee98732cN(RtcopyR%RR$(RRR!th2((sI/usr/lib/python2.7/site-packages/passlib/tests/test_crypto_builtin_md4.pyt
test_md4_copyZs

(Rs 31d6cfe0d16ae931b73c59d7e0c089c0(Rs bde52cb31de33e46245e05fbdbd6fb24(sabcR(smessage digestR(Rs d79e1c308aa5bbcdeea8ed63df412da9(RR(RR(
t__name__t
__module__t__doc__R)RR"R(R-R/R6(((sI/usr/lib/python2.7/site-packages/passlib/tests/test_crypto_builtin_md4.pyR	s						cC s.ytjdƒtSWntk
r)tSXdS(s1
    check if hashlib natively supports md4.
    RN(thashlibtnewtTruet
ValueErrortFalse(((sI/usr/lib/python2.7/site-packages/passlib/tests/test_crypto_builtin_md4.pythas_native_md4ks


shashlib lacks ssl/md4 supportcB seZdZd„ZRS(shashlib.new('md4')cC s0tt|ƒjƒ|j|jƒjdƒdS(NR:(tsuperRtsetUpRRR8(R((sI/usr/lib/python2.7/site-packages/passlib/tests/test_crypto_builtin_md4.pyRA~s(R7R8tdescriptionPrefixRA(((sI/usr/lib/python2.7/site-packages/passlib/tests/test_crypto_builtin_md4.pyRwscB seZdZd„ZRS(spasslib.crypto._md4.md4()c stt|ƒjƒtƒrdtj‰‡fd†}|jtd|ƒtjƒ|j	tjƒn|j
|jƒjdƒdS(Nc s(|dkrtdƒ‚nˆ||ŒS(NRsmd4 disabled for testing(R=(Rtargs(torig(sI/usr/lib/python2.7/site-packages/passlib/tests/test_crypto_builtin_md4.pytwrappersR;spasslib.crypto._md4(
R@R
RAR?R:R;t	patchAttrRtclear_cachet
addCleanupRRR8(RRE((RDsI/usr/lib/python2.7/site-packages/passlib/tests/test_crypto_builtin_md4.pyRAˆs		
(R7R8RBRA(((sI/usr/lib/python2.7/site-packages/passlib/tests/test_crypto_builtin_md4.pyR
…s(R9t
__future__RRtbinasciiRR:tpasslib.utils.compatRRRtpasslib.crypto.digestRtpasslib.tests.utilsRRt__all__R	R?RR
(((sI/usr/lib/python2.7/site-packages/passlib/tests/test_crypto_builtin_md4.pyt<module>s	S	
Back to Directory File Manager