diff --git a/lib/publickey.js b/lib/publickey.js index 9f87266..fba8b05 100644 --- a/lib/publickey.js +++ b/lib/publickey.js @@ -53,6 +53,8 @@ var PublicKey = function PublicKey(data, extra) { info.point = data; } else if (PublicKey._isJSON(data)) { info = PublicKey._transformJSON(data); + } else if (typeof(data) === 'string') { + info = PublicKey._transformDER(new Buffer(data, 'hex')); } else if (PublicKey._isBuffer(data)) { info = PublicKey._transformDER(data); } else if (PublicKey._isPrivateKey(data)) { @@ -60,7 +62,7 @@ var PublicKey = function PublicKey(data, extra) { } else { throw new TypeError('First argument is an unrecognized data format.'); } - + // validation info.point.validate(); @@ -289,7 +291,9 @@ PublicKey.fromPoint = function(point, compressed) { */ PublicKey.fromDER = function(buf, strict) { var info = PublicKey._transformDER(buf, strict); - return new PublicKey(info.point, info.compressed); + return new PublicKey(info.point, { + compressed: info.compressed + }); }; /**