summaryrefslogtreecommitdiff
path: root/TODO
blob: 8d9aba18185d0a4f0682c994400494d1618196c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49

For 1.9alpha2:
* Proofread all the error messages and improve them

* Replace Hash/HMAC.py with the hmac module in the standard library

* Look at the C code and modernize it to the current memory APIs,
  class-based exceptions, etc.

* MD5.py, SHA.py: ensure the module contents match the documented API, 
  even on old versions of Python.

* Update documentation

* Document the functions and macros for adding a new algorithm
    Hash functions:
  hash_init(), hash_copy(), DIGEST_SIZE, hash_update(), hash_digest()
    Block functions: 
  ...

* Break backward compatibility.  The interfaces were invented around
1995, back when I was younger and dumber.  I'd like to clean them up,
cruelly breaking backward compatibility where necessary, and release
the new code as version 2.0 to signal the magnitude of the changes.
While we have the chance, we can also drop useless code, rename
packages and classes, or whatever.
 
* Modernize the code to current standards (Distutils installation,
docstrings, naming conventions, test suites).  
 
* Possibly add SHA256, SHA512.

* Provide drop-in support for extensions/drivers like
amkCrypto/mxCrypto. There should be some way to register these
drivers in your package, e.g. by defining a certain subdirectory
to be a place where pycrypto looks for these drivers at startup
time.

* Add a secure PRNG (Yarrow, maybe?)

* A secret sharing module should be added to Util or Protocols.
	
Demo programs:
	Shadowing of files into X parts

Documentation:
	Document chaff/winnow better
	Add docstrings everywhere.