// (adapted) from http://novocode.de/doc/servlet-essentials/chapter2b.html import java.util.Vector; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class serv extends HttpServlet { //private Vector addresses; //private String filename; String temp = ""; String but=""; String plain =""; String key=""; String cipher=""; int blockSize = 0; int keySize =0; String explanation = "Rijndael
To Encrypt a message using Rijndael, type message into Plaintext, " + "type in a Key and select block size and key size (or leave as default). Click Encrypt Rijndael.
" + "To Decrypt a cipher using Rijndael, type the ciphertext into Cipher, type in a Key and press Decrypt Rijndael. " + "

El Gamal
To Encrypt a message for me, type in a message and leave the key blank (it will use my public " + "key as default).
To Encrypt a message for somebody else, type a message into Plaintext and enter their Key. " + "The public key must be of the format \"(p,g,y)\". My p,g,y values are below as an example. For further information about this work, follow this link.
" + "It is only possible to decrypt a message for me. Type in the cipher and click Decrypt El Gamal. My private key is " + "just that. Private."; public void init(ServletConfig config) throws ServletException { super.init(config); } protected void doGet(HttpServletRequest req,HttpServletResponse res) throws ServletException ,IOException{ res.setContentType("text/html"); res.setHeader("pragma", "no-cache"); PrintWriter out = res.getWriter(); // myPrint(out); but=""; plain =""; key=""; cipher=""; temp = "doGet"; myPrint(out); } public void myPrint(PrintWriter out){ out.print("Encryption Servlet"); out.print("

"); out.print("

Security Page

"); out.print("

Instructions:

"); //out.print("

To Follow....

"); out.print(explanation); out.print("

My public key is as follows (for El Gamal):"); out.print("
P: 14893003337626352152463254152616458181260144281"); out.print("
G: 4893003337626352152463254152616458181260144281"); out.print("
Y: 5260810279682188795512623296546807031696158558"); out.print(""); out.print(" "); out.print(" "); out.print(" "); out.print(" "); out.print(" "); out.print(" "); out.print(" "); out.print(" "); out.print(" "); out.print(" "); out.print(" "); out.print(" "); out.print("
Plain:
Key:
Cipher:
"); out.print(""); out.print(" "); out.print(" "); out.print(" "); out.print(" "); out.print(" "); out.print(" "); out.print(" "); out.print(" "); out.print(" "); out.print(" "); out.print(" "); out.print(" "); out.print(" "); out.print(" "); out.print(" "); out.print(" "); //out.print(""); //out.print(""); out.print(" "); out.print(" "); out.print(" "); out.print(" "); //out.print(""); //out.print(""); out.print(" "); out.print(" "); out.print(" "); out.print("
Rijndael Parameters
Block size:
"); out.print("
Key Size:
"); out.print("
"); out.print(temp); out.print("
"); out.close(); } protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { but=""; if(req.getParameter("ACTION").equals("Decrypt Rijndael")){ but = "dr"; } else if (req.getParameter("ACTION").equals("Encrypt Rijndael")){ but = "er"; } else if (req.getParameter("ACTION").equals("Encrypt El Gamal")){ but = "ee" ; } else if (req.getParameter("ACTION").equals("Decrypt El Gamal")){ but ="de"; } plain = req.getParameter("plain"); key = req.getParameter("key"); cipher = req.getParameter("cipher"); blockSize = new Integer(req.getParameter("blocksize")).intValue(); keySize = new Integer (req.getParameter("keysize")).intValue(); if(but == "er"){ rijnMaker r1 = new rijnMaker(blockSize/8,keySize/8); cipher = r1.encrypt(plain,key); }else if (but == "dr"){ rijnMaker r2 = new rijnMaker(blockSize/8,keySize/8); plain = r2.decrypt(cipher,key); }else if(but == "ee"){ elGamal e1 = new elGamal(); if(key.length() == 0){ cipher = e1.bigEncrypt(plain); }else { cipher = e1.bigEncrypt(plain,key); } }else if(but == "de"){ elGamal e2 = new elGamal(); plain = e2.bigDecrypt(cipher); } res.setContentType("text/html"); res.setHeader("pragma", "no-cache"); PrintWriter out = res.getWriter(); //temp = "doPost" + but + " " + but.length() + "key: " + key + "\n" + cipher; if(but.length()<2){ but=""; plain =""; key=""; cipher=""; blockSize = 0; keySize = 0; } myPrint(out); } public String getServletInfo() { return "SecurityServlet 1.0 by Cass Crockatt"; } }