Mon Jun 16 20:03:02 PDT 2008 warner@allmydata.com * add more EC-DSA tests: serialized key sizes, corrupted signatures, wrong signatures, key uniqueness. The serialized verifier key is still too fluffy. New patches: [add more EC-DSA tests: serialized key sizes, corrupted signatures, wrong signatures, key uniqueness. The serialized verifier key is still too fluffy. warner@allmydata.com**20080617030302] { hunk ./pycryptopp/test/test_ecdsa.py 24 +KEYSIZE_BYTES = int(KEYSIZE/8) +assert 8*KEYSIZE_BYTES >= KEYSIZE +# I think the curve is twice the size of our prime field. +VERIFY_KEYSIZE = KEYSIZE*2 +VERIFY_KEYSIZE_BYTES = int(VERIFY_KEYSIZE/8) +assert 8*VERIFY_KEYSIZE_BYTES >= VERIFY_KEYSIZE + +SIGNATURE_SIZE = KEYSIZE*2 +SIGNATURE_SIZE_BYTES = int(SIGNATURE_SIZE/8) # 2*((KEYSIZE+7)/8)) +assert 8*SIGNATURE_SIZE_BYTES >= SIGNATURE_SIZE + hunk ./pycryptopp/test/test_ecdsa.py 59 - self.failUnlessEqual(len(result), 2*((KEYSIZE+7)/8)) + self.failUnlessEqual(len(result), SIGNATURE_SIZE_BYTES) hunk ./pycryptopp/test/test_ecdsa.py 65 - self.failUnlessEqual(len(sig), 2*((KEYSIZE+7)/8)) + self.failUnlessEqual(len(sig), SIGNATURE_SIZE_BYTES) hunk ./pycryptopp/test/test_ecdsa.py 109 + self.failUnlessEqual(len(serstr), VERIFY_KEYSIZE_BYTES) + self.failUnlessEqual(serstr, verifier.serialize()) hunk ./pycryptopp/test/test_ecdsa.py 122 + self.failUnlessEqual(len(serstr), KEYSIZE_BYTES) + self.failUnlessEqual(serstr, signer.serialize()) hunk ./pycryptopp/test/test_ecdsa.py 131 + def test_serialize_and_deserialize_both_and_test(self): + signer = ecdsa.generate(KEYSIZE) + verifier = signer.get_verifying_key() + + signer_s = signer.serialize() + verifier_s = verifier.serialize() + new_signer = ecdsa.create_signing_key_from_string(signer_s) + new_verifier = ecdsa.create_verifying_key_from_string(verifier_s) + + msg = "This is a message" + self.failUnless(verifier.verify(msg, signer.sign(msg))) + self.failUnless(new_verifier.verify(msg, signer.sign(msg))) + self.failUnless(verifier.verify(msg, new_signer.sign(msg))) + self.failUnless(new_verifier.verify(msg, new_signer.sign(msg))) + + self._help_test_sign_and_check(new_signer, new_verifier, "a") + self._help_test_sign_and_check_random(new_signer, new_verifier) + self._help_test_sign_and_failcheck(new_signer, new_verifier, "a") + self._help_test_sign_and_failcheck_random(new_signer, new_verifier) + + def flip_last_bit(self, s): + return s[:-1] + chr(ord(s[-1])^0x01) + + def test_bad_signature(self): + signer = ecdsa.generate(KEYSIZE) + verifier = signer.get_verifying_key() + msg = "This is a message" + + self.failUnless(verifier.verify(msg, signer.sign(msg))) + # pass the wrong message to the verifier + self.failIf(verifier.verify(self.flip_last_bit(msg), + signer.sign(msg))) + # sign a different message + self.failIf(verifier.verify(msg, + signer.sign(self.flip_last_bit(msg)))) + # corrupt the signature itself + self.failIf(verifier.verify(msg, + self.flip_last_bit(signer.sign(msg)))) + + def test_bad_key(self): + signer = ecdsa.generate(KEYSIZE) + signer2 = ecdsa.generate(KEYSIZE) + verifier2 = signer2.get_verifying_key() + msg = "This is a message" + + self.failIf(verifier2.verify(msg, signer.sign(msg))) + + def test_key_uniqueness(self): + # simple guard against things like the debian-openssl entropy bug. On + # my workstation, key generation takes 300us and serialization takes + # 2us, so 10k trials will take about 3s, and has roughly a 50% chance + # of catching a generator with less than 26 bits of entropy. + keys = set() + COUNT = 10000 + for i in range(COUNT): + signer = ecdsa.generate(KEYSIZE) + signer_s = signer.serialize() + self.failIf(signer_s in keys) + keys.add(signer_s) + } Context: [setup: fix metadata: url='http://allmydata.org/trac/pycryptopp' zooko@zooko.com**20080507133532] [tests: use pkg_resources to find test vectors so that the unit tests can be run from any directory and from a zipped install, etc. zooko@zooko.com**20080507133408] [TAG pycryptopp-0.5.1 zooko@zooko.com**20080430194322] [doc: release notes for pycryptopp-0.5.0 (oops) zooko@zooko.com**20080425162722] [TAG pycryptopp-0.5.0 zooko@zooko.com**20080424164734] [trivial: remove unused DEBUG variable (I'm committing this only to test our automated patch management/build) zooko@zooko.com**20080421222753] [setup: add a .darcs-boringfile to enumerate files that we want "darcs whatsnew" to ignore zooko@zooko.com**20080403232656] [ecdsa: serialize ECDSA private keys to just the minimum number of bytes of data that are required -- the private exponent in big-endian integer encoding zooko@zooko.com**20080403230126] [setup: update build instructions in README.txt zooko@zooko.com**20080401194243] [setup: mv aside some files from Crypto++ that we don't use zooko@zooko.com**20080401160117 This way pycryptopp compiles faster. Also it is useful documentation to indicate some parts of Crypto++ we don't use. Unfortunately there are a lot of parts of Crypto++ that we do not use but which still have to be compiled because of compilation dependencies. ] [setup: build against included Crypto++ source instead of an external library zooko@zooko.com**20080401014129 This means that "./setup.py build" should work on any platform, although that has yet to be tested for most platforms. Thanks to Greg Hazel for getting this working, especially with VS2003. ] [setup: move the Crypto++ source code and the tailor.config file into a subdirectory named "cryptopp" zooko@zooko.com**20080328231711 The tailor.config file was used to configure tailor to generate a darcs history of Crypto++ from its SVN history. ] [fix infinite recursive call in IsRandomAccess (reported by ASBai) weidai**20080202084027] [add "test" target weidai**20080202083821] [previous keys were using long private exponents weidai**20071210002519] [change minimum key size to 0 weidai**20071205142218] [add workaround for _interlockedbittestandset64 and _interlockedbittestandreset64 weidai**20071205134912] [do not align to 16 when not needed weidai**20071026095049] [reset m_counter in TruncatedFinal weidai**20071023172749] [improve documentation weidai**20071023172728] [prepare for release weidai**20070925073020] [fix missing CRYPTOPP_API weidai**20070925072547] [don't use _rotl64 with ICC weidai**20070925062224] [fix compile with ICC 10 weidai**20070925040817] [fix compile with ICC 9.1 on x64 weidai**20070924070529] [fix compile for ICC 10 weidai**20070924053559] [remove -msse2 since we don't use SSE2 intrinsics anymore weidai**20070924041629] [remove -msse2 since we don't use SSE2 intrinsics anymore weidai**20070924035217] [update CheckMOVCondition() according to http://eprint.iacr.org/2007/343 weidai**20070924025422] [remove -msse2 since we don't use SSE2 intrinsics anymore weidai**20070924015743] [fix compile with GAS 2.15 weidai**20070924011938] [remove (should save code size?) weidai**20070924005104] [- port x64 assembly code to MASM weidai**20070924004559 - improve stack unwindability on x64 for GCC by not modifying RBP/RSP registers in inline assembly ] [remove branch in assert weidai**20070924004516] [- port x64 assembly code to MASM weidai**20070924004357 - improve stack unwindability on x64 for GCC by not modifying RBP/RSP registers in inline assembly ] [fix extraneous SSE2 compiler option weidai**20070924003506] [fix compile with fix compile for for STLport 5.1.3 and MSVC 2005 weidai**20070915023857] [fix compile for for STLport 5.1.3 and MSVC 6 SP5 weidai**20070912022848] [fix compile with Borland C++Builder 2007 weidai**20070816225953] [fix warning on MSVC Orcas Beta 2 weidai**20070815233616] [fix compile for QNX weidai**20070815015501] [fix gcc compile errors and warnings weidai**20070814005543] [fix valgrind issues reported by Chris Morgan weidai**20070813235505] [update version number to 5.5.2 weidai**20070813235425] [fixed Whirlpool crash on Pentium 2 machines weidai**20070813235309] [fix bug reported by Jeffrey Walton weidai**20070813235206] [fixed Salsa20 initialization crash on non-SSE2 machines weidai**20070813234817] [fix possible branch prediction analysis (BPA) vulnerability weidai**20070813234754] [patch from Jody Hagins to fix gcc 3.2 compile weidai**20070813234655] [patch from Andrew Pitonyak to return factory names weidai**20070813234547] [fix linker error when compiling with MSVC 2003 and using DLL form of runtime library weidai**20070802011352] [fix crash in SSE2_Add on P4 when compiled with MSVC 6.0 with Processor Pack weidai**20070802011125] [add missing virtual destructors weidai**20070601172927] [fix compile for VC6 without processor pack, and GCC 4 on MINGW weidai**20070601172831] [prepare for release weidai**20070526033730] [fix bug on 32-bit big-endian machines weidai**20070524202430] [update manual weidai**20070505203531] [prepared for release weidai**20070505203517] [cleanup weidai**20070505201852] [revert to int return value for Add and Sub weidai**20070505193751] [fix x64 options and warnings weidai**20070505190338] [fix VC 6 compile weidai**20070505190305] [fix compile on Turbo C++ 2006 weidai**20070505182944] [update files and options weidai**20070505152940] [optimize for speed weidai**20070505152734] [optimize ECB/CBC modes weidai**20070505152605] [work around GCC bug for x64 weidai**20070505152512] [fix compile with ICC for ia64 weidai**20070505041236] [don't use -msse2 for GCC 3.3 weidai**20070505025727] [fix compile with Sun CC weidai**20070505021511] [add -Wa,--divide for Solaris weidai**20070505012144] [add debug printout weidai**20070505010316] [fix bug in UnalignedPutWordNonTemplate weidai**20070505010052] [fix bug in assembly weidai**20070504231804] [VMAC draft-krovetz-vmac-01 weidai**20070504214138] [fix compile on Mac OS X weidai**20070504204632] [fix warning with Intel compiler weidai**20070504195616] [remove extraneous -D__pic__ weidai**20070504195534] [use byteswap.h only on Linux weidai**20070504194737] [fix DLL compile weidai**20070504193010] [revert -ffunction-sections -fdata-sections weidai**20070504191952] [fix g_cacheLineSize for Pentium 3 weidai**20070504191901] [fix compile weidai**20070504161342] [fix warning weidai**20070504160058] [use Weak1 namespace weidai**20070504153842] [add IncorporateEntropy and GenerateIntoBufferedTransformation to RNG interface weidai**20070504153832] [increase buffer sizes weidai**20070504153812] [reduce risk of reusing random numbers after VM state rollback weidai**20070504153746] [fix compile weidai**20070504153615] [remove extraneous function weidai**20070504153538] [speed up xorbuf weidai**20070504153317] [change PutBlock to default to non-aligned access weidai**20070504153255] [change default FIPS RNG to use AES instead of DES_EDE weidai**20070504153146] [use Weak1 namespace weidai**20070504152516] [add word128 weidai**20070504152508] [fix compile for x64, DLL and VC 6 weidai**20070504152409] [enable -O2 and -march=native -mtune=native weidai**20070504151223] [use Weak1 namespace weidai**20070504151050] [add/remove files weidai**20070504150852] [reduce risk of random number reuse after VM rollback weidai**20070504150458] [update to draft-01 weidai**20070504150307] [move ARC4 into Weak namespace weidai**20070416212741] [fix compile on Sun CC weidai**20070416054037] [fix compile with Intel compiler weidai**20070416025159] [CPU feature detection and assembly helpers weidai**20070416004550] [MASM code for x64 weidai**20070416004521] [IV_REQUIREMENT changes weidai**20070416004317] [clarify comments weidai**20070416004111] [add 64-bit mangled names of new and delete weidai**20070416004048] [Test: Encode now tests decryption also weidai**20070416003956] [changes to support optimizations weidai**20070416003909] [fix bug decoding optional parameters weidai**20070416003829] [remove HAVAL, MD5MAC, XMACC. add Sosemanuk weidai**20070416003744] [move MD2, MD4, MD5, PanamaHash, WAKE_CFB into the namespace 'Weak' weidai**20070416003651] [move sbox macros to serpentp.h for Sosemanuk weidai**20070416003540] [reduce memory usage. move sbox macros to serpentp.h weidai**20070416003510] [rename STRUCTURED_IV to UNIQUE_IV. assert correct cipher direction weidai**20070416003413] [optimizations weidai**20070416003309] [handle new FIPS test vector format weidai**20070416003227] [removed UnalignedPutWord weidai**20070416003122] [update version number weidai**20070416003054] [rename STRUCTURED_IV to UNIQUE_IV. Sun CC workaround weidai**20070416002947] [add DigestSize and L1KeyLength weidai**20070416002640] [ICC workaround weidai**20070416002605] [changed hash functions for m command weidai**20070416002513] [reorganized aligned allocator weidai**20070416002235] [optimizations weidai**20070416002107] [removed UnalignedPutWord weidai**20070416002057] [MMX/SSE2 optimizations weidai**20070416001832] [fix compile with ICC weidai**20070416001632] [fix missing function weidai**20070416001534] [fix comment typo weidai**20070416001346] [move MD2, MD4, MD5, PanamaHash, WAKE_CFB into the namespace 'Weak' weidai**20070416001332] [OpenMP weidai**20070416001305] [optimizations weidai**20070416001203] [move MD2, MD4, MD5, PanamaHash, WAKE_CFB into the namespace 'Weak' weidai**20070415234659] [remove HAVAL, MD5-MAC, XMAC weidai**20070415234500] [MMX/SSE2 optimizations weidai**20070415234444] [benchmark key and IV setup. remove low security benchmarks weidai**20070415234258] [remove HAVAL, MD5-MAC, XMAC weidai**20070415230158] [MMX/SSE2 optimizations weidai**20070415230027] [optimized Camellia and added defense against timing attacks weidai**20070415225958] [enabled optimization flags by default in GNUmakefile weidai**20070415225929] [move MD2, MD4, MD5, PanamaHash, WAKE_CFB into the namespace 'Weak' weidai**20070415225912] [added blinding and error checking for RW private key operation weidai**20070415225824] [SSE2 optimizations weidai**20070415225431] [add VMAC draft-krovetz-vmac-00 weidai**20070415225341] [add Sosemanuk weidai**20070415225219] [new test vectors. 'Test: Encrypt' now tests decryption also weidai**20070415225112] [fix threading bug weidai**20070203132909] [add missing file for Borland C++ weidai**20061225081700] [fix compile on MSVC2002 and MSVC6 without Processor Pack weidai**20061225081019] [adding missing BlockSize() weidai**20061225080348] [adding missing AlgorithmName() weidai**20061225080332] [update copyright year weidai**20061222150813] [prepare for release weidai**20061222150538] [fix compile for MSVC .NET 2002 weidai**20061222150342] [fix compile for MSVC .NET 2003 weidai**20061222084449] [fix SunCC compile weidai**20061221180223] [fix for DLL-import configuration weidai**20061221013512] [fix compile with Sun CC 64-bit weidai**20061220152002] [update version number, port to Sun C++ 5.8 weidai**20061218023433] [add V (version) option weidai**20061218021514] [remove CodeWarrior project file weidai**20061218021401] [remove old code weidai**20061214125344] [port to Borland C++Builder 2006 weidai**20061214120333] [port to Borland C++Builder 2006 weidai**20061214114139] [implement AlgorithmName() for hash and signature filters weidai**20061214105831] [add Borland C++ project files weidai**20061214093131] [fix BlockingRng for OpenBSD weidai**20061213040809] [use egrep instead of grep weidai**20061212084219] [remove GCC warning weidai**20061212071230] [fix incorrect type in UncheckedSetKey parameter weidai**20061211091819] [minor style fix weidai**20061211091756] [update Readme weidai**20061211091705] [fix ISX86 weidai**20061211091553] [improved method of disable inlining, fix compile on NetBSD weidai**20061211091312] [fix compile with MSVC 2005 SP1 beta weidai**20061210235009] [port to GCC 4, reorganize implementations of SetKey weidai**20061210021223] [add Salsa20 cipher weidai**20061209171813] [cygwin workaround weidai**20061209171741] [VC2005 workaround weidai**20061209171605] [updated FIPS algorithm tests weidai**20061209171538] [fix terminator param being ignored weidai**20061209171214] [add -pthread and allow make install weidai**20061209170901] [Updated to Whirlpool version 3.0 weidai**20061209170813] [fix compile on Unix weidai**20060906090444] [remove extraneous code weidai**20060906090422] [fix self-test when installed into unicode paths weidai**20060906051049] [remove extraneous file weidai**20060901115918] [remove compiler warnings weidai**20060901103956] [fix bug in last checkin weidai**20060810031105] [change DLL integrity self-test to allow DLL to be Authenticode signed weidai**20060730171501] [update version weidai**20060730155829] [fix bug in HexDecoder::IsolatedInitialize (thanks to BaiYang) weidai**20060723103800] [BlockAlignment() weidai**20060717145218] [optimization in CBC_Decryption::ProcessBlocks() weidai**20060717145120] [fix StaticAlgorithmName() for CTR mode weidai**20060717145043] [additional AES test vectors weidai**20060717144951] [AES timing attack countermeasures weidai**20060717144859] [additional AES test vectors weidai**20060717144335] [fix SocketSender::EofSent weidai**20060609071506] [fix warning weidai**20060609063146] [improve Integer initialization weidai**20060609062822] [add missing #include weidai**20060609062744] [fix warning on VC6 weidai**20060413033726] [merge in changes by denis bider and fix compile on gcc 3.4.4 and MSVC 6 weidai**20060406212025] [fix Integer::Encode weidai**20060317003811] [fix MSVC 2005 warnings weidai**20060313132641] [add missing Ref() function weidai**20060313132626] [upgrade project files to MSVC 2005 and add x64 platform weidai**20060130140054] [fix TYPE_OF_SOCKLEN_T for Darwin weidai**20060130135916] [remove unneeded warning options weidai**20050905221540] [fix inline doc weidai**20050905221417] [port to GCC 4 weidai**20050905214343] [remove extraneous SCC info weidai**20050905213950] [update inline doc weidai**20050905210256] [remove warning with MSVC .NET 2005 weidai**20050903153529] [fix compile with MSVC 6 without Processor Pack weidai**20050903153212] [add missing files weidai**20050903153029] [fix ECP curve BER decode weidai**20050902222353] [add missing file weidai**20050713021950] [update Readme weidai**20050713021922] [update documentation version weidai**20050713021910] [fix compile on MSVC .NET 2005 weidai**20050713021850] [fix compile on MSVC 6 weidai**20050713021834] [port to MSVC .NET 2005 beta 2 weidai**20050712042332] [add missing project files weidai**20050507012704] [add missing files weidai**20050210201135] [changes done for FIPS-140 lab code drop weidai**20050120041935] [fix gcc 3.4.2 compile weidai**20041017223930] [changes related to the next FIPS validation weidai**20040903105731] [fix WAKE_CFB weidai**20040903105259] [add SHA-224 weidai**20040723095711] [*** empty log message *** weidai**20040723094643] [remove reference to 5.1 version weidai**20040722020918] [put in release date weidai**20040722020839] [fix documentation, fix PanamaMAC, fix algorithm names weidai**20040722005157] [add Panama test vectors weidai**20040722003502] [fix compile with -msse2 on systems without memalign() weidai**20040718092313] [fix for -fPIC weidai**20040705214950] [allow compile with STLport again weidai**20040703012011] [fix bug in CFB mode test weidai**20040703011939] [update copyright year weidai**20040703011824] [prepare for 5.2 release weidai**20040629104921] [fix compile error on VC .NET 2003 weidai**20040622115457] [add more release build comments weidai**20040620182145] [port to CodeWarrior 8.3 weidai**20040620175615] [instantiate more templates for Darwin weidai**20040619121028] [set CXX to c++ on Darwin weidai**20040619114241] [*** empty log message *** weidai**20040619111659] [disable x86 assembly on systems without GNU as 2.10 or later weidai**20040619110052] [*** empty log message *** weidai**20040619091332] [*** empty log message *** weidai**20040619090135] [port to GCC 3.4 weidai**20040619082809] [fix encoding/decoding of optional attributes weidai**20040619082629] [fix DivideByZero exception in InvertibleRSAFunction(n, e, d) weidai**20040503181511] [add CFB mode FIPS variant weidai**20040429160039] [add check for invalid RSA private key given n, e, d weidai**20040429144851] [fix typo weidai**20040421084017] [add missing #include weidai**20040421083959] [*** empty log message *** weidai**20040408020304] [avoid hash keyword weidai**20040408020229] [add minimum iteration time option weidai**20040408015733] [*** empty log message *** weidai**20040408013207] [fix extraneous FinalizeLazyPut in NetworkSink::Put2 in case of exceptions weidai**20040408013106] [add detection of uncompressibilty weidai**20040408012831] [speed up DEFLATE decompression weidai**20040408012803] [avoid using hash keyword weidai**20040408012348] [add ThreadUserTimer weidai**20040408012305] [base HMAC::AlgorithmName() on AlgorithmName() of hash function instead of StaticAlgorithmName() weidai**20040309124629] [implement AlgorithmName() for HAVAL and PanamaHash weidai**20040309124238] [fix assert when keylen not multiple of 4 weidai**20040309124059] [fix "feedbackSize not used" exception weidai**20040309124025] [fix ONE_AND_ZEROS_PADDING test vector weidai**20040210134346] [fix ignoring pSelector in FirstPrime weidai**20040210023058] [fix ONE_AND_ZEROS_PADDING weidai**20040205033513] [fix bug in EncryptionPairwiseConsistencyTest weidai**20040205033259] [remove confusing angle brackets weidai**20040110122849] [reduce warnings on GCC weidai**20031105011103] [remove extraneous source control settings weidai**20031031024334] [avoid read-ahead into invalid memory in P4Optimized::Add weidai**20031031024042] [fix comment mark weidai**20031031023932] [add missing overrides for new [] and delete [] weidai**20031031023901] [use CXX instead of gcc directly weidai**20031022210807] [reduce source file dependencies weidai**20031014094314] [add -lws2_32 on MinGW weidai**20031014094135] [fix bug in swap weidai**20031014012938] [fix bug (found by Michael Hunley) weidai**20031014012528] [fix multithreading bug weidai**20030910210114] [use memset instead of assignment to clear memory weidai**20030905202939] [merge changes from 5.0.4 weidai**20030905005704] [add detection for OS support of SSE2 weidai**20030905005414] [minor changes weidai**20030825214109] [guard against potential integer overflow in allocators weidai**20030804190041] [use -msse2 on x86_64 weidai**20030804185615] [fix DLL build weidai**20030801042451] [unify GCC and MSVC multiplication code weidai**20030801032016] [add b2 command weidai**20030801030733] [prevent problems when application and Crypto++ have different NDEBUG settings weidai**20030731015746] [workaround alpha build problem weidai**20030731015619] [enable SSE2 intrinsics on GCC 3.3 or later weidai**20030731015453] [fix BTEA weidai**20030731015257] [add XTEA and BTEA weidai**20030730002854] [fix potential threading problem with initialization of static objects weidai**20030729011833] [split bench.cpp in 2 for alpha (.got subsegment exceeds 64K) weidai**20030729011622] [fix exception weidai**20030726083638] [remove gcc warnings weidai**20030726083540] [new AES test format weidai**20030726075840] [fix for x64-64 weidai**20030726075755] [fix bugs in 64-bit CPU support weidai**20030725001552] [*** empty log message *** weidai**20030719085725] [fix for loop scoping weidai**20030719052520] [fix 64-bit CPU issues weidai**20030719051649] [add missing #include weidai**20030719035753] [remove Diamond2, code size reductions weidai**20030719034720] [assembly for more 64-bit CPUs weidai**20030719034602] [fix passing std::string by value weidai**20030719003019] [allow DLL to be built with VC++ .NET weidai**20030718213318] [misc changes weidai**20030718043530] [add base 32 (Frank Palazzolo) weidai**20030718043412] [fix in-memory integrity check on Win 9x weidai**20030718032217] [fix wrong error message in FIPS140_SampleApplication weidai**20030718031937 fix DLL startup problem on Windows 9x ] [fix bug in ChannelSwitch::ChannelCreatePutSpace() when a channel has only one route weidai**20030718025249] [added support for using encoding parameters and key derivation parameters weidai**20030716015345] [fix for Unix weidai**20030711200353] [fix for Unix weidai**20030711195526] [fix for Unix weidai**20030711195402] [fix for Unix weidai**20030711194849] [fix for Unix weidai**20030711194628] [fix GCC compile weidai**20030711191635] [*** empty log message *** weidai**20030710043650] [merge in 5.0.4 changes (exclude DES and SHA-2 from DLL), weidai**20030710043423 attempt (failed) to build DLL with GCC ] [fix resource file version number weidai**20030707211914] [fix Readme version number weidai**20030707210114] [create DLL version, fix GetNextIV() bug in CTR and OFB modes weidai**20030704001737] [remove unnecessary inline weidai**20030701213605] [add missing #include weidai**20030701212620] [auto queue node size weidai**20030620031254] [fixes/workarounds for GCC weidai**20030619190957] [fix assert weidai**20030619190550] [sync with private branch weidai**20030619170907] [fix WaitObjectContainer constructor in release build weidai**20030610050315] [detect no-wait loop in debug build weidai**20030610050045] [fix bug in SourceExhausted() weidai**20030610045941] [release memory from working set after EDC test weidai**20030610001906] [sync with private branch weidai**20030606023403] [copy fix over from 4.x branch weidai**20030527070811] [work around GCC 3.2 code generation bug weidai**20030518003856] [*** empty log message *** weidai**20030517072608] [add linker optimization flags weidai**20030516182740] [workaround for VS .NET 2003 weidai**20030516182511] [add missing typename weidai**20030516182425] [add CRYPTOPP_NO_VTABLE weidai**20030516005353] [misc optimizations weidai**20030516000231] [*** empty log message *** weidai**20030515173653] [make unintentional private functions public weidai**20030428173705] [workaround for GCC weidai**20030426045638] [set this file as binary (-kb) weidai**20030423011558] [minor changes related to NESSIE algorithms weidai**20030423005142] [add missing .dat files weidai**20030422002908] [remove default NullRNG() for signing weidai**20030422001241] [fix in memory EDC test - IAT issue weidai**20030422001114] [changes for VS.NET 2003 weidai**20030419215008] [improve in memory EDC weidai**20030418021425] [add new algorithms (Kevin Springle) weidai**20030416004847] [*** empty log message *** weidai**20030415003944] [fix bug in Grouper weidai**20030415003848 add RIPEMD-???, Whirlpool, Shacal2, Camellia, Two-Track MAC (Kevin Springle) change ChannelSwitch to allow non-blocking input (denis bider) change Redirector to allow more options (denis bider) fix MaurerRandomnessTest optimize MD2 (Kevin Springle) ] [fix bugs in SEAL and Panama weidai**20030326215044] [minor changes weidai**20030325021153] [fix for possible bug on 64-bit platforms weidai**20030325020532] [avoid deleting adhoc.cpp during rebuild weidai**20030323050339] [STLport workaround weidai**20030323050256] [Aparajita Fishman's CW8 project file modified for version 5.1 weidai**20030322230521] [fix linebreak bug weidai**20030321181058] [minor changes weidai**20030321075030] [minor changes for 5.1 weidai**20030320221320] [small fixes weidai**20030320210910] [fix warnings for VC7 and GCC weidai**20030320203959] [fix bug in MeterFilter weidai**20030320203922] [GCC workaround weidai**20030320031853] [fix RW/EMSA2 standard conformance bug weidai**20030320030944] [fix inlining problem weidai**20030320030311] [various changes for 5.1 weidai**20030320012412] [fix adhoc.cpp.proto custom build problem weidai**20030303213257] [increase resistance against timing attacks weidai**20030228212828] [fixed FILTER_END bug weidai**20030224014816] [fix whitespace problems weidai**20030224011157] [fix whitespace problems weidai**20030224010641] [Seek() bug fix weidai**20030204004024] [add missing #include, and fix CounterMode typedef weidai**20030203235945] [fix bug to allow base32 coding weidai**20030116004748] [add script-driven testing weidai**20021206220246] [undo addition of new files weidai**20021206213326] [bug fix weidai**20021203163923] [change default configuration to Win32 - Debug weidai**20021121014416] [remove Sapphire weidai**20021120224757] [fixed to compile with Intel compiler weidai**20021119204440] [*** empty log message *** weidai**20021029011103] [*** empty log message *** weidai**20021027033739] [*** empty log message *** weidai**20021027023810] [*** empty log message *** weidai**20021027021904] [remove Sapphire weidai**20021018194845] [bug fixes and KAT for X9.17 RNG weidai**20021017163228] [make CTS functions public weidai**20021015040512] [fix typo weidai**20021011202402] [bug fix and optimization weidai**20021006035813] [bug fixes weidai**20021006032316] [compatibility fixes for MacOS X weidai**20021004214504] [Initial revision weidai**20021004173141] [New repository initialized by cvs2svn. anonymous**20021004173141] [fix bug in initialization of AES key which, with Microsoft compilers, resulted in crashes or even wrong answers! zooko@zooko.com**20080328191356 Thanks for Greg Hazel for detecting and debugging this. If you were using g++ (including cygwin's gcc with or without the "-mno-cygwin" option), then the compiler was luckily protecting you from the consequences of this bug and pycryptopp was producing correct AES encryption. If you were using VS2003 then if you ran the unit tests, you would have seen that the tests fail due to incorrect answers. Then, presumably, you would have reported this bug to me, and since you didn't then I guess you don't exist. If you were using VS2005 (?) then it would have crashed whenever you encrypted something. Again, I am skeptical of your existence because it didn't compile at all on VS2005 until last night (unless you were Mike Booker), and because you haven't opened any tickets about this issue at the pycryptopp bug tracker: http://allmydata.org/trac/pycryptopp . Lessons learned from this bug: 1. Bugs in pycryptopp can cause silently wrong results even when Crypto++ is correct. 2. But, those results are typically not silent if you run the unit tests. 2.a. Run the unit tests! "python ./setup.py test" 2.b. We run the unit tests automatically on every check-in, using buildbot: http://allmydata.org/buildbot-pycryptopp/waterfall?show_events=False 3. In addition to unit testing, we also try to think carefully when writing and editing the code in order to avoid writing bugs. Please help, by inspecting the code for other bugs: http://allmydata.org/trac/pycryptopp/browser/pycryptopp/cipher/aesmodule.cpp ] [publickey: remove the broken "generate deterministically from a seed" feature zooko@zooko.com**20080328184933] [tests: use sufficiently large seeds to generate keys in tests zooko@zooko.com**20080313154513] [Add tests and doc to show that the intent is that private keys produced with zooko@zooko.com**20080313151735 generate_from_seed() are fully determined by the seed. This is not correctly implemented currently, so these tests will fail. ] [TAG pycryptopp-0.4.0 zooko@zooko.com**20080310054134] [setup: edit setup_requires and metadata a bit zooko@zooko.com**20080310054036] [rsa: fix error in doc of precondition, and fix a bit of indentation zooko@zooko.com**20080307213216] [add elliptic curve digital signatures zooko@zooko.com**20080307213046 Nice small public keys -- either 192 bits or 521 bits, and fairly small signatures -- either 384 bits or 1042 bits -- with relatively strong estimated security. ] [tests: remove some unused imports noticed by pyflakes zooko@zooko.com**20080306205629] [quiet some pyflakes warnings about unused imports in our __init__.py zooko@zooko.com**20080306205255] [setup: if "flakes" is an argument then setup_require setuptools_pyflakes zooko@zooko.com**20080306203354] [sha256: use spaces instead of tabs for indentation, and decref a temporary copy of digest when done with it (fixes a memory leak) zooko@zooko.com**20080214180953] [TAG pycryptopp-0.3.0 zooko@zooko.com**20080213204833] [fix warnings about string literals being used as char*'s when they should be used as const char*'s zooko@zooko.com**20080213204127] [fix passing pointers to Py_ssize_t to Python zooko@zooko.com**20080213204001 Note that valgrind says that on amd64, Python doesn't completely initialize its Py_ssize_t's! That's why we initialize those values to 0. ] [fix docstring for SHA256.hexdigest() zooko@zooko.com**20080213203856] [AES: fix bug in passing pointers to length to Python on amd64, add optional IV != 0, add lots of test vectors from NIST and from Niels Ferguson of Microsoft zooko@zooko.com**20080213175936] [sha256: add hexdigest(), fix bug in passing pointer to length to Python on amd64 zooko@zooko.com**20080213175822] [setup: try to link to "libcryptopp" first, then fall back to "libcrypto++" zooko@zooko.com**20080130190118 This is in order to accomodate versions of the Debian package of Crypto++ >= 5.5-5 (2007-11-11) and < 5.5.2-1 (2007-12-11). Once enough people have >= 5.5.2-1 (2007-12-11), we can remove all this conditional stuff in setup.py entirely and just link to "crypto++" unconditionally. ] [tests: for test_sha256, add test vectors including Monte test from the NIST SHS programme zooko@zooko.com**20080130220246] [docs: add recommendation for Ferguson&Schneier, and big fat warning about symmetric encryption key management, and suggested key generation function zooko@zooko.com**20080130002732] [setup: add setuptools_darcs-1.2.0 zooko@zooko.com**20080128144535] [setup: remove old settools_darcs-1.1.6 zooko@zooko.com**20080128144523] [setup: use new improved ez_setup.py, setup_require darcsver and setuptools_darcs differently zooko@zooko.com**20080128144508] [setup: add cli.exe back into the setuptools bootstrap egg so that it will work on Windows zooko@zooko.com**20080128022106 Also add the gui.exe just in case. ] [bundle new version of setuptools_darcs in misc/dependencies zooko@zooko.com**20080112210227] [bundle new version of darcsver in misc/dependencies zooko@zooko.com**20080112210213] [remove old version of darcsver from misc/dependencies zooko@zooko.com**20080112210102] [add misc/dependencies/darcsver-1.0.0.tar zooko@zooko.com**20080112194456] [fix warnings about using %d to printf a size_t zooko@zooko.com**20080114031749 %z is the standard way to print a size_t ] [setup: setup_require setuptools_darcs only if the setuptools command is a dist command zooko@zooko.com**20080114013744] [setup: setup_require darcsver only if the setuptools command is "./setup.py darcsver" zooko@zooko.com**20080114013722] [setup: update the search for a Crypto++ library to build against zooko@zooko.com**20080114013347] [bump copyright year stamp zooko@zooko.com**20080112210349] [look for include/cryptopp before include/crypto++, since Debian has fixed their packaging to provide both include/cryptopp and libcryptopp zooko@zooko.com**20080112210316] [simpler invocation of ez_setup.py zooko@zooko.com**20080112210247] [tweak in-line comment in __init__.py zooko@zooko.com**20080112210151] [remove old version of setuptools_darcs from misc/dependencies zooko@zooko.com**20080112210139] [update licensing docs zooko@zooko.com**20080112210121] [remove old python-2.5-specific setuptools egg from misc/dependencies/ zooko@zooko.com**20080112205913] [tweak ez_setup.py to look for setuptools in misc/dependencies instead of pypi.python.org and to omit the python version number zooko@zooko.com**20080112205855] [repackage setuptools egg to be Python-version-independent zooko@zooko.com**20080112205838] [include TGPPL in HTML format instead of text format zooko@zooko.com**20080112205556] [simplify requirement on setuptools version zooko@zooko.com**20080112194550] [update README.txt zooko@zooko.com**20080112194542] [refactor setup_requires zooko@zooko.com**20080112194518] [docs: add warning about strange failure if you install Crypto++ into /usr on Mac OS X zooko@zooko.com**20080101062958] [setup: prepend os.getcwd() to misc/dependencies zooko@zooko.com**20071230025552 This is actually useful because if for example you invoke "easy_install ~/some/path/setup.py", then the CWD will be ~/some/path when the first part of setup.py is evaluated, but will change to something else later, so the misc/dependencies will not be found unless the CWD is prepended. ***END OF ] [TAG pycryptopp-0.2.10 zooko@zooko.com**20071222045915] Patch bundle hash: 335287d6590e00787b31485509e11a9117e52872