Modified the test htmls to compare the output and signature of lwndn and ccnx. Function to compute the size of the ContentObject
diff --git a/js/Signature.js b/js/Signature.js
index f8f4d69..06badef 100644
--- a/js/Signature.js
+++ b/js/Signature.js
@@ -38,11 +38,11 @@
 		
 		if (decoder.peekStartElement(CCNProtocolDTags.DigestAlgorithm)) {
 			
-			if(LOG>4)console.log('DIGIEST ALGORITHM FOUND');
+			if(LOG>4)console.log('DIGEST ALGORITHM FOUND');
 			this.DigestAlgorithm = decoder.readUTF8Element(CCNProtocolDTags.DigestAlgorithm); 
 		}
 		if (decoder.peekStartElement(CCNProtocolDTags.Witness)) {
-			if(LOG>4)console.log('WITNESS FOUND FOUND');
+			if(LOG>4)console.log('WITNESS FOUND');
 			this.Witness = decoder.readBinaryElement(CCNProtocolDTags.Witness); 
 		}
 		
diff --git a/js/java_socket_bridge.js b/js/java_socket_bridge.js
index f0d745d..8e0e7c7 100644
--- a/js/java_socket_bridge.js
+++ b/js/java_socket_bridge.js
@@ -367,6 +367,20 @@
 }

 

 

+/**

+ * Computes the size in bytes of the ContentObject once encoded

+ * @param co the content object to encode

+ * @returns the size in bytes of the encoded ContentObject

+ */

+function getContentObjectSize(co){

+	var enc = new BinaryXMLEncoder();

+	

+	co.encode(enc);

+	

+	return enc.getReducedOstream().length;

+}

+

