Difference between revisions of "PyCryptoPlus"

From YobiWiki
Jump to navigation Jump to search
(Licenses section)
 
(TODO + Test Vectors)
Line 1: Line 1:
 
==TODO==
 
==TODO==
  +
*add chaining modes
  +
*further importing of pycrypto
  +
*make test vectors available as variables
  +
*add tests:
  +
**CBC for serpent, twofish, blowfish
  +
**XTS is only tested by comparing deciphered ciphertext, not by checking ciphertext
  +
*check other implementation of Blowfish
  +
*final() method of chains
  +
**add a cipher.final() method? pycrypto doesn't have it, but it doesn't really conflict with the pycrypto API. It will just extend it
  +
**final() method should use padding. Choose padding function at initialization of the cipher => again: extending the API
  +
* XTS <-> XTS-AES?<br>XTS-AES just denotes XTS using AES cipher? Make only that one available?
  +
* add rijndael instead of only AES
   
 
==Licenses==
 
==Licenses==
Line 11: Line 23:
 
*pyDes (untouched)<br>public domain according to its homepage
 
*pyDes (untouched)<br>public domain according to its homepage
 
*blockciphers CBC, ECB, CTR from [http://www.nightsong.com/phr/crypto/blockcipher.tgz] (modified)<br>keep copyright notice in place?
 
*blockciphers CBC, ECB, CTR from [http://www.nightsong.com/phr/crypto/blockcipher.tgz] (modified)<br>keep copyright notice in place?
  +
  +
==Test Vectors==
  +
*AES http://cryptome.org/bcm/sp800-38a.htm
  +
*DES (enkel ECB) http://www.skepticfiles.org/faq/testdes.htm
  +
*Blowfish: http://www.schneier.com/code/vectors.txt
  +
*Serpent: http://www.cs.technion.ac.il/~biham/Reports/Serpent/
  +
*Twofish: http://www.schneier.com/code/ecb_ival.txt
  +
*AES, DES, 3DES: http://csrc.nist.gov/groups/STM/cavp/standards.html<br>-> AES in CBC, CTR, OFB, CFB
  +
*AES, DES: http://svn.python.org/projects/external/openssl-0.9.8a/test/evptests.txt
  +
*https://www.cosic.esat.kuleuven.be/nessie/testvectors/

Revision as of 14:08, 1 September 2008

TODO

  • add chaining modes
  • further importing of pycrypto
  • make test vectors available as variables
  • add tests:
    • CBC for serpent, twofish, blowfish
    • XTS is only tested by comparing deciphered ciphertext, not by checking ciphertext
  • check other implementation of Blowfish
  • final() method of chains
    • add a cipher.final() method? pycrypto doesn't have it, but it doesn't really conflict with the pycrypto API. It will just extend it
    • final() method should use padding. Choose padding function at initialization of the cipher => again: extending the API
  • XTS <-> XTS-AES?
    XTS-AES just denotes XTS using AES cipher? Make only that one available?
  • add rijndael instead of only AES

Licenses

  • used from python truecrypt implementation
    all original code is under MIT license (much freedom according to [1])
    • pyTwofish (untouched)
      python truecrypt author isn't the original author = > extra copyright notice that should be left in place
    • pyserpent (untouched)
      python truecrypt author isn't the original author = > extra copyright notice that should be left in place
    • XTS (modified)
      python truecrypt author is the original author => only MIT License
    • GF2n.py(untouched)
      python truecrypt author is the original author => only MIT License
  • pyblowfish (untouched)
    gpl or artistic license
    gpl is compatible with public domain
  • rijndael.py (untouched)
    using tls lite (public domain) implementation which uses code from Bram Cohen (public domain)
  • pyDes (untouched)
    public domain according to its homepage
  • blockciphers CBC, ECB, CTR from [2] (modified)
    keep copyright notice in place?

Test Vectors