ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ Bd\Rc@sdZdZdddgZddlTddlmZddljjZeZ defd YZ dd Z e j Z e jZdS( sMD4 cryptographic hash algorithm. MD4 is specified in RFC1320_ and produces the 128 bit digest of a message. >>> from Crypto.Hash import MD4 >>> >>> h = MD4.new() >>> h.update(b'Hello') >>> print h.hexdigest() MD4 stand for Message Digest version 4, and it was invented by Rivest in 1990. This algorithm is insecure. Do not use it for new designs. .. _RFC1320: http://tools.ietf.org/html/rfc1320 s$Id$tnewt digest_sizetMD4Hashi(t*(tHashAlgoNcBs>eZdZedZdZdZddZddZ RS(sIClass that implements an MD4 hash :undocumented: block_size s *H ii@cCstj|t|dS(N(Rt__init__t hashFactory(tselftdata((sB/opt/alt/python27/lib64/python2.7/site-packages/Crypto/Hash/MD4.pyRCscCs t|S(N(R(RR((sB/opt/alt/python27/lib64/python2.7/site-packages/Crypto/Hash/MD4.pyRFsN( t__name__t __module__t__doc__tbtoidRt block_sizetNoneRR(((sB/opt/alt/python27/lib64/python2.7/site-packages/Crypto/Hash/MD4.pyR0s   cCstj|S(sReturn a fresh instance of the hash object. :Parameters: data : byte string The very first chunk of the message to hash. It is equivalent to an early call to `MD4Hash.update()`. Optional. :Return: A `MD4Hash` object (RR(R((sB/opt/alt/python27/lib64/python2.7/site-packages/Crypto/Hash/MD4.pyRIs (R t _revision__t__all__tCrypto.Util.py3compattCrypto.Hash.hashalgoRtCrypto.Hash._MD4tHasht_MD4RRRRRR(((sB/opt/alt/python27/lib64/python2.7/site-packages/Crypto/Hash/MD4.pyt$s