| <!DOCTYPE HTML> |
| <html> |
| <head> |
| <title>JavaScript Test RSA</title> |
| </head> |
| <body> |
| <h1>JavaScript Test RSA Example</h1> |
| <script type="text/javascript" src="ROM.js"></script> |
| <script type="text/javascript" src="DBIG.js"></script> |
| <script type="text/javascript" src="BIG.js"></script> |
| <script type="text/javascript" src="HASH.js"></script> |
| <script type="text/javascript" src="RAND.js"></script> |
| <script type="text/javascript" src="FF.js"></script> |
| <script type="text/javascript" src="RSA.js"></script> |
| |
| |
| <script> |
| /* test driver and function exerciser for RSA API Functions */ |
| |
| var i,j=0,res; |
| var result; |
| |
| var RFS=RSA.RFS; |
| |
| var message="Hello World\n"; |
| |
| var pub=new rsa_public_key(ROM.FFLEN); |
| var priv=new rsa_private_key(ROM.HFLEN); |
| |
| var ML=[]; |
| var C=[]; |
| var RAW=[]; |
| |
| var rng=new RAND(); |
| rng.clean(); |
| |
| for (i=0;i<100;i++) RAW[i]=i; |
| rng.seed(100,RAW); |
| |
| var start,end,time; |
| start=new Date().getTime(); |
| window.document.write("Generating public/private key pair (slow!) <br>"); |
| RSA.KEY_PAIR(rng,65537,priv,pub); |
| end=new Date().getTime(); |
| time=end-start; |
| window.document.write("Time in ms= "+time+"<br>"); |
| |
| var M=RSA.stringtobytes(message); |
| window.document.write("Encrypting test string <br>"); |
| |
| var E=RSA.OAEP_ENCODE(M,rng,null); /* OAEP encode message m to e */ |
| window.document.write("Encoding= 0x" + RSA.bytestohex(E) + "<br>"); |
| |
| start=new Date().getTime(); |
| RSA.ENCRYPT(pub,E,C); /* encrypt encoded message */ |
| end=new Date().getTime(); |
| time=end-start; |
| window.document.write("Time in ms= "+time+"<br>"); |
| |
| window.document.write("Ciphertext= 0x" + RSA.bytestohex(C) + "<br>"); |
| |
| window.document.write("Decrypting test string <br>"); |
| start=new Date().getTime(); |
| RSA.DECRYPT(priv,C,ML); |
| end=new Date().getTime(); |
| time=end-start; |
| window.document.write("Time in ms= "+time+"<br>"); |
| |
| var MS=RSA.OAEP_DECODE(null,ML); /* OAEP encode message m to e */ |
| window.document.write("Decoding= 0x" + RSA.bytestohex(MS) + "<br>"); |
| |
| window.document.write("message= "+RSA.bytestostring(MS) + "<br>"); |
| |
| RSA.PRIVATE_KEY_KILL(priv); |
| |
| </script> |
| </body> |
| </html> |