<?xml version = "1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml">

<head>
	<title>NDN Signature - Binary</title>

	<script type="text/javascript" src="../Helper.js"></script>

	<script type="text/javascript">
		function sign(){
			
			var input = document.getElementById('contentname').value;
			
			var  _PEM_PRIVATE_KEY_STRING_ = document.getElementById('privateKey').value;
			
			var rsa = new RSAKey();
			
			rsa.readPrivateKeyFromPEMString(_PEM_PRIVATE_KEY_STRING_);
			
			var hSig = rsa.signString(input, "sha256");
			
			document.getElementById('result').innerHTML = hSig;

		}
		function verify(){
			var input = document.getElementById('contentname').value;
			
			var signature = document.getElementById('result').innerHTML;
			
			var  _PEM_X509CERT_STRING_ = document.getElementById('certificate').value;
			
			var x509 = new X509();
			
			x509.readCertPEM(_PEM_X509CERT_STRING_);
			
			var result = x509.subjectPublicKeyRSA.verifyString(input, signature);
			
			if(result)
				document.getElementById('result').innerHTML = 'SIGNATURE VALID';
			else
				document.getElementById('result').innerHTML = 'SIGNATURE INVALID';

			
		}

	</script>
	

</head>
<body >
	<form>
		
		<input id="privateKey" type="hidden" value="-----BEGIN RSA PRIVATE KEY-----
			MIICWwIBAAKBgQDRhGF7X4A0ZVlEg594WmODVVUIiiPQs04aLmvfg8SborHss5gQ
			Xu0aIdUT6nb5rTh5hD2yfpF2WIW6M8z0WxRhwicgXwi80H1aLPf6lEPPLvN29EhQ
			NjBpkFkAJUbS8uuhJEeKw0cE49g80eBBF4BCqSL6PFQbP9/rByxdxEoAIQIDAQAB
			AoGAA9/q3Zk6ib2GFRpKDLO/O2KMnAfR+b4XJ6zMGeoZ7Lbpi3MW0Nawk9ckVaX0
			ZVGqxbSIX5Cvp/yjHHpww+QbUFrw/gCjLiiYjM9E8C3uAF5AKJ0r4GBPl4u8K4bp
			bXeSxSB60/wPQFiQAJVcA5xhZVzqNuF3EjuKdHsw+dk+dPECQQDubX/lVGFgD/xY
			uchz56Yc7VHX+58BUkNSewSzwJRbcueqknXRWwj97SXqpnYfKqZq78dnEF10SWsr
			/NMKi+7XAkEA4PVqDv/OZAbWr4syXZNv/Mpl4r5suzYMMUD9U8B2JIRnrhmGZPzL
			x23N9J4hEJ+Xh8tSKVc80jOkrvGlSv+BxwJAaTOtjA3YTV+gU7Hdza53sCnSw/8F
			YLrgc6NOJtYhX9xqdevbyn1lkU0zPr8mPYg/F84m6MXixm2iuSz8HZoyzwJARi2p
			aYZ5/5B2lwroqnKdZBJMGKFpUDn7Mb5hiSgocxnvMkv6NjT66Xsi3iYakJII9q8C
			Ma1qZvT/cigmdbAh7wJAQNXyoizuGEltiSaBXx4H29EdXNYWDJ9SS5f070BRbAIl
			dqRh3rcNvpY6BKJqFapda1DjdcncZECMizT/GMrc1w==
			-----END RSA PRIVATE KEY-----"></input>
		
		
		<input id="certificate" type="hidden" value="-----BEGIN CERTIFICATE-----
			MIIBvTCCASYCCQD55fNzc0WF7TANBgkqhkiG9w0BAQUFADAjMQswCQYDVQQGEwJK
			UDEUMBIGA1UEChMLMDAtVEVTVC1SU0EwHhcNMTAwNTI4MDIwODUxWhcNMjAwNTI1
			MDIwODUxWjAjMQswCQYDVQQGEwJKUDEUMBIGA1UEChMLMDAtVEVTVC1SU0EwgZ8w
			DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANGEYXtfgDRlWUSDn3haY4NVVQiKI9Cz
			Thoua9+DxJuiseyzmBBe7Roh1RPqdvmtOHmEPbJ+kXZYhbozzPRbFGHCJyBfCLzQ
			fVos9/qUQ88u83b0SFA2MGmQWQAlRtLy66EkR4rDRwTj2DzR4EEXgEKpIvo8VBs/
			3+sHLF3ESgAhAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAEZ6mXFFq3AzfaqWHmCy1
			ARjlauYAa8ZmUFnLm0emg9dkVBJ63aEqARhtok6bDQDzSJxiLpCEF6G4b/Nv/M/M
			LyhP+OoOTmETMegAVQMq71choVJyOFE5BtQa6M/lCHEOya5QUfoRF2HF9EjRF44K
			3OK+u3ivTSj3zwjtpudY5Xo=
			-----END CERTIFICATE-----"></input>

		Please Enter a Text to sign:<br /><input id="contentname" type="text" name="CONTENTNAME" value="ª²s\nXñ­å àÄÕk...\?8ï����µhello\n�" /> <br />
	
	</form>
	<button onclick="sign()">Sign</button>
	<button onclick="verify()">Verify</button>
	
	

		<p id="result"></p>

</body>
</html>