python_Rijndael.py: some bugs and imperfections were fixed
[python-cryptoplus.git] / README
blob57adf5db2b3d0bfe039c54067b816af50db8e23a
1 CRYPTOPLUS
2 ===========
4 TABLE OF CONTENTS
5 ==================
7 1. WHAT IS CRYPTOPLUS
8 2. INSTALLING
9 3. GETTING STARTED
10 4. LIMITATIONS
12 1. WHAT IS CRYPTOPLUS
13 ======================
15 CryptoPlus is an extions to the Crypto module (www.pycrypto.org) for python. CryptoPlus makes the ciphers included in pycrypto and some new onse available in pure python code. Some new chain modes are also added in pure python, while the ones allready available in pycrypto are also avaible in pure python in this package. Making these available in pure python has the advantage of easier understandable code and thus making it easier to adjust the code to your needs.
16 All other functions of pycrypto are available via the interface of CryptoPlus. The new cipher implementations can be accessed via CryptoPlus.Cipher.python_* while the original ones from pycrypto are still available under their original name via CryptoPlus.Cipher.*. When using the original Ciphers, the original pycrypto (C) code is used but the chains will still be made by my new python code.
18 New functions:
19         Ciphers:
20                 Rijndael
21                 Serpent
22                 Twofish
23         Chain Modes:
24                 XTS
25                 CMAC
27 Note: for all the cipher algorithms, code has been reused from others. Appropriate copyright notices are in the source code.
29 2. INSTALLING
30 ==============
32 python setup.py install
34 3. GETTING STARTED
35 ===================
37 Same API from PyCrypto can be used. See: http://www.dlitz.net/software/pycrypto/doc/
39 Biggest changes are the addition of some chain modes and block ciphers. There are lot of examples provided in the docstrings. Have a look at them by looking in the source code '../CryptoPlus/Cipher/*.py' or via an interactive python session by using 'CryptoPlus.Cipher.python_AES.new?'. Once you constructed a cipher object with 'cipher = CryptoPlus.Cipher.python_AES.new(...)' you can get more info about encrypting and decrypting by reading the apprioprate docstring ('cipher.encrypt?','cipher.decrypt?').
41 Some test functions are provided in the docstrings and in the 'test' folder. Run all the doctest in the new Cipher function by using the '../test/test_doctest.py' script. '../test/test.py' provides some test function for the testvectors avaible from the module via 'CryptoPlus.Cipher.testvectors'. Have a look at the test.py sourcecode to have an idea of how to use those test vectors.
43 4. LIMITATIONS
44 ===============
46 CMAC can only be used with ciphers of 64 or 128 bits blocksizes
47 XTS can only be used with ciphers of 128 bits blocksize