blob: adbc25c008570ae7710dde96666bd5682e4e1cb9 [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
Meki Cherkaouif3d8f692012-05-18 15:44:28 -070033 if (this.PublisherPublicKeyDigest.length != PublisherID.PUBLISHER_ID_LEN) {
34
35 console.log('LENGTH OF PUBLISHER ID IS WRONG!');
36
37 //this.PublisherPublicKeyDigest = new PublisherPublicKeyDigest(this.PublisherPublicKeyDigest).PublisherKeyDigest;
38
39 }
Meki Cherkaouif441d3a2012-04-22 15:17:52 -070040 };
41
42PublisherPublicKeyDigest.prototype.encode= function( encoder) {
43 //TODO Check that the ByteArray for the key is present
44 /*if (!this.validate()) {
45 throw new Exception("Cannot encode : field values missing.");
46 }*/
Meki Cherkaouif3d8f692012-05-18 15:44:28 -070047 if(LOG>3) console.log('PUBLISHER KEY DIGEST IS'+this.PublisherPublicKeyDigest);
48 encoder.writeElement(this.getElementLabel(), this.PublisherPublicKeyDigest);
Meki Cherkaouif441d3a2012-04-22 15:17:52 -070049};
50
51PublisherPublicKeyDigest.prototype.getElementLabel = function() { return CCNProtocolDTags.PublisherPublicKeyDigest; };
52
53PublisherPublicKeyDigest.prototype.validate =function() {
54 return (null != this.PublisherKeyDigest);
55};