diff options
Diffstat (limited to 'pycryptopp/cipher/aes.py')
-rw-r--r-- | pycryptopp/cipher/aes.py | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/pycryptopp/cipher/aes.py b/pycryptopp/cipher/aes.py deleted file mode 100644 index 7280063..0000000 --- a/pycryptopp/cipher/aes.py +++ /dev/null @@ -1,68 +0,0 @@ - -from pycryptopp import _import_my_names - -# These initializations to None are just to pacify pyflakes, which -# doesn't understand that we have to do some funky import trickery -# below in _import_my_names() in order to get sensible namespaces. -AES=None -Error=None - -_import_my_names(globals(), "aes_") - -del _import_my_names - -def start_up_self_test(): - """ - This is a quick test intended to detect major errors such as the library being - miscompiled and segfaulting or returning incorrect answers. We've had problems - of that kind many times, thus justifying running this self-test on import. - This idea was suggested to me by the second edition of "Practical - Cryptography" by Ferguson, Schneier, and Kohno. - These tests were copied from pycryptopp/test/test_aes.py on 2009-10-30. - """ - enc0 = "dc95c078a2408989ad48a21492842087530f8afbc74536b9a963b4f1c4cb738b" - from binascii import a2b_hex, b2a_hex - - cryptor = AES(key="\x00"*32) - ct = cryptor.process("\x00"*32) - if enc0 != b2a_hex(ct): - raise Error("pycryptopp failed startup self-test. Please run pycryptopp unit tests.") - - cryptor = AES(key="\x00"*32) - ct1 = cryptor.process("\x00"*15) - ct2 = cryptor.process("\x00"*17) - if enc0 != b2a_hex(ct1+ct2): - raise Error("pycryptopp failed startup self-test. Please run pycryptopp unit tests.") - - enc0 = "66e94bd4ef8a2c3b884cfa59ca342b2e" - cryptor = AES(key="\x00"*16) - ct = cryptor.process("\x00"*16) - if enc0 != b2a_hex(ct): - raise Error("pycryptopp failed startup self-test. Please run pycryptopp unit tests.") - - cryptor = AES(key="\x00"*16) - ct1 = cryptor.process("\x00"*8) - ct2 = cryptor.process("\x00"*8) - if enc0 != b2a_hex(ct1+ct2): - raise Error("pycryptopp failed startup self-test. Please run pycryptopp unit tests.") - - def _test_from_Niels_AES(keysize, result): - def fake_ecb_using_ctr(k, p): - return AES(key=k, iv=p).process('\x00'*16) - - E = fake_ecb_using_ctr - b = 16 - k = keysize - S = '\x00' * (k+b) - for i in range(1000): - K = S[-k:] - P = S[-k-b:-k] - S += E(K, E(K, P)) - - if S[-b:] != a2b_hex(result): - raise Error("pycryptopp failed startup self-test. Please run pycryptopp unit tests.") - - _test_from_Niels_AES(16, 'bd883f01035e58f42f9d812f2dacbcd8') - _test_from_Niels_AES(32, 'c84b0f3a2c76dd9871900b07f09bdd3e') - -start_up_self_test() |