Everybody. Please check out the hints on the website for the final project. This email will be included as a hint on the website. Also, I'm answering a question about the JCE project: > Cipher c = new Cipher.getInstance(alg); > > Is alg the name of a class file? alg is a name that is listed in one of the links that are now up > As for specific implementation, we need to implement DESCBCJCE.java and > PGPJCE.java, is alg = "DESCBCJCE" as an example? No. You'd have to use a different input string. Part of the project is for you to figure out what are the valid input strings. > Can you elaborate more on the structure of the 2 files. It should work with webcrypt in the usual fashion. For DESCBCJCE the user eners a string that is used by JCE to generate a key for DES (with password based encryption). The output after encryption should be hexadecimal. For PGPJCE it is recommended that you use the code created in DESCBCJCE. It is also recommended that you create an RSAJCE Kernel -the point is for you to learn how to create a public key based cipher with JCE. But for less credit, you can also use your previous RSA Kernel. As in RSA, the public user enters a key of the form PUBLIC_N_e. Then, secureRandom() is used to create an UNSEEDED random string of appropriate size (should be less than N, but not too much less) This random string is then encrypted using N and e and becomes the first line of text -and is represented as a BigInteger, not in hex. Thereafter, DESCBCJCE is used to encrypt the plaintext with the hidden random string. For decryption, the user enters either: PRIVATE_N_e or (if you can do it, you don't have to for full credit and may not be able to with RSAJCE!!!!) PRIVATE_N_d. Then the first line is read, RSA-decrypted, used to generate the DES cipher, and the rest of the file is decrypted using the uncovered DES seed. NOTE: SecureRandom is good enough that calling it UNSEEDED should still result in pretty good privacy. ^^^^^^ But, if you are skeptical, you may instead let the public user enter the key of type: PUBLIC_N_e_DESseed where DESseed is used to generate the cipher. -Zeph