blob: 6aec8dd96bf0e5d7e5412453af868f45beba4573 [file] [log] [blame]
<!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>