summaryrefslogtreecommitdiff
path: root/TODO
diff options
context:
space:
mode:
authorakuchling <akuchling@rivest.dlitz.net>2002-04-03 23:33:14 -0700
committerakuchling <akuchling@rivest.dlitz.net>2002-04-03 23:33:14 -0700
commitf62916d86a8ebae52102583556080c387894182e (patch)
treeedb9ff21a5bd1ec9110149dcaa6954444a3a6f22 /TODO
parentd0371286ed32131e809e859c6d6d8a5e58db9924 (diff)
downloadpycrypto-f62916d86a8ebae52102583556080c387894182e.tar.gz
[project @ akuchling-20020404063314-df7c131904544253]
[project @ 2002-04-03 22:33:14 by akuchling] Update file
Diffstat (limited to 'TODO')
-rw-r--r--TODO31
1 files changed, 8 insertions, 23 deletions
diff --git a/TODO b/TODO
index 0ab5b14..b114506 100644
--- a/TODO
+++ b/TODO
@@ -1,7 +1,12 @@
-* Remove the export/not-for-export cruft.
+Document the functions and macros for adding a new algorithm
+Hash functions:
+ hash_init(), hash_copy(), DIGEST_SIZE, hash_update(), hash_digest()
-* Resync with mxCrypto/amkCrypto
+* Restore RC5, which needs additional keyword arguments
+
+* Look at the C code and modernize it to the current memory APIs,
+ class-based exceptions, etc
* Break backward compatibility. The interfaces were invented around
1995, back when I was younger and dumber. I'd like to clean them up,
@@ -14,29 +19,9 @@ packages and classes, or whatever.
Python comes with them? We could just change Crypto/Hash/MD5.py to
just 'from md5 import *', and ditto for Crypto/Hash/SHA.py.
-* Get rid of the clumsily generated source files and just keep
-everything simple. For hash modules, this would be
-straightforward. However, I don't know how to fix block encryption
-modules properly. The original purpose of autogenerating everything
-was to re-use the tricky and error-prone code for the various feedback
-modes, while hopefully avoiding the overhead of doing a C function
-call on every block.
-
-Maybe the C function overhead isn't worth saving. If so, then perhaps
-we could write a single C file that implemented the feedback modes as
-a library. Individual encryption modules would then define a function
-to encrypt a single block, another for decrypting a single block, and
-then pass these functions to the code in the library. (We'd have to
-finalize a block encryption API to do that, hopefully defining it in
-the Block Encryption PEP at the same time.)
-
* Modernize the code to current standards (Distutils installation,
-docstrings, naming conventions, test suites). We might rename the
-package from 'Crypto' to 'crypto', or some other name.
+docstrings, naming conventions, test suites).
-* Discard some of the more obscure algorithms (HAVAL, Diamond,
-Skipjack, maybe CAST, too).
-
* Add AES, and possibly SHA256, SHA512.
* Public-key stuff: should it remain in this package, or should it be