- Clean up and stabilize the Crypto.PublicKey API. The previous attempt to unify fundamentally different algorithms, such as RSA and DSA, should be avoided, since it simply adds confusion. - Add algorithms: - Camellia - SHA512 - Diffie-Hellmen key agreement - Authenticated Diffie-Hellmen key agreement - RSA PKCS#1 v1.5 - RSA PKCS#1 v2 (OAEP) - Add a *complete* DSA implementation. (The current implementation doesn't do the necessary hashing, for example.) - Coverage testing - Run lint on the C code - Separate the exported API from the internal implementation details. - 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. - Merge Crypto.Cipher.XOR and Crypto.Util.strxor somehow - Document our experiences with RandomPool and why it was bad.