blob: a2a823469203c24b3f619d03aa3a611ad4ea91a2 [file] [log] [blame]
Meki Cherkaouif441d3a2012-04-22 15:17:52 -07001/*
2 * @author: ucla-cs
3 * This class represents PublisherPublicKeyDigest Objects
4 */
5var PublisherPublicKeyDigest = function PublisherPublicKeyDigest(_pkd){
6
Meki Cherkaouif3d8f692012-05-18 15:44:28 -07007
8 this.PUBLISHER_ID_LEN = 256/8;
9
10 this.PublisherPublicKeyDigest = _pkd;
11 //if( typeof _pkd == "object") this.PublisherPublicKeyDigest = _pkd; // Byte Array
12 //else if( typeof _pkd == "PublicKey") ;//TODO...
Meki Cherkaouif441d3a2012-04-22 15:17:52 -070013
Meki Cherkaouif3d8f692012-05-18 15:44:28 -070014
15
Meki Cherkaouif441d3a2012-04-22 15:17:52 -070016};
17
Meki Cherkaouif3d8f692012-05-18 15:44:28 -070018
19
20
Meki Cherkaouif441d3a2012-04-22 15:17:52 -070021PublisherPublicKeyDigest.prototype.decode = function( decoder) {
22
23 this.PublisherPublicKeyDigest = decoder.readBinaryElement(this.getElementLabel());
Meki Cherkaouif3d8f692012-05-18 15:44:28 -070024
25 if(LOG>4)console.log('Publisher public key digest is ' + this.PublisherPublicKeyDigest);
26
Meki Cherkaouif441d3a2012-04-22 15:17:52 -070027 if (null == this.PublisherPublicKeyDigest) {
28 throw new Exception("Cannot parse publisher key digest.");
29 }
30
31 //TODO check if the length of the PublisherPublicKeyDigest is correct ( Security reason)
32
Axel Colin de Verdieref049a762012-05-19 12:10:17 -070033 if(LOG>4){
34 console.log('PublisherID.PUBLISHER_ID_LEN = ', PublisherID.PUBLISHER_ID_LEN);
35 console.log('PublisherPublicKeyDigest.length = ', PublisherPublicKeyDigest.length);
36 }
37
38
Meki Cherkaouif3d8f692012-05-18 15:44:28 -070039 if (this.PublisherPublicKeyDigest.length != PublisherID.PUBLISHER_ID_LEN) {
40
41 console.log('LENGTH OF PUBLISHER ID IS WRONG!');
42
43 //this.PublisherPublicKeyDigest = new PublisherPublicKeyDigest(this.PublisherPublicKeyDigest).PublisherKeyDigest;
44
45 }
Meki Cherkaouif441d3a2012-04-22 15:17:52 -070046 };
47
48PublisherPublicKeyDigest.prototype.encode= function( encoder) {
49 //TODO Check that the ByteArray for the key is present
50 /*if (!this.validate()) {
51 throw new Exception("Cannot encode : field values missing.");
52 }*/
Meki Cherkaouif3d8f692012-05-18 15:44:28 -070053 if(LOG>3) console.log('PUBLISHER KEY DIGEST IS'+this.PublisherPublicKeyDigest);
54 encoder.writeElement(this.getElementLabel(), this.PublisherPublicKeyDigest);
Meki Cherkaouif441d3a2012-04-22 15:17:52 -070055};
56
57PublisherPublicKeyDigest.prototype.getElementLabel = function() { return CCNProtocolDTags.PublisherPublicKeyDigest; };
58
59PublisherPublicKeyDigest.prototype.validate =function() {
60 return (null != this.PublisherKeyDigest);
61};