ÿØÿà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Áß_ÿÙ /Oc@sQdZdZddlmZdd dYZdZdZedd Zd S( sXOR toy cipher XOR is one the simplest stream ciphers. Encryption and decryption are performed by XOR-ing data with a keystream made by contatenating the key. Do not use it for real applications! :undocumented: __revision__, __package__ s$Id$i(t_XORt XORCiphercBs)eZdZdZdZdZRS(sXOR cipher objectcOs:tj||||_|jj|_|jj|_dS(sUInitialize a XOR cipher object See also `new()` at the module level.N(Rtnewt_ciphert block_sizetkey_size(tselftkeytargstkwargs((sD/opt/alt/python27/lib64/python2.7/site-packages/Crypto/Cipher/XOR.pyt__init__(scCs|jj|S(sEncrypt a piece of data. :Parameters: plaintext : byte string The piece of data to encrypt. It can be of any size. :Return: the encrypted data (byte string, as long as the plaintext). (Rtencrypt(Rt plaintext((sD/opt/alt/python27/lib64/python2.7/site-packages/Crypto/Cipher/XOR.pyR 0s cCs|jj|S(sDecrypt a piece of data. :Parameters: ciphertext : byte string The piece of data to decrypt. It can be of any size. :Return: the decrypted data (byte string, as long as the ciphertext). (Rtdecrypt(Rt ciphertext((sD/opt/alt/python27/lib64/python2.7/site-packages/Crypto/Cipher/XOR.pyR ;s (t__name__t __module__t__doc__R R R (((sD/opt/alt/python27/lib64/python2.7/site-packages/Crypto/Cipher/XOR.pyR%s  cOst|||S(sCreate a new XOR cipher :Parameters: key : byte string The secret key to use in the symmetric cipher. Its length may vary from 1 to 32 bytes. :Return: an `XORCipher` object (R(RRR ((sD/opt/alt/python27/lib64/python2.7/site-packages/Crypto/Cipher/XOR.pyRFs ii N(i!( Rt __revision__t Crypto.CipherRRRRtxrangeR(((sD/opt/alt/python27/lib64/python2.7/site-packages/Crypto/Cipher/XOR.pyts !