Ticket #331: size-tests.patch

File size-tests.patch, 36.5 KB (added by warner, at 2008-06-17T03:08:16Z)

additional tests, including a failing "serialized verifying key is too fluffy" test

Line 
1Mon Jun 16 20:03:02 PDT 2008  warner@allmydata.com
2  * add more EC-DSA tests: serialized key sizes, corrupted signatures, wrong signatures, key uniqueness. The serialized verifier key is still too fluffy.
3
4New patches:
5
6[add more EC-DSA tests: serialized key sizes, corrupted signatures, wrong signatures, key uniqueness. The serialized verifier key is still too fluffy.
7warner@allmydata.com**20080617030302] {
8hunk ./pycryptopp/test/test_ecdsa.py 24
9+KEYSIZE_BYTES = int(KEYSIZE/8)
10+assert 8*KEYSIZE_BYTES >= KEYSIZE
11+# I think the curve is twice the size of our prime field.
12+VERIFY_KEYSIZE = KEYSIZE*2
13+VERIFY_KEYSIZE_BYTES = int(VERIFY_KEYSIZE/8)
14+assert 8*VERIFY_KEYSIZE_BYTES >= VERIFY_KEYSIZE
15+
16+SIGNATURE_SIZE = KEYSIZE*2
17+SIGNATURE_SIZE_BYTES = int(SIGNATURE_SIZE/8) # 2*((KEYSIZE+7)/8))
18+assert 8*SIGNATURE_SIZE_BYTES >= SIGNATURE_SIZE
19+
20hunk ./pycryptopp/test/test_ecdsa.py 59
21-        self.failUnlessEqual(len(result), 2*((KEYSIZE+7)/8))
22+        self.failUnlessEqual(len(result), SIGNATURE_SIZE_BYTES)
23hunk ./pycryptopp/test/test_ecdsa.py 65
24-        self.failUnlessEqual(len(sig), 2*((KEYSIZE+7)/8))
25+        self.failUnlessEqual(len(sig), SIGNATURE_SIZE_BYTES)
26hunk ./pycryptopp/test/test_ecdsa.py 109
27+        self.failUnlessEqual(len(serstr), VERIFY_KEYSIZE_BYTES)
28+        self.failUnlessEqual(serstr, verifier.serialize())
29hunk ./pycryptopp/test/test_ecdsa.py 122
30+        self.failUnlessEqual(len(serstr), KEYSIZE_BYTES)
31+        self.failUnlessEqual(serstr, signer.serialize())
32hunk ./pycryptopp/test/test_ecdsa.py 131
33+    def test_serialize_and_deserialize_both_and_test(self):
34+        signer = ecdsa.generate(KEYSIZE)
35+        verifier = signer.get_verifying_key()
36+
37+        signer_s = signer.serialize()
38+        verifier_s = verifier.serialize()
39+        new_signer = ecdsa.create_signing_key_from_string(signer_s)
40+        new_verifier = ecdsa.create_verifying_key_from_string(verifier_s)
41+
42+        msg = "This is a message"
43+        self.failUnless(verifier.verify(msg, signer.sign(msg)))
44+        self.failUnless(new_verifier.verify(msg, signer.sign(msg)))
45+        self.failUnless(verifier.verify(msg, new_signer.sign(msg)))
46+        self.failUnless(new_verifier.verify(msg, new_signer.sign(msg)))
47+
48+        self._help_test_sign_and_check(new_signer, new_verifier, "a")
49+        self._help_test_sign_and_check_random(new_signer, new_verifier)
50+        self._help_test_sign_and_failcheck(new_signer, new_verifier, "a")
51+        self._help_test_sign_and_failcheck_random(new_signer, new_verifier)
52+
53+    def flip_last_bit(self, s):
54+        return s[:-1] + chr(ord(s[-1])^0x01)
55+
56+    def test_bad_signature(self):
57+        signer = ecdsa.generate(KEYSIZE)
58+        verifier = signer.get_verifying_key()
59+        msg = "This is a message"
60+
61+        self.failUnless(verifier.verify(msg, signer.sign(msg)))
62+        # pass the wrong message to the verifier
63+        self.failIf(verifier.verify(self.flip_last_bit(msg),
64+                                    signer.sign(msg)))
65+        # sign a different message
66+        self.failIf(verifier.verify(msg,
67+                                    signer.sign(self.flip_last_bit(msg))))
68+        # corrupt the signature itself
69+        self.failIf(verifier.verify(msg,
70+                                    self.flip_last_bit(signer.sign(msg))))
71+
72+    def test_bad_key(self):
73+        signer = ecdsa.generate(KEYSIZE)
74+        signer2 = ecdsa.generate(KEYSIZE)
75+        verifier2 = signer2.get_verifying_key()
76+        msg = "This is a message"
77+
78+        self.failIf(verifier2.verify(msg, signer.sign(msg)))
79+
80+    def test_key_uniqueness(self):
81+        # simple guard against things like the debian-openssl entropy bug. On
82+        # my workstation, key generation takes 300us and serialization takes
83+        # 2us, so 10k trials will take about 3s, and has roughly a 50% chance
84+        # of catching a generator with less than 26 bits of entropy.
85+        keys = set()
86+        COUNT = 10000
87+        for i in range(COUNT):
88+            signer = ecdsa.generate(KEYSIZE)
89+            signer_s = signer.serialize()
90+            self.failIf(signer_s in keys)
91+            keys.add(signer_s)
92+
93}
94
95Context:
96
97[setup: fix metadata: url='http://allmydata.org/trac/pycryptopp'
98zooko@zooko.com**20080507133532]
99[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.
100zooko@zooko.com**20080507133408]
101[TAG pycryptopp-0.5.1
102zooko@zooko.com**20080430194322]
103[doc: release notes for pycryptopp-0.5.0 (oops)
104zooko@zooko.com**20080425162722]
105[TAG pycryptopp-0.5.0
106zooko@zooko.com**20080424164734]
107[trivial: remove unused DEBUG variable (I'm committing this only to test our automated patch management/build)
108zooko@zooko.com**20080421222753]
109[setup: add a .darcs-boringfile to enumerate files that we want "darcs whatsnew" to ignore
110zooko@zooko.com**20080403232656]
111[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
112zooko@zooko.com**20080403230126]
113[setup: update build instructions in README.txt
114zooko@zooko.com**20080401194243]
115[setup: mv aside some files from Crypto++ that we don't use
116zooko@zooko.com**20080401160117
117 This way pycryptopp compiles faster.  Also it is useful documentation to indicate some parts of Crypto++ we don't use.
118 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.
119 
120]
121[setup: build against included Crypto++ source instead of an external library
122zooko@zooko.com**20080401014129
123 This means that "./setup.py build" should work on any platform, although that has yet to be tested for most platforms.
124 Thanks to Greg Hazel for getting this working, especially with VS2003.
125 
126]
127[setup: move the Crypto++ source code and the tailor.config file into a subdirectory named "cryptopp"
128zooko@zooko.com**20080328231711
129 The tailor.config file was used to configure tailor to generate a darcs history of Crypto++ from its SVN history.
130]
131[fix infinite recursive call in IsRandomAccess (reported by ASBai)
132weidai**20080202084027]
133[add "test" target
134weidai**20080202083821]
135[previous keys were using long private exponents
136weidai**20071210002519]
137[change minimum key size to 0
138weidai**20071205142218]
139[add workaround for _interlockedbittestandset64 and _interlockedbittestandreset64
140weidai**20071205134912]
141[do not align to 16 when not needed
142weidai**20071026095049]
143[reset m_counter in TruncatedFinal
144weidai**20071023172749]
145[improve documentation
146weidai**20071023172728]
147[prepare for release
148weidai**20070925073020]
149[fix missing CRYPTOPP_API
150weidai**20070925072547]
151[don't use _rotl64 with ICC
152weidai**20070925062224]
153[fix compile with ICC 10
154weidai**20070925040817]
155[fix compile with ICC 9.1 on x64
156weidai**20070924070529]
157[fix compile for ICC 10
158weidai**20070924053559]
159[remove -msse2 since we don't use SSE2 intrinsics anymore
160weidai**20070924041629]
161[remove -msse2 since we don't use SSE2 intrinsics anymore
162weidai**20070924035217]
163[update CheckMOVCondition() according to http://eprint.iacr.org/2007/343
164weidai**20070924025422]
165[remove -msse2 since we don't use SSE2 intrinsics anymore
166weidai**20070924015743]
167[fix compile with GAS 2.15
168weidai**20070924011938]
169[remove <locale> (should save code size?)
170weidai**20070924005104]
171[- port x64 assembly code to MASM
172weidai**20070924004559
173 - improve stack unwindability on x64 for GCC by not modifying RBP/RSP registers in inline assembly
174]
175[remove branch in assert
176weidai**20070924004516]
177[- port x64 assembly code to MASM
178weidai**20070924004357
179 - improve stack unwindability on x64 for GCC by not modifying RBP/RSP registers in inline assembly
180]
181[fix extraneous SSE2 compiler option
182weidai**20070924003506]
183[fix compile with fix compile for for STLport 5.1.3 and MSVC 2005
184weidai**20070915023857]
185[fix compile for for STLport 5.1.3 and MSVC 6 SP5
186weidai**20070912022848]
187[fix compile with Borland C++Builder 2007
188weidai**20070816225953]
189[fix warning on MSVC Orcas Beta 2
190weidai**20070815233616]
191[fix compile for QNX
192weidai**20070815015501]
193[fix gcc compile errors and warnings
194weidai**20070814005543]
195[fix valgrind issues reported by Chris Morgan
196weidai**20070813235505]
197[update version number to 5.5.2
198weidai**20070813235425]
199[fixed Whirlpool crash on Pentium 2 machines
200weidai**20070813235309]
201[fix bug reported by Jeffrey Walton
202weidai**20070813235206]
203[fixed Salsa20 initialization crash on non-SSE2 machines
204weidai**20070813234817]
205[fix possible branch prediction analysis (BPA) vulnerability
206weidai**20070813234754]
207[patch from Jody Hagins to fix gcc 3.2 compile
208weidai**20070813234655]
209[patch from Andrew Pitonyak to return factory names
210weidai**20070813234547]
211[fix linker error when compiling with MSVC 2003 and using DLL form of runtime library
212weidai**20070802011352]
213[fix crash in SSE2_Add on P4 when compiled with MSVC 6.0 with Processor Pack
214weidai**20070802011125]
215[add missing virtual destructors
216weidai**20070601172927]
217[fix compile for VC6 without processor pack, and GCC 4 on MINGW
218weidai**20070601172831]
219[prepare for release
220weidai**20070526033730]
221[fix bug on 32-bit big-endian machines
222weidai**20070524202430]
223[update manual
224weidai**20070505203531]
225[prepared for release
226weidai**20070505203517]
227[cleanup
228weidai**20070505201852]
229[revert to int return value for Add and Sub
230weidai**20070505193751]
231[fix x64 options and warnings
232weidai**20070505190338]
233[fix VC 6 compile
234weidai**20070505190305]
235[fix compile on Turbo C++ 2006
236weidai**20070505182944]
237[update files and options
238weidai**20070505152940]
239[optimize for speed
240weidai**20070505152734]
241[optimize ECB/CBC modes
242weidai**20070505152605]
243[work around GCC bug for x64
244weidai**20070505152512]
245[fix compile with ICC for ia64
246weidai**20070505041236]
247[don't use -msse2 for GCC 3.3
248weidai**20070505025727]
249[fix compile with Sun CC
250weidai**20070505021511]
251[add -Wa,--divide for Solaris
252weidai**20070505012144]
253[add debug printout
254weidai**20070505010316]
255[fix bug in UnalignedPutWordNonTemplate
256weidai**20070505010052]
257[fix bug in assembly
258weidai**20070504231804]
259[VMAC draft-krovetz-vmac-01
260weidai**20070504214138]
261[fix compile on Mac OS X
262weidai**20070504204632]
263[fix warning with Intel compiler
264weidai**20070504195616]
265[remove extraneous -D__pic__
266weidai**20070504195534]
267[use byteswap.h only on Linux
268weidai**20070504194737]
269[fix DLL compile
270weidai**20070504193010]
271[revert -ffunction-sections -fdata-sections
272weidai**20070504191952]
273[fix g_cacheLineSize for Pentium 3
274weidai**20070504191901]
275[fix compile
276weidai**20070504161342]
277[fix warning
278weidai**20070504160058]
279[use Weak1 namespace
280weidai**20070504153842]
281[add IncorporateEntropy and GenerateIntoBufferedTransformation to RNG interface
282weidai**20070504153832]
283[increase buffer sizes
284weidai**20070504153812]
285[reduce risk of reusing random numbers after VM state rollback
286weidai**20070504153746]
287[fix compile
288weidai**20070504153615]
289[remove extraneous function
290weidai**20070504153538]
291[speed up xorbuf
292weidai**20070504153317]
293[change PutBlock to default to non-aligned access
294weidai**20070504153255]
295[change default FIPS RNG to use AES instead of DES_EDE
296weidai**20070504153146]
297[use Weak1 namespace
298weidai**20070504152516]
299[add word128
300weidai**20070504152508]
301[fix compile for x64, DLL and VC 6
302weidai**20070504152409]
303[enable -O2 and -march=native -mtune=native
304weidai**20070504151223]
305[use Weak1 namespace
306weidai**20070504151050]
307[add/remove files
308weidai**20070504150852]
309[reduce risk of random number reuse after VM rollback
310weidai**20070504150458]
311[update to draft-01
312weidai**20070504150307]
313[move ARC4 into Weak namespace
314weidai**20070416212741]
315[fix compile on Sun CC
316weidai**20070416054037]
317[fix compile with Intel compiler
318weidai**20070416025159]
319[CPU feature detection and assembly helpers
320weidai**20070416004550]
321[MASM code for x64
322weidai**20070416004521]
323[IV_REQUIREMENT changes
324weidai**20070416004317]
325[clarify comments
326weidai**20070416004111]
327[add 64-bit mangled names of new and delete
328weidai**20070416004048]
329[Test: Encode now tests decryption also
330weidai**20070416003956]
331[changes to support optimizations
332weidai**20070416003909]
333[fix bug decoding optional parameters
334weidai**20070416003829]
335[remove HAVAL, MD5MAC, XMACC. add Sosemanuk
336weidai**20070416003744]
337[move MD2, MD4, MD5, PanamaHash, WAKE_CFB into the namespace 'Weak'
338weidai**20070416003651]
339[move sbox macros to serpentp.h for Sosemanuk
340weidai**20070416003540]
341[reduce memory usage. move sbox macros to serpentp.h
342weidai**20070416003510]
343[rename STRUCTURED_IV to UNIQUE_IV. assert correct cipher direction
344weidai**20070416003413]
345[optimizations
346weidai**20070416003309]
347[handle new FIPS test vector format
348weidai**20070416003227]
349[removed UnalignedPutWord
350weidai**20070416003122]
351[update version number
352weidai**20070416003054]
353[rename STRUCTURED_IV to UNIQUE_IV. Sun CC workaround
354weidai**20070416002947]
355[add DigestSize and L1KeyLength
356weidai**20070416002640]
357[ICC workaround
358weidai**20070416002605]
359[changed hash functions for m command
360weidai**20070416002513]
361[reorganized aligned allocator
362weidai**20070416002235]
363[optimizations
364weidai**20070416002107]
365[removed UnalignedPutWord
366weidai**20070416002057]
367[MMX/SSE2 optimizations
368weidai**20070416001832]
369[fix compile with ICC
370weidai**20070416001632]
371[fix missing function
372weidai**20070416001534]
373[fix comment typo
374weidai**20070416001346]
375[move MD2, MD4, MD5, PanamaHash, WAKE_CFB into the namespace 'Weak'
376weidai**20070416001332]
377[OpenMP
378weidai**20070416001305]
379[optimizations
380weidai**20070416001203]
381[move MD2, MD4, MD5, PanamaHash, WAKE_CFB into the namespace 'Weak'
382weidai**20070415234659]
383[remove HAVAL, MD5-MAC, XMAC
384weidai**20070415234500]
385[MMX/SSE2 optimizations
386weidai**20070415234444]
387[benchmark key and IV setup. remove low security benchmarks
388weidai**20070415234258]
389[remove HAVAL, MD5-MAC, XMAC
390weidai**20070415230158]
391[MMX/SSE2 optimizations
392weidai**20070415230027]
393[optimized Camellia and added defense against timing attacks
394weidai**20070415225958]
395[enabled optimization flags by default in GNUmakefile
396weidai**20070415225929]
397[move MD2, MD4, MD5, PanamaHash, WAKE_CFB into the namespace 'Weak'
398weidai**20070415225912]
399[added blinding and error checking for RW private key operation
400weidai**20070415225824]
401[SSE2 optimizations
402weidai**20070415225431]
403[add VMAC draft-krovetz-vmac-00
404weidai**20070415225341]
405[add Sosemanuk
406weidai**20070415225219]
407[new test vectors. 'Test: Encrypt' now tests decryption also
408weidai**20070415225112]
409[fix threading bug
410weidai**20070203132909]
411[add missing file for Borland C++
412weidai**20061225081700]
413[fix compile on MSVC2002 and MSVC6 without Processor Pack
414weidai**20061225081019]
415[adding missing BlockSize()
416weidai**20061225080348]
417[adding missing AlgorithmName()
418weidai**20061225080332]
419[update copyright year
420weidai**20061222150813]
421[prepare for release
422weidai**20061222150538]
423[fix compile for MSVC .NET 2002
424weidai**20061222150342]
425[fix compile for MSVC .NET 2003
426weidai**20061222084449]
427[fix SunCC compile
428weidai**20061221180223]
429[fix for DLL-import configuration
430weidai**20061221013512]
431[fix compile with Sun CC 64-bit
432weidai**20061220152002]
433[update version number, port to Sun C++ 5.8
434weidai**20061218023433]
435[add V (version) option
436weidai**20061218021514]
437[remove CodeWarrior project file
438weidai**20061218021401]
439[remove old code
440weidai**20061214125344]
441[port to Borland C++Builder 2006
442weidai**20061214120333]
443[port to Borland C++Builder 2006
444weidai**20061214114139]
445[implement AlgorithmName() for hash and signature filters
446weidai**20061214105831]
447[add Borland C++ project files
448weidai**20061214093131]
449[fix BlockingRng for OpenBSD
450weidai**20061213040809]
451[use egrep instead of grep
452weidai**20061212084219]
453[remove GCC warning
454weidai**20061212071230]
455[fix incorrect type in UncheckedSetKey parameter
456weidai**20061211091819]
457[minor style fix
458weidai**20061211091756]
459[update Readme
460weidai**20061211091705]
461[fix ISX86
462weidai**20061211091553]
463[improved method of disable inlining, fix compile on NetBSD
464weidai**20061211091312]
465[fix compile with MSVC 2005 SP1 beta
466weidai**20061210235009]
467[port to GCC 4, reorganize implementations of SetKey
468weidai**20061210021223]
469[add Salsa20 cipher
470weidai**20061209171813]
471[cygwin workaround
472weidai**20061209171741]
473[VC2005 workaround
474weidai**20061209171605]
475[updated FIPS algorithm tests
476weidai**20061209171538]
477[fix terminator param being ignored
478weidai**20061209171214]
479[add -pthread and allow make install
480weidai**20061209170901]
481[Updated to Whirlpool version 3.0
482weidai**20061209170813]
483[fix compile on Unix
484weidai**20060906090444]
485[remove extraneous code
486weidai**20060906090422]
487[fix self-test when installed into unicode paths
488weidai**20060906051049]
489[remove extraneous file
490weidai**20060901115918]
491[remove compiler warnings
492weidai**20060901103956]
493[fix bug in last checkin
494weidai**20060810031105]
495[change DLL integrity self-test to allow DLL to be Authenticode signed
496weidai**20060730171501]
497[update version
498weidai**20060730155829]
499[fix bug in HexDecoder::IsolatedInitialize (thanks to BaiYang)
500weidai**20060723103800]
501[BlockAlignment()
502weidai**20060717145218]
503[optimization in CBC_Decryption::ProcessBlocks()
504weidai**20060717145120]
505[fix StaticAlgorithmName() for CTR mode
506weidai**20060717145043]
507[additional AES test vectors
508weidai**20060717144951]
509[AES timing attack countermeasures
510weidai**20060717144859]
511[additional AES test vectors
512weidai**20060717144335]
513[fix SocketSender::EofSent
514weidai**20060609071506]
515[fix warning
516weidai**20060609063146]
517[improve Integer initialization
518weidai**20060609062822]
519[add missing #include
520weidai**20060609062744]
521[fix warning on VC6
522weidai**20060413033726]
523[merge in changes by denis bider and fix compile on gcc 3.4.4 and MSVC 6
524weidai**20060406212025]
525[fix Integer::Encode
526weidai**20060317003811]
527[fix MSVC 2005 warnings
528weidai**20060313132641]
529[add missing Ref() function
530weidai**20060313132626]
531[upgrade project files to MSVC 2005 and add x64 platform
532weidai**20060130140054]
533[fix TYPE_OF_SOCKLEN_T for Darwin
534weidai**20060130135916]
535[remove unneeded warning options
536weidai**20050905221540]
537[fix inline doc
538weidai**20050905221417]
539[port to GCC 4
540weidai**20050905214343]
541[remove extraneous SCC info
542weidai**20050905213950]
543[update inline doc
544weidai**20050905210256]
545[remove warning with MSVC .NET 2005
546weidai**20050903153529]
547[fix compile with MSVC 6 without Processor Pack
548weidai**20050903153212]
549[add missing files
550weidai**20050903153029]
551[fix ECP curve BER decode
552weidai**20050902222353]
553[add missing file
554weidai**20050713021950]
555[update Readme
556weidai**20050713021922]
557[update documentation version
558weidai**20050713021910]
559[fix compile on MSVC .NET 2005
560weidai**20050713021850]
561[fix compile on MSVC 6
562weidai**20050713021834]
563[port to MSVC .NET 2005 beta 2
564weidai**20050712042332]
565[add missing project files
566weidai**20050507012704]
567[add missing files
568weidai**20050210201135]
569[changes done for FIPS-140 lab code drop
570weidai**20050120041935]
571[fix gcc 3.4.2 compile
572weidai**20041017223930]
573[changes related to the next FIPS validation
574weidai**20040903105731]
575[fix WAKE_CFB
576weidai**20040903105259]
577[add SHA-224
578weidai**20040723095711]
579[*** empty log message ***
580weidai**20040723094643]
581[remove reference to 5.1 version
582weidai**20040722020918]
583[put in release date
584weidai**20040722020839]
585[fix documentation, fix PanamaMAC, fix algorithm names
586weidai**20040722005157]
587[add Panama test vectors
588weidai**20040722003502]
589[fix compile with -msse2 on systems without memalign()
590weidai**20040718092313]
591[fix for -fPIC
592weidai**20040705214950]
593[allow compile with STLport again
594weidai**20040703012011]
595[fix bug in CFB mode test
596weidai**20040703011939]
597[update copyright year
598weidai**20040703011824]
599[prepare for 5.2 release
600weidai**20040629104921]
601[fix compile error on VC .NET 2003
602weidai**20040622115457]
603[add more release build comments
604weidai**20040620182145]
605[port to CodeWarrior 8.3
606weidai**20040620175615]
607[instantiate more templates for Darwin
608weidai**20040619121028]
609[set CXX to c++ on Darwin
610weidai**20040619114241]
611[*** empty log message ***
612weidai**20040619111659]
613[disable x86 assembly on systems without GNU as 2.10 or later
614weidai**20040619110052]
615[*** empty log message ***
616weidai**20040619091332]
617[*** empty log message ***
618weidai**20040619090135]
619[port to GCC 3.4
620weidai**20040619082809]
621[fix encoding/decoding of optional attributes
622weidai**20040619082629]
623[fix DivideByZero exception in InvertibleRSAFunction(n, e, d)
624weidai**20040503181511]
625[add CFB mode FIPS variant
626weidai**20040429160039]
627[add check for invalid RSA private key given n, e, d
628weidai**20040429144851]
629[fix typo
630weidai**20040421084017]
631[add missing #include
632weidai**20040421083959]
633[*** empty log message ***
634weidai**20040408020304]
635[avoid hash keyword
636weidai**20040408020229]
637[add minimum iteration time option
638weidai**20040408015733]
639[*** empty log message ***
640weidai**20040408013207]
641[fix extraneous FinalizeLazyPut in NetworkSink::Put2 in case of exceptions
642weidai**20040408013106]
643[add detection of uncompressibilty
644weidai**20040408012831]
645[speed up DEFLATE decompression
646weidai**20040408012803]
647[avoid using hash keyword
648weidai**20040408012348]
649[add ThreadUserTimer
650weidai**20040408012305]
651[base HMAC::AlgorithmName() on AlgorithmName() of hash function instead of StaticAlgorithmName()
652weidai**20040309124629]
653[implement AlgorithmName() for HAVAL and PanamaHash
654weidai**20040309124238]
655[fix assert when keylen not multiple of 4
656weidai**20040309124059]
657[fix "feedbackSize not used" exception
658weidai**20040309124025]
659[fix ONE_AND_ZEROS_PADDING test vector
660weidai**20040210134346]
661[fix ignoring pSelector in FirstPrime
662weidai**20040210023058]
663[fix ONE_AND_ZEROS_PADDING
664weidai**20040205033513]
665[fix bug in EncryptionPairwiseConsistencyTest
666weidai**20040205033259]
667[remove confusing angle brackets
668weidai**20040110122849]
669[reduce warnings on GCC
670weidai**20031105011103]
671[remove extraneous source control settings
672weidai**20031031024334]
673[avoid read-ahead into invalid memory in P4Optimized::Add
674weidai**20031031024042]
675[fix comment mark
676weidai**20031031023932]
677[add missing overrides for new [] and delete []
678weidai**20031031023901]
679[use CXX instead of gcc directly
680weidai**20031022210807]
681[reduce source file dependencies
682weidai**20031014094314]
683[add -lws2_32 on MinGW
684weidai**20031014094135]
685[fix bug in swap
686weidai**20031014012938]
687[fix bug (found by Michael Hunley)
688weidai**20031014012528]
689[fix multithreading bug
690weidai**20030910210114]
691[use memset instead of assignment to clear memory
692weidai**20030905202939]
693[merge changes from 5.0.4
694weidai**20030905005704]
695[add detection for OS support of SSE2
696weidai**20030905005414]
697[minor changes
698weidai**20030825214109]
699[guard against potential integer overflow in allocators
700weidai**20030804190041]
701[use -msse2 on x86_64
702weidai**20030804185615]
703[fix DLL build
704weidai**20030801042451]
705[unify GCC and MSVC multiplication code
706weidai**20030801032016]
707[add b2 command
708weidai**20030801030733]
709[prevent problems when application and Crypto++ have different NDEBUG settings
710weidai**20030731015746]
711[workaround alpha build problem
712weidai**20030731015619]
713[enable SSE2 intrinsics on GCC 3.3 or later
714weidai**20030731015453]
715[fix BTEA
716weidai**20030731015257]
717[add XTEA and BTEA
718weidai**20030730002854]
719[fix potential threading problem with initialization of static objects
720weidai**20030729011833]
721[split bench.cpp in 2 for alpha (.got subsegment exceeds 64K)
722weidai**20030729011622]
723[fix exception
724weidai**20030726083638]
725[remove gcc warnings
726weidai**20030726083540]
727[new AES test format
728weidai**20030726075840]
729[fix for x64-64
730weidai**20030726075755]
731[fix bugs in 64-bit CPU support
732weidai**20030725001552]
733[*** empty log message ***
734weidai**20030719085725]
735[fix for loop scoping
736weidai**20030719052520]
737[fix 64-bit CPU issues
738weidai**20030719051649]
739[add missing #include
740weidai**20030719035753]
741[remove Diamond2, code size reductions
742weidai**20030719034720]
743[assembly for more 64-bit CPUs
744weidai**20030719034602]
745[fix passing std::string by value
746weidai**20030719003019]
747[allow DLL to be built with VC++ .NET
748weidai**20030718213318]
749[misc changes
750weidai**20030718043530]
751[add base 32 (Frank Palazzolo)
752weidai**20030718043412]
753[fix in-memory integrity check on Win 9x
754weidai**20030718032217]
755[fix wrong error message in FIPS140_SampleApplication
756weidai**20030718031937
757 fix DLL startup problem on Windows 9x
758]
759[fix bug in ChannelSwitch::ChannelCreatePutSpace() when a channel has only one route
760weidai**20030718025249]
761[added support for using encoding parameters and key derivation parameters
762weidai**20030716015345]
763[fix for Unix
764weidai**20030711200353]
765[fix for Unix
766weidai**20030711195526]
767[fix for Unix
768weidai**20030711195402]
769[fix for Unix
770weidai**20030711194849]
771[fix for Unix
772weidai**20030711194628]
773[fix GCC compile
774weidai**20030711191635]
775[*** empty log message ***
776weidai**20030710043650]
777[merge in 5.0.4 changes (exclude DES and SHA-2 from DLL),
778weidai**20030710043423
779 attempt (failed) to build DLL with GCC
780]
781[fix resource file version number
782weidai**20030707211914]
783[fix Readme version number
784weidai**20030707210114]
785[create DLL version, fix GetNextIV() bug in CTR and OFB modes
786weidai**20030704001737]
787[remove unnecessary inline
788weidai**20030701213605]
789[add missing #include
790weidai**20030701212620]
791[auto queue node size
792weidai**20030620031254]
793[fixes/workarounds for GCC
794weidai**20030619190957]
795[fix assert
796weidai**20030619190550]
797[sync with private branch
798weidai**20030619170907]
799[fix WaitObjectContainer constructor in release build
800weidai**20030610050315]
801[detect no-wait loop in debug build
802weidai**20030610050045]
803[fix bug in SourceExhausted()
804weidai**20030610045941]
805[release memory from working set after EDC test
806weidai**20030610001906]
807[sync with private branch
808weidai**20030606023403]
809[copy fix over from 4.x branch
810weidai**20030527070811]
811[work around GCC 3.2 code generation bug
812weidai**20030518003856]
813[*** empty log message ***
814weidai**20030517072608]
815[add linker optimization flags
816weidai**20030516182740]
817[workaround for VS .NET 2003
818weidai**20030516182511]
819[add missing typename
820weidai**20030516182425]
821[add CRYPTOPP_NO_VTABLE
822weidai**20030516005353]
823[misc optimizations
824weidai**20030516000231]
825[*** empty log message ***
826weidai**20030515173653]
827[make unintentional private functions public
828weidai**20030428173705]
829[workaround for GCC
830weidai**20030426045638]
831[set this file as binary (-kb)
832weidai**20030423011558]
833[minor changes related to NESSIE algorithms
834weidai**20030423005142]
835[add missing .dat files
836weidai**20030422002908]
837[remove default NullRNG() for signing
838weidai**20030422001241]
839[fix in memory EDC test - IAT issue
840weidai**20030422001114]
841[changes for VS.NET 2003
842weidai**20030419215008]
843[improve in memory EDC
844weidai**20030418021425]
845[add new algorithms (Kevin Springle)
846weidai**20030416004847]
847[*** empty log message ***
848weidai**20030415003944]
849[fix bug in Grouper
850weidai**20030415003848
851 add RIPEMD-???, Whirlpool, Shacal2, Camellia, Two-Track MAC (Kevin Springle)
852 change ChannelSwitch to allow non-blocking input (denis bider)
853 change Redirector to allow more options (denis bider)
854 fix MaurerRandomnessTest
855 optimize MD2 (Kevin Springle)
856]
857[fix bugs in SEAL and Panama
858weidai**20030326215044]
859[minor changes
860weidai**20030325021153]
861[fix for possible bug on 64-bit platforms
862weidai**20030325020532]
863[avoid deleting adhoc.cpp during rebuild
864weidai**20030323050339]
865[STLport workaround
866weidai**20030323050256]
867[Aparajita Fishman's CW8 project file modified for version 5.1
868weidai**20030322230521]
869[fix linebreak bug
870weidai**20030321181058]
871[minor changes
872weidai**20030321075030]
873[minor changes for 5.1
874weidai**20030320221320]
875[small fixes
876weidai**20030320210910]
877[fix warnings for VC7 and GCC
878weidai**20030320203959]
879[fix bug in MeterFilter
880weidai**20030320203922]
881[GCC workaround
882weidai**20030320031853]
883[fix RW/EMSA2 standard conformance bug
884weidai**20030320030944]
885[fix inlining problem
886weidai**20030320030311]
887[various changes for 5.1
888weidai**20030320012412]
889[fix adhoc.cpp.proto custom build problem
890weidai**20030303213257]
891[increase resistance against timing attacks
892weidai**20030228212828]
893[fixed FILTER_END bug
894weidai**20030224014816]
895[fix whitespace problems
896weidai**20030224011157]
897[fix whitespace problems
898weidai**20030224010641]
899[Seek() bug fix
900weidai**20030204004024]
901[add missing #include, and fix CounterMode typedef
902weidai**20030203235945]
903[fix bug to allow base32 coding
904weidai**20030116004748]
905[add script-driven testing
906weidai**20021206220246]
907[undo addition of new files
908weidai**20021206213326]
909[bug fix
910weidai**20021203163923]
911[change default configuration to Win32 - Debug
912weidai**20021121014416]
913[remove Sapphire
914weidai**20021120224757]
915[fixed to compile with Intel compiler
916weidai**20021119204440]
917[*** empty log message ***
918weidai**20021029011103]
919[*** empty log message ***
920weidai**20021027033739]
921[*** empty log message ***
922weidai**20021027023810]
923[*** empty log message ***
924weidai**20021027021904]
925[remove Sapphire
926weidai**20021018194845]
927[bug fixes and KAT for X9.17 RNG
928weidai**20021017163228]
929[make CTS functions public
930weidai**20021015040512]
931[fix typo
932weidai**20021011202402]
933[bug fix and optimization
934weidai**20021006035813]
935[bug fixes
936weidai**20021006032316]
937[compatibility fixes for MacOS X
938weidai**20021004214504]
939[Initial revision
940weidai**20021004173141]
941[New repository initialized by cvs2svn.
942anonymous**20021004173141]
943[fix bug in initialization of AES key which, with Microsoft compilers, resulted in crashes or even wrong answers!
944zooko@zooko.com**20080328191356
945 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.
946 
947 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.
948 
949 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 .
950 
951 Lessons learned from this bug:
952 
953 1.  Bugs in pycryptopp can cause silently wrong results even when Crypto++ is correct.
954 
955 2.  But, those results are typically not silent if you run the unit tests.
956 
957 2.a.  Run the unit tests!  "python ./setup.py test"
958 
959 2.b.  We run the unit tests automatically on every check-in, using buildbot:
960 
961       http://allmydata.org/buildbot-pycryptopp/waterfall?show_events=False
962 
963 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:
964 
965       http://allmydata.org/trac/pycryptopp/browser/pycryptopp/cipher/aesmodule.cpp
966 
967]
968[publickey: remove the broken "generate deterministically from a seed" feature
969zooko@zooko.com**20080328184933]
970[tests: use sufficiently large seeds to generate keys in tests
971zooko@zooko.com**20080313154513]
972[Add tests and doc to show that the intent is that private keys produced with
973zooko@zooko.com**20080313151735
974 generate_from_seed() are fully determined by the seed.  This is not correctly
975 implemented currently, so these tests will fail.
976]
977[TAG pycryptopp-0.4.0
978zooko@zooko.com**20080310054134]
979[setup: edit setup_requires and metadata a bit
980zooko@zooko.com**20080310054036]
981[rsa: fix error in doc of precondition, and fix a bit of indentation
982zooko@zooko.com**20080307213216]
983[add elliptic curve digital signatures
984zooko@zooko.com**20080307213046
985 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.
986 
987]
988[tests: remove some unused imports noticed by pyflakes
989zooko@zooko.com**20080306205629]
990[quiet some pyflakes warnings about unused imports in our __init__.py
991zooko@zooko.com**20080306205255]
992[setup: if "flakes" is an argument then setup_require setuptools_pyflakes
993zooko@zooko.com**20080306203354]
994[sha256: use spaces instead of tabs for indentation, and decref a temporary copy of digest when done with it (fixes a memory leak)
995zooko@zooko.com**20080214180953]
996[TAG pycryptopp-0.3.0
997zooko@zooko.com**20080213204833]
998[fix warnings about string literals being used as char*'s when they should be used as const char*'s
999zooko@zooko.com**20080213204127]
1000[fix passing pointers to Py_ssize_t to Python
1001zooko@zooko.com**20080213204001
1002 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.
1003]
1004[fix docstring for SHA256.hexdigest()
1005zooko@zooko.com**20080213203856]
1006[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
1007zooko@zooko.com**20080213175936]
1008[sha256: add hexdigest(), fix bug in passing pointer to length to Python on amd64
1009zooko@zooko.com**20080213175822]
1010[setup: try to link to "libcryptopp" first, then fall back to "libcrypto++"
1011zooko@zooko.com**20080130190118
1012 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).
1013 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
1014 "crypto++" unconditionally.
1015]
1016[tests: for test_sha256, add test vectors including Monte test from the NIST SHS programme
1017zooko@zooko.com**20080130220246]
1018[docs: add recommendation for Ferguson&Schneier, and big fat warning about symmetric encryption key management, and suggested key generation function
1019zooko@zooko.com**20080130002732]
1020[setup: add setuptools_darcs-1.2.0
1021zooko@zooko.com**20080128144535]
1022[setup: remove old settools_darcs-1.1.6
1023zooko@zooko.com**20080128144523]
1024[setup: use new improved ez_setup.py, setup_require darcsver and setuptools_darcs differently
1025zooko@zooko.com**20080128144508]
1026[setup: add cli.exe back into the setuptools bootstrap egg so that it will work on Windows
1027zooko@zooko.com**20080128022106
1028 Also add the gui.exe just in case.
1029]
1030[bundle new version of setuptools_darcs in misc/dependencies
1031zooko@zooko.com**20080112210227]
1032[bundle new version of darcsver in misc/dependencies
1033zooko@zooko.com**20080112210213]
1034[remove old version of darcsver from misc/dependencies
1035zooko@zooko.com**20080112210102]
1036[add misc/dependencies/darcsver-1.0.0.tar
1037zooko@zooko.com**20080112194456]
1038[fix warnings about using %d to printf a size_t
1039zooko@zooko.com**20080114031749
1040 %z is the standard way to print a size_t
1041]
1042[setup: setup_require setuptools_darcs only if the setuptools command is a dist command
1043zooko@zooko.com**20080114013744]
1044[setup: setup_require darcsver only if the setuptools command is "./setup.py darcsver"
1045zooko@zooko.com**20080114013722]
1046[setup: update the search for a Crypto++ library to build against
1047zooko@zooko.com**20080114013347]
1048[bump copyright year stamp
1049zooko@zooko.com**20080112210349]
1050[look for include/cryptopp before include/crypto++, since Debian has fixed their packaging to provide both include/cryptopp and libcryptopp
1051zooko@zooko.com**20080112210316]
1052[simpler invocation of ez_setup.py
1053zooko@zooko.com**20080112210247]
1054[tweak in-line comment in __init__.py
1055zooko@zooko.com**20080112210151]
1056[remove old version of setuptools_darcs from misc/dependencies
1057zooko@zooko.com**20080112210139]
1058[update licensing docs
1059zooko@zooko.com**20080112210121]
1060[remove old python-2.5-specific setuptools egg from misc/dependencies/
1061zooko@zooko.com**20080112205913]
1062[tweak ez_setup.py to look for setuptools in misc/dependencies instead of pypi.python.org and to omit the python version number
1063zooko@zooko.com**20080112205855]
1064[repackage setuptools egg to be Python-version-independent
1065zooko@zooko.com**20080112205838]
1066[include TGPPL in HTML format instead of text format
1067zooko@zooko.com**20080112205556]
1068[simplify requirement on setuptools version
1069zooko@zooko.com**20080112194550]
1070[update README.txt
1071zooko@zooko.com**20080112194542]
1072[refactor setup_requires
1073zooko@zooko.com**20080112194518]
1074[docs: add warning about strange failure if you install Crypto++ into /usr on Mac OS X
1075zooko@zooko.com**20080101062958]
1076[setup: prepend os.getcwd() to misc/dependencies
1077zooko@zooko.com**20071230025552
1078 This is actually useful because if for example you invoke "easy_install
1079 ~/some/path/setup.py", then the CWD will be ~/some/path when the first part of
1080 setup.py is evaluated, but will change to something else later, so the
1081 misc/dependencies will not be found unless the CWD is prepended.  ***END OF
1082]
1083[TAG pycryptopp-0.2.10
1084zooko@zooko.com**20071222045915]
1085Patch bundle hash:
1086335287d6590e00787b31485509e11a9117e52872