1 2 3 TODO for Crypt::RSA 4 $Id: TODO,v 1.25 2001/05/20 23:37:42 vipul Exp $ 5 6------------------------------------------------------------------------------- 7P No Task Status 8- -- ------------------------------------------------ ------------------------ 9 1 Implement "Optimal Asymetric Encryption" (OAEP) Jan 01 2001 0130 10 + oaep_encode() Dec 25 2000 0000 11 + oaep_decode() Dec 25 2000 0025 12 + oaep_encrypt() Dec 25 2000 0100 13 + oaep_decrypt() Dec 25 2000 0100 14 + implement octet_xor() Dec 26 2000 0245 15 2 oaep_encrypt()/decrypt() should work with Jan 01 2001 0130 16 moduli of lengths that are not multiples 17 of 8. 18 3 SSLv3 compatability Postponed. 19* 4 Read/write SSH public keys 20 ::Key::Public::SSH should derive from 21 ::Key::Public and override its read() and 22 write() 23* 5 Choose a large `e' with Maurer's method 24 6 Move rsaparams() over to Crypt::RSA::Key Not required. 25 7 Implement i2osp(), os2ip(), mgf1() Dec 21 2000 0425 26 8 Find & study PKCS #7 specification Feb 19 2001 2345 27 9 Read/write PGP 2.6i/5.x and GPG keys 28 (Crypt::OpenPGP should do this, not us.) 29 10 A comprehensive test suite Mar 03 2001 1900 30 11 Implement decryption using the Chinese Apr 07 2001 1300 31 Remainder Theorem (in core_decrypt()). 32 (Patch by Benjamin Trott) 33* 12 Resolve endianness issues. 34 13 Move OAEP code to Crypt::RSA::EME::OAEP Feb 12 2001 2000 35 14 Ensure n is exactly specified number of Mar 06 2001 2315 36 bits 37* + Modify Crypt::Primes::maurer() to accept 38 an integer range instead of bitsize. 39 15 Better exception handling in oaep_decrypt() Not required. 40 Cloak calls to os2ip/ip2os and core_decrypt() 41 in evals and croak with "Decryption Error" 42 if an exception is raised in these methods 43 (Suggestion by magister on #perl: 44 Use DBI's error handling method) 45 16 Add support for Math::Pari bigints to Apr 19 2001 1200 46 Convert::ASN1. <ben@rhumba.pair.com> 47 17 Add support for DER encoding in Convert::ASN1. Postponed. 48 18 Replace mod2int with Math::Pari::lift() Feb 14 2001 0300 49 19 Implement core_sign() and core_verify() Feb 12 2001 1330 50 + clock calls to core_encrypt()/decrypt() 51 in evals and return appropriate error 52 messages. 53 19 Signature with appendix Crypt::RSA::PKCS15 Postponed. 54 (Requires ASN1) 55 20 Signature with appendix (randomized) Feb 19 2001 2030 56 Crypt::RSA::SSA::PSS 57 21 Split the code into modules listed in Feb 14 2001 2100 58 MANIFEST 59 + Update tests. Feb 14 2001 2100 60 22 Use the DBI error handling method. Feb 15 2001 2300 61 23 Plaintext and key material should Feb 15 2001 2300 62 we wiped out from memory at error 63 and DESTROY() 64 + Implement Crypt::RSA::Key::DESTROY Mar 03 2001 1500 65 24 Move mgf1 to Crypt::RSA::DataFormat Feb 15 2001 2100 66 and wrap in a method in 67 EME::OAEP, SSA::PSS 68 25 Rename Cyphertext to Ciphertext in Mar 06 2001 2315 69 Crypt::RSA::Primitives::decrypt() 70 26 Restructre Key modules into Mar 02 2001 2100 71 Crypt::RSA::Key 72 Crypt::RSA::Key::Public 73 %key = ( version => ..., 74 owner => [], 75 ownersig => [], 76 type => type 77 size => size in bits of n, 78 n => modulus 79 e => exponent 80 ), 81 Crypt::RSA::Key::Private 82 Same as public key and: 83 %key = ( 84 __d => decryption exp, 85 __p => prime, 86 __q => prime, 87 ) 88* 27 $key->check before operations 89 n == p*q 90 d*e mod p == 1 91 d*e mod q == 1 92 p*u mod q == 1 93 94 28 Add support for version specific operations Mar 31 2001 0400 95 in EME::* and SSA::*. Version number 96 should be provided at new() 97 29 Crypt::RSA should be able to use non-native Apr 29 2001 0400 98 key formats through a mechanism similar to 99 variable EME/SSA support. 100 30 Consider renaming EME to ES and SSA to SS. Mar 31 2001 1500 101 (Renamed EME to ES, SSA to SS) 102* 31 Re-orgazine Crypt::RSA::Primitives. 103 core_encrypt|decrypt|sign|verify() should be 104 replaced with rsaop() that uses the encryption 105 exponent or the decryption exponent depending 106 on the type of key passed. Also implement 107 decryption with CRT here. 108 32 Write Crypt::RSA::EME|SSA::RSAREF2 Apr 06 2001 1930 109 (as ::ES/SS::PKCS1v15) 110* 33 Write Crypt::RSA::EME|SSA::Textbook 111 34 Write a note in documentation on insecurity of Apr 30 2001 0300 112 Textbook RSA. Also explain the concept of 113 Schemes. 114* 35 Remove use lib 'locallib' from all modules 115 in production version. (nhuillard@ghs.fr) 116* 36 Fix parameterization in ::ES::OAEP and 117 ::ES::PSS 118 119------------------------------------------------------------------------------- 120 121LEGEND 122 - Date in the Status field indicates the task was completed on that date. 123 - `*' in P field distinguishes pending tasks. 124 - `+' before the task description indicates a sub-task. 125 126 127