[tahoe-dev] CCM in pycryptopp

Zooko Wilcox-O'Hearn zooko at zooko.com
Wed Jan 11 13:56:40 UTC 2012


On Tue, Jan 3, 2012 at 7:42 AM, Fellinger Thomas - S1010239008
<S1010239008 at students.fh-hagenberg.at> wrote:
>
> I hope I am in the right place here ;)
>
> I am just working on a python project regarding ccmp.

You mean CCM mode?

What's your project? Can you use CTR mode instead and some other form
of integrity-checking? ;-)

> I saw that crypto++ already includes the ccm, but in pycryptopp its not avaiable. Is there a plan to add this?

Nobody has requested it before now.

> How much work would it be to add this feature on my own?

Hm... probably the way to do it would be to copy this file and change
the names from "AES" to "AESCCM":

https://tahoe-lafs.org/trac/pycryptopp/browser/git/pycryptopp/cipher/aesmodule.cpp

The core change is to change
"CryptoPP::CTR_Mode<CryptoPP::AES>::Encryption" to however you spell
"CCM" in Crypto++. I guess you'll also have to have a separate
encryption and decryption object, instead of using the way
aesmodule.cpp does it, which uses an instance of the "Encryption"
class for both encryption and decryption.

Having unit tests with test vectors and a startup self-test like this:

https://tahoe-lafs.org/trac/pycryptopp/browser/git/pycryptopp/test/test_aes.py
https://tahoe-lafs.org/trac/pycryptopp/browser/git/pycryptopp/cipher/aes.py

would be necessary (but not sufficient) for me to include this
addition in pycryptopp upstream.

pycryptopp is on github now, so hopefully that makes you feel
empowered to click the "fork me" button and get started. :-)

Regards,

Zooko


More information about the tahoe-dev mailing list