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/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