+

 

 

 function encodeToHexInterest(int){

@@ -388,7 +402,11 @@
  

 	co.encode(enc);

 	

-	var hex = toHex(enc.getReducedOstream());

+	var reducedOstream = enc.getReducedOstream();

+	

+	if(LOG>3) console.log("In encodeToHexContentObject, reducedOstream: ", reducedOstream);

+	

+	var hex = toHex(reducedOstream);

 

 	return hex;

 

diff --git a/js/security/KeyManager.js b/js/security/KeyManager.js
index 7521c84..dcf036d 100644
--- a/js/security/KeyManager.js
+++ b/js/security/KeyManager.js
@@ -3,6 +3,7 @@
 var KeyManager = function KeyManager(){
 
 	this.certificate = 
+//		"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDhfTCn2CirG4QLF1QtyvYgev0iHghrKmDRbLf1REi6nz8IvNCZ2yHdFip3nmGqie7lVNOkfeIwvHrFkNUkBnw4mLum9dxDYLhF7aSMvZzxJqcjRF8OGVLXMlp1+vVWFE+amK9xhrAnhoW44sCL6ocXG03uWFwYKClbU5XrShd3nwIDAQAB";
 			'MIIBvTCCASYCCQD55fNzc0WF7TANBgkqhkiG9w0BAQUFADAjMQswCQYDVQQGEwJK'+
 			'UDEUMBIGA1UEChMLMDAtVEVTVC1SU0EwHhcNMTAwNTI4MDIwODUxWhcNMjAwNTI1'+
 			'MDIwODUxWjAjMQswCQYDVQQGEwJKUDEUMBIGA1UEChMLMDAtVEVTVC1SU0EwgZ8w'+
@@ -15,6 +16,9 @@
 			'3OK+u3ivTSj3zwjtpudY5Xo=';
 	
 	this.privateKey =
+//		'3082025c02010002818100bd9565559c1795c049a5ef4dc9d1bc8b981b66097ea253f5d0f50f1a1df908ac4e69a797dadd2c0590944a6e849e1fbb7371c53dfddbe7802656e1d5f449b8530d9c7da8d6abebd90e06124d927f2f6c5721f1d0e49e7f6a1167caf960d96ff5afaa2d2567337772a944c8e6ceb859b25a231d9eca873574ff98225c853f38ef02030100010281805e8e57d7661e014bc1afe87644d5be1365cf2c8a49c5ced888dae1286690a1f9c6b63da7a8baad4d2d3a39117c459d9011d949c64c8a54a17efdd06fb502dbd27c27d89a6d984eddc7c41a20178ad3cf6998c82d4ca576c6e34b47d1e49d39e7f4ddb31371e2af7bf2f6ef21bf79a82132035e756b6e2ab44d4d8521dd0bb461024100efcd7cdc0f32e32565cd4980cd2f42b122b81f9ae49cce5abb4db30ae6b7c3c18433233eb5b7d870197fb4d84b128086ff6d99e0097212d37e3fa5e6511e9631024100ca638d4921c4b3a9aaa28bf1df74a140f63e16fd5c84b51f34002d4da77e23ad68a470bf7cbffd891c040fb867f181d662a769e0cedaad5e5cd7be1efc94591f02400f08f63421ebd1dc0d66f29dd5bf89d1eb5859faef2c79afaca0b18214771f19e9fcfecfb6bb0121fe2748a26b0a8cee69e3684b68ac334bf9556a44677fa07102401970b61bd140d68ca744536f0df5ad276b4c96bb365c002071faebb6ed2ceff3264a3559fca66d8a449946189a084397dd42ca0e56322ac4c7cadebd2a66c365024100c040c81d88e824684420ab98cbdf6615bb90bcedcb82081ab19375972c706d6596101b0d313017e26ec106ff814371b70db2deb00f8b25897b9b46ce8dd135d1';
+//		'30820276020100300d06092a864886f70d0101010500048202603082025c02010002818100bd9565559c1795c049a5ef4dc9d1bc8b981b66097ea253f5d0f50f1a1df908ac4e69a797dadd2c0590944a6e849e1fbb7371c53dfddbe7802656e1d5f449b8530d9c7da8d6abebd90e06124d927f2f6c5721f1d0e49e7f6a1167caf960d96ff5afaa2d2567337772a944c8e6ceb859b25a231d9eca873574ff98225c853f38ef02030100010281805e8e57d7661e014bc1afe87644d5be1365cf2c8a49c5ced888dae1286690a1f9c6b63da7a8baad4d2d3a39117c459d9011d949c64c8a54a17efdd06fb502dbd27c27d89a6d984eddc7c41a20178ad3cf6998c82d4ca576c6e34b47d1e49d39e7f4ddb31371e2af7bf2f6ef21bf79a82132035e756b6e2ab44d4d8521dd0bb461024100efcd7cdc0f32e32565cd4980cd2f42b122b81f9ae49cce5abb4db30ae6b7c3c18433233eb5b7d870197fb4d84b128086ff6d99e0097212d37e3fa5e6511e9631024100ca638d4921c4b3a9aaa28bf1df74a140f63e16fd5c84b51f34002d4da77e23ad68a470bf7cbffd891c040fb867f181d662a769e0cedaad5e5cd7be1efc94591f02400f08f63421ebd1dc0d66f29dd5bf89d1eb5859faef2c79afaca0b18214771f19e9fcfecfb6bb0121fe2748a26b0a8cee69e3684b68ac334bf9556a44677fa07102401970b61bd140d68ca744536f0df5ad276b4c96bb365c002071faebb6ed2ceff3264a3559fca66d8a449946189a084397dd42ca0e56322ac4c7cadebd2a66c365024100c040c81d88e824684420ab98cbdf6615bb90bcedcb82081ab19375972c706d6596101b0d313017e26ec106ff814371b70db2deb00f8b25897b9b46ce8dd135d1';
+//		"MIICXAIBAAKBgQC9lWVVnBeVwEml703J0byLmBtmCX6iU/XQ9Q8aHfkIrE5pp5fa3SwFkJRKboSeH7tzccU9/dvngCZW4dX0SbhTDZx9qNar69kOBhJNkn8vbFch8dDknn9qEWfK+WDZb/Wvqi0lZzN3cqlEyObOuFmyWiMdnsqHNXT/mCJchT847wIDAQABAoGAXo5X12YeAUvBr+h2RNW+E2XPLIpJxc7YiNrhKGaQofnGtj2nqLqtTS06ORF8RZ2QEdlJxkyKVKF+/dBvtQLb0nwn2JptmE7dx8QaIBeK089pmMgtTKV2xuNLR9HknTnn9N2zE3Hir3vy9u8hv3moITIDXnVrbiq0TU2FId0LtGECQQDvzXzcDzLjJWXNSYDNL0KxIrgfmuSczlq7TbMK5rfDwYQzIz61t9hwGX+02EsSgIb/bZngCXIS034/peZRHpYxAkEAymONSSHEs6mqoovx33ShQPY+Fv1chLUfNAAtTad+I61opHC/fL/9iRwED7hn8YHWYqdp4M7arV5c174e/JRZHwJADwj2NCHr0dwNZvKd1b+J0etYWfrvLHmvrKCxghR3Hxnp/P7PtrsBIf4nSKJrCozuaeNoS2isM0v5VWpEZ3+gcQJAGXC2G9FA1oynRFNvDfWtJ2tMlrs2XAAgcfrrtu0s7/MmSjVZ/KZtikSZRhiaCEOX3ULKDlYyKsTHyt69KmbDZQJBAMBAyB2I6CRoRCCrmMvfZhW7kLzty4IIGrGTdZcscG1llhAbDTEwF+JuwQb/gUNxtw2y3rAPiyWJe5tGzo3RNdE=";
 			'MIICWwIBAAKBgQDRhGF7X4A0ZVlEg594WmODVVUIiiPQs04aLmvfg8SborHss5gQ'+
 			'Xu0aIdUT6nb5rTh5hD2yfpF2WIW6M8z0WxRhwicgXwi80H1aLPf6lEPPLvN29EhQ'+
 			'NjBpkFkAJUbS8uuhJEeKw0cE49g80eBBF4BCqSL6PFQbP9/rByxdxEoAIQIDAQAB'+
diff --git a/js/test-encode-decode-ContentObject.html b/js/test-encode-decode-ContentObject.html
index a737d3f..482e5c0 100644
--- a/js/test-encode-decode-ContentObject.html
+++ b/js/test-encode-decode-ContentObject.html
@@ -88,9 +88,16 @@
 			

 			co.sign();

 			

+			var coSize = getContentObjectSize(co);

+			

 			

 			var output = encodeToHexContentObject(co);

 			

+			if(LOG>3) console.log("Size: ", coSize);

+

+			

+			document.getElementById('coSize').innerHTML = coSize;

+			

 			document.getElementById('result').innerHTML = output;

 

 		}

@@ -104,12 +111,7 @@
 			

 			var co = decodeHexContentObject(input);

 			

-			if(LOG>3)console.log('CONTENT OBJECT DECODED');

-			if(LOG>3)console.log(co);

-

-			///////////////////////////////////////

-			

-			var output ="";

+var output ="";

 			

 			if(co==-1)

 				output+= "NO CONTENT FOUND"

@@ -138,6 +140,7 @@
 					output+= "<br />";

 					output+= "<br />";

 				}

+				

 				if(co.Signature !=null && co.Signature.Signature!=null){

 					

 					output += "SIGNATURE(hex): "+ toHex(co.Signature.Signature);

@@ -147,6 +150,7 @@
 				}

 				if(co.SignedInfo !=null && co.SignedInfo.Publisher!=null && co.SignedInfo.Publisher.PublisherPublicKeyDigest!=null){

 					

+					output += "Publisher Public Key Digest:  " + co.SignedInfo.Publisher.PublisherPublicKeyDigest + "<br />";

 					output += "Publisher Public Key Digest(hex): "+ toHex(co.SignedInfo.Publisher.PublisherPublicKeyDigest);

 					

 					output+= "<br />";

@@ -169,6 +173,8 @@
 					

 					

 					var input = toString(co.rawSignatureData);

+					

+					if(LOG>2) console.log("Input: ", input, "; raw signature data: ", co.rawSignatureData);

 					 

 					

 					output += "DER Certificate: "+publickey ;

@@ -188,29 +194,33 @@
 					if(LOG>2) console.log(co.Signature.Signature);

 					

 					

-					var x509 = new X509();

+					/*var x509 = new X509();

 					

 					x509.readCertPEM(publickey);

 					

 					

 					//x509.readCertPEMWithoutRSAInit(publickey);

 

-					var result = x509.subjectPublicKeyRSA.verifyString(input, signature);

-					console.log('result is '+result);

-					/*var rsakey = new RSAKey();

+					var result = x509.subjectPublicKeyRSA.verifyString(input, signature);*/

+					//console.log('result is '+result);

 					

-					var kp = publickeyHex.slice(56,314);

+					

+					//var kp = publickeyHex.slice(56,314);

+					var kp = publickeyHex.slice(336,594)

+// 					var kp = '00bd9565559c1795c049a5ef4dc9d1bc8b981b66097ea253f5d0f50f1a1df908ac4e69a797dadd2c0590944a6e849e1fbb7371c53dfddbe7802656e1d5f449b8530d9c7da8d6abebd90e06124d927f2f6c5721f1d0e49e7f6a1167caf960d96ff5afaa2d2567337772a944c8e6ceb859b25a231d9eca873574ff98225c853f38ef';

 					

 					output += "PUBLISHER KEY(hex): "+kp ;

 					

 					output+= "<br />";

 					output+= "<br />";

 					

-					console.log('kp is '+kp);

+					if(LOG>3) console.log('kp is '+kp);

 					

-					var exp = publickeyHex.slice(318,324);

+					//var exp = publickeyHex.slice(318,324);

+					var exp = publickeyHex.slice(598,604);

+// 					var exp = '5e8e57d7661e014bc1afe87644d5be1365cf2c8a49c5ced888dae1286690a1f9c6b63da7a8baad4d2d3a39117c459d9011d949c64c8a54a17efdd06fb502dbd27c27d89a6d984eddc7c41a20178ad3cf6998c82d4ca576c6e34b47d1e49d39e7f4ddb31371e2af7bf2f6ef21bf79a82132035e756b6e2ab44d4d8521dd0bb461';

 					

-					console.log('kp size is '+kp.length );

+					if(LOG>3) console.log('kp size is '+kp.length );

 					output += "exponent: "+exp ;

 					

 					output+= "<br />";

@@ -218,10 +228,21 @@
 					

 					console.log('exp is '+exp);

 					

-					

+					var rsakey = new RSAKey();

 					rsakey.setPublic(kp,exp);

-

-				    var result = rsakey.verifyString(input, signature);*/

+				    var result = rsakey.verifyString(input, signature);

+				    

+				    var inputBis = toHex(co.Name).concat(toHex(co.SignedInfo), toHex(co.Content));

+				    

+// 				    if(LOG>0){

+// 				    	console.log("Input: ", input);

+// 				    	console.log("Input bis: ", inputBis);

+// 				    	console.log("Verify input bis: ", rsakey.verifyString(inputBis, signature));

+// 				    }

+				    

+				    //var x509 = new X509();

+				    //x509.readCertPEM(publickey);

+				    //if(LOG>0) console.log("x509 verif: ", x509.subjectPublicKeyRSA.verifyString(input, signature));

 					

 					if(result)

 						output += 'SIGNATURE VALID';

@@ -243,6 +264,8 @@
 			

 			document.getElementById('result').innerHTML = output;

 			

+			return input;

+			

 		}

 

 	</script>

@@ -257,15 +280,22 @@
 		

 		Please Enter the Content:<br />

 		

-		<textarea id="content" cols="40" rows="5" name="CONTENT" value="SUCCESS"  >SUCCESS!</textarea> 

+		<textarea id="content" cols="40" rows="5" name="CONTENT" value="SUCCESS"  >SUCCESS!</textarea>

+		

+		

 		

 	</form>

-	<button onclick="encode()">Encode</button>

-	<button onclick="decode()">Decode</button>

-	

-	

+	<div>

+		<button onclick="encode()">Encode</button>

+		<button onclick="decode()">Decode</button>

+	</div>

+		<div>

+			<p>Size: <span id="coSize"></span></p>

+			

+			<p id="result"></p>

+			

+		</div> 

 

-		<p id="result"></p>

 

 </body>

 </html>
\ No newline at end of file
diff --git a/js/test-request-data.html b/js/test-request-data.html
index 0dd63b2..582e7ea 100644
--- a/js/test-request-data.html
+++ b/js/test-request-data.html
@@ -92,6 +92,10 @@
 			//content object

 			var co = queryPrefix( ContentName );

 			

+			var coSize = getContentObjectSize(co);

+			

+			document.getElementById('coSize').innerHTML = coSize;

+			

 			///////////////////////////////////////

 			

 			var output ="";

@@ -101,6 +105,10 @@
 			else if (co==-2)

 				output+= "CONTENT NAME IS EMPTY"

 			else{

+				output += "Content: " + toString(toHex(co));

+				output+="<br />";

+				output+= "<br />";

+				

 				if(co.Name!=null && co.Name.Components!=null){

 					output+= "NAME: ";

 					

@@ -156,6 +164,12 @@
 					

 					

 					var input = toString(co.rawSignatureData);

+					

+					var inputBis = toString(co.rawSignatureData.slice(0,co.rawSignatureData.length-2).concat([0]));

+					

+					console.log("Input bis: ", toHex(co.rawSignatureData.slice(0,co.rawSignatureData.length-2).concat([0])));

+					

+					if(LOG>2) console.log("Input: ", toHex(co.rawSignatureData), "; raw signature data: ", co.rawSignatureData, "; to hex: ", toHex(co.rawSignatureData));

 					 

 					

 					output += "DER Certificate: "+publickey ;

@@ -209,7 +223,11 @@
 					rsakey.setPublic(kp,exp);

 				    var result = rsakey.verifyString(input, signature);

 				    

-				    var inputBis = toHex(co.Name).concat(toHex(co.SignedInfo), toHex(co.Content));

+				    var resultBis = rsakey.verify(inputBis, signature);

+				    

+				    console.log("result bis: ", resultBis);

+				    

+				    //var inputBis = toHex(co.Name).concat(toHex(co.SignedInfo), toHex(co.Content));

 				    

 // 				    if(LOG>0){

 // 				    	console.log("Input: ", input);

@@ -249,13 +267,19 @@
 	<form>

 		Please Enter a Content Name:<br /><input id="contentname" type="text" name="CONTENTNAME" value="/PARC/abc" /> <br />

 	</form>

-	<button onclick="run()">Request Data!</button>

+	<div>

+		<button onclick="run()">Request Data!</button>

+	</div>

 	<div >

 		<applet id="JavaSocketBridge" archive="JavaSocketBridge.jar" code="JavaSocketBridge.class" width="0" height="0">

 		</applet>

 	</div>

 

-		<p id="result"></p>

-

+		<div>

+			<p>Size: <span id="coSize"></span></p>

+			

+			<p id="result"></p>

+			

+		</div> 

 </body>

 </html>
\ No newline at end of file