0,0 → 1,76 |
CRYPTOPLUS |
=========== |
|
TABLE OF CONTENTS |
================== |
|
1. WHAT IS CRYPTOPLUS |
2. INSTALLING |
3. GETTING STARTED |
4. LIMITATIONS |
|
1. WHAT IS CRYPTOPLUS |
====================== |
|
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. |
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. |
|
New functions: |
Ciphers: |
Rijndael |
Serpent |
Twofish |
Chain Modes: |
XTS |
CMAC |
|
Note: for all the cipher algorithms, code has been reused from |
others. Appropriate copyright notices are in the source code. |
|
2. INSTALLING |
============== |
|
necessary packages before installing: |
- python-setuptools |
- python-pkg-resources |
|
python setup.py install |
|
3. GETTING STARTED |
=================== |
|
Same API from PyCrypto can be used. See: |
http://www.dlitz.net/software/pycrypto/doc/ |
|
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?'). |
|
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. |
|
4. LIMITATIONS |
=============== |
|
CMAC can only be used with ciphers of 64 or 128 bits blocksizes |
XTS can only be used with ciphers of 128 bits blocksize |