Comparing version 3.0.3 to 3.1.0
@@ -48,3 +48,4 @@ "use strict"; | ||
ecc.randomKey().then(privateKey => { | ||
console.log(privateKey.toString()) | ||
console.log('Private Key:\t', privateKey) // wif | ||
console.log('Public Key:\t', ecc.privateToPublic(privateKey)) // EOSkey... | ||
}) | ||
@@ -100,12 +101,32 @@ */ | ||
@arg {wif|PrivateKey} privateKey | ||
@arg {boolean} [hashData = true] - sha256 hash data before signing | ||
@return {string} string signature | ||
@arg {String} [encoding = 'utf8'] - data encoding (if string) | ||
@return {string} string signature | ||
@example ecc.sign('I am alive', wif) | ||
*/ | ||
sign: function sign(data, privateKey) { | ||
var hashData = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; | ||
return Signature[hashData ? 'sign' : 'signHash'](data, privateKey).toString(); | ||
var encoding = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'utf8'; | ||
if (encoding === true) { | ||
throw new TypeError('API changed, use signHash(..) instead'); | ||
} else { | ||
if (encoding === false) { | ||
console.log('Warning: ecc.sign hashData parameter was removed'); | ||
} | ||
} | ||
return Signature.sign(data, privateKey, encoding).toString(); | ||
}, | ||
/** | ||
@arg {String|Buffer} dataSha256 - sha256 hash 32 byte buffer or string | ||
@arg {wif|PrivateKey} privateKey | ||
@arg {String} [encoding = 'hex'] - dataSha256 encoding (if string) | ||
@return {string} string signature | ||
*/ | ||
signHash: function signHash(dataSha256, privateKey) { | ||
var encoding = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'hex'; | ||
return Signature.signHash(dataSha256, privateKey, encoding).toString(); | ||
}, | ||
/** | ||
Verify signed data. | ||
@@ -120,25 +141,58 @@ @arg {string|Buffer} signature - buffer or hex string | ||
verify: function verify(signature, data, pubkey) { | ||
var hashData = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; | ||
var encoding = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'utf8'; | ||
if (encoding === true) { | ||
throw new TypeError('API changed, use verifyHash(..) instead'); | ||
} else { | ||
if (encoding === false) { | ||
console.log('Warning: ecc.verify hashData parameter was removed'); | ||
} | ||
} | ||
signature = Signature.from(signature); | ||
var verify = signature[hashData ? 'verify' : 'verifyHash']; | ||
return verify(data, pubkey); | ||
return signature.verify(data, pubkey, encoding); | ||
}, | ||
verifyHash: function verifyHash(signature, dataSha256, pubkey) { | ||
var encoding = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'hex'; | ||
signature = Signature.from(signature); | ||
return signature.verifyHash(dataSha256, pubkey, encoding); | ||
}, | ||
/** | ||
Recover the public key used to create the signature. | ||
@arg {String} signature (hex, etc..) | ||
@arg {String|Buffer} data | ||
@arg {boolean} [hashData = true] - sha256 hash data before recover | ||
@return {pubkey} | ||
@arg {String|Buffer} signature (EOSbase58sig.., Hex, Buffer) | ||
@arg {String|Buffer} data - full data | ||
@arg {String} [encoding = 'utf8'] - data encoding (if data is a string) | ||
@return {pubkey} | ||
@example ecc.recover(signature, 'I am alive') === pubkey | ||
*/ | ||
recover: function recover(signature, data) { | ||
var hashData = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; | ||
var encoding = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'utf8'; | ||
if (encoding === true) { | ||
throw new TypeError('API changed, use recoverHash(signature, data) instead'); | ||
} else { | ||
if (encoding === false) { | ||
console.log('Warning: ecc.recover hashData parameter was removed'); | ||
} | ||
} | ||
signature = Signature.from(signature); | ||
var recover = signature[hashData ? 'recover' : 'recoverHash']; | ||
return recover(data).toString(); | ||
return signature.recover(data, encoding).toString(); | ||
}, | ||
/** | ||
@arg {String|Buffer} signature (EOSbase58sig.., Hex, Buffer) | ||
@arg {String|Buffer} dataSha256 - sha256 hash 32 byte buffer or hex string | ||
@arg {String} [encoding = 'hex'] - dataSha256 encoding (if dataSha256 is a string) | ||
@return {PublicKey} | ||
*/ | ||
recoverHash: function recoverHash(signature, dataSha256) { | ||
var encoding = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'hex'; | ||
signature = Signature.from(signature); | ||
return signature.recoverHash(dataSha256, encoding).toString(); | ||
}, | ||
/** @arg {string|Buffer} data | ||
@@ -145,0 +199,0 @@ @arg {string} [encoding = 'hex'] - 'hex', 'binary' or 'base64' |
@@ -122,3 +122,3 @@ 'use strict'; | ||
var sigs = [ecc.sign(data, wif), ecc.sign(dataSha256, wif, false)]; | ||
var sigs = [ecc.sign(data, wif), ecc.signHash(dataSha256, wif)]; | ||
@@ -134,5 +134,5 @@ var _iteratorNormalCompletion4 = true; | ||
assert(ecc.verify(sig, data, pubkey), 'verify data'); | ||
assert(ecc.verify(sig, dataSha256, pubkey, false), 'verify hash'); | ||
assert(ecc.verifyHash(sig, dataSha256, pubkey), 'verify hash'); | ||
assert.equal(pubkey, ecc.recover(sig, data), 'recover from data'); | ||
assert.equal(pubkey, ecc.recover(sig, dataSha256, false), 'recover from hash'); | ||
assert.equal(pubkey, ecc.recoverHash(sig, dataSha256), 'recover from hash'); | ||
} | ||
@@ -139,0 +139,0 @@ } catch (err) { |
@@ -22,9 +22,12 @@ 'use strict'; | ||
Verify signed data. | ||
@arg {String|Buffer} data - full data (non-hex) | ||
@arg {String|Buffer} data - full data | ||
@arg {pubkey|PublicKey} pubkey - EOSKey.. | ||
@arg {String} [encoding = 'utf8'] - data encoding (if data is a string) | ||
@return {boolean} | ||
*/ | ||
function verify(data, pubkey) { | ||
var encoding = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'utf8'; | ||
if (typeof data === 'string') { | ||
data = Buffer.from(data); | ||
data = Buffer.from(data, encoding); | ||
} | ||
@@ -38,11 +41,14 @@ assert(Buffer.isBuffer(data), 'data is a required String or Buffer'); | ||
Verify a buffer of exactally 32 bytes in size (sha256(text)) | ||
@arg {Buffer|hex} dataSha256 - 32 byte buffer or hex string | ||
@arg {String|PublicKey} pubkey | ||
@return {Signature} | ||
@arg {String|Buffer} dataSha256 - 32 byte buffer or string | ||
@arg {String|PublicKey} pubkey - EOSKey.. | ||
@arg {String} [encoding = 'hex'] - dataSha256 encoding (if string) | ||
@return {boolean} | ||
*/ | ||
function verifyHash(dataSha256, pubkey) { | ||
var encoding = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'hex'; | ||
if (typeof dataSha256 === 'string') { | ||
dataSha256 = Buffer.from(dataSha256, 'hex'); | ||
dataSha256 = Buffer.from(dataSha256, encoding); | ||
} | ||
if (dataSha256.length !== 32 || !Buffer.isBuffer(dataSha256)) throw new Error("dataSha256: 32 byte buffer requred"); | ||
if (dataSha256.length !== 32 || !Buffer.isBuffer(dataSha256)) throw new Error("dataSha256: 32 bytes required"); | ||
@@ -55,6 +61,9 @@ var publicKey = PublicKey(pubkey); | ||
/** Verify hex data by converting to a buffer then hashing. | ||
@return {boolean} | ||
/** @deprecated | ||
Verify hex data by converting to a buffer then hashing. | ||
@return {boolean} | ||
*/ | ||
function verifyHex(hex, pubkey) { | ||
console.log('Deprecated: use verify(data, pubkey, "hex")'); | ||
var buf = Buffer.from(hex, 'hex'); | ||
@@ -67,8 +76,11 @@ return verify(buf, pubkey); | ||
@arg {String|Buffer} data - full data (non-hex) | ||
@arg {String|Buffer} data - full data | ||
@arg {String} [encoding = 'utf8'] - data encoding (if string) | ||
@return {PublicKey} | ||
*/ | ||
function recover(data) { | ||
var encoding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'utf8'; | ||
if (typeof data === 'string') { | ||
data = Buffer.from(data); | ||
data = Buffer.from(data, encoding); | ||
} | ||
@@ -82,8 +94,11 @@ assert(Buffer.isBuffer(data), 'data is a required String or Buffer'); | ||
/** | ||
@arg {Buffer|hex} dataSha256 - 32 byte buffer or hex string | ||
@return {PublicKey} | ||
@arg {String|Buffer} dataSha256 - sha256 hash 32 byte buffer or hex string | ||
@arg {String} [encoding = 'hex'] - dataSha256 encoding (if string) | ||
@return {PublicKey} | ||
*/ | ||
function recoverHash(dataSha256) { | ||
var encoding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'hex'; | ||
if (typeof dataSha256 === 'string') { | ||
dataSha256 = Buffer.from(dataSha256, 'hex'); | ||
dataSha256 = Buffer.from(dataSha256, encoding); | ||
} | ||
@@ -135,3 +150,3 @@ if (dataSha256.length !== 32 || !Buffer.isBuffer(dataSha256)) { | ||
verifyHash: verifyHash, | ||
verifyHex: verifyHex, | ||
verifyHex: verifyHex, // deprecated | ||
recover: recover, | ||
@@ -143,10 +158,18 @@ recoverHash: recoverHash, | ||
/** @deprecated use verify (same arguments and return) */ | ||
verifyBuffer: verify, | ||
verifyBuffer: function verifyBuffer() { | ||
console.log('Deprecated: use signature.verify instead (same arguments)'); | ||
return verify.apply(undefined, arguments); | ||
}, | ||
/** @deprecated use recover (same arguments and return) */ | ||
recoverPublicKey: recover, | ||
recoverPublicKey: function recoverPublicKey() { | ||
console.log('Deprecated: use signature.recover instead (same arguments)'); | ||
return recover.apply(undefined, arguments); | ||
}, | ||
/** @deprecated use recoverHash (same arguments and return) */ | ||
recoverPublicKeyFromBuffer: recoverHash | ||
recoverPublicKeyFromBuffer: function recoverPublicKeyFromBuffer() { | ||
console.log('Deprecated: use signature.recoverHash instead (same arguments)'); | ||
return recoverHash.apply(undefined, arguments); | ||
} | ||
}; | ||
@@ -158,4 +181,5 @@ } | ||
@arg {string|Buffer} data - non-hex data | ||
@arg {string|Buffer} data - full data | ||
@arg {wif|PrivateKey} privateKey | ||
@arg {String} [encoding = 'utf8'] - data encoding (if string) | ||
@@ -165,4 +189,6 @@ @return {Signature} | ||
Signature.sign = function (data, privateKey) { | ||
var encoding = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'utf8'; | ||
if (typeof data === 'string') { | ||
data = Buffer.from(data); | ||
data = Buffer.from(data, encoding); | ||
} | ||
@@ -177,4 +203,5 @@ assert(Buffer.isBuffer(data), 'data is a required String or Buffer'); | ||
@arg {Buffer|hex} buf - 32 byte buffer or hex string | ||
@arg {string|Buffer} dataSha256 - 32 byte buffer or string | ||
@arg {wif|PrivateKey} privateKey | ||
@arg {String} [encoding = 'hex'] - dataSha256 encoding (if string) | ||
@@ -184,4 +211,6 @@ @return {Signature} | ||
Signature.signHash = function (dataSha256, privateKey) { | ||
var encoding = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'hex'; | ||
if (typeof dataSha256 === 'string') { | ||
dataSha256 = Buffer.from(dataSha256, 'hex'); | ||
dataSha256 = Buffer.from(dataSha256, encoding); | ||
} | ||
@@ -188,0 +217,0 @@ if (dataSha256.length !== 32 || !Buffer.isBuffer(dataSha256)) throw new Error("dataSha256: 32 byte buffer requred"); |
{ | ||
"name": "eosjs-ecc", | ||
"version": "3.0.3", | ||
"version": "3.1.0", | ||
"description": "Elliptic curve cryptography functions", | ||
@@ -5,0 +5,0 @@ "keywords": "ECC, Private Key, Public Key, Signature, AES, Encryption, Decryption", |
@@ -56,3 +56,4 @@ [](https://www.npmjs.org/package/eosjs-ecc) | ||
ecc.randomKey().then(privateKey => { | ||
console.log(privateKey.toString()) | ||
console.log('Private Key:\t', privateKey) // wif | ||
console.log('Public Key:\t', ecc.privateToPublic(privateKey)) // EOSkey... | ||
}) | ||
@@ -129,3 +130,3 @@ ``` | ||
- `privateKey` **([wif](#wif) | PrivateKey)** | ||
- `hashData` **[boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** sha256 hash data before signing (optional, default `true`) | ||
- `encoding` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** data encoding (if string) (optional, default `'utf8'`) | ||
@@ -140,2 +141,12 @@ **Examples** | ||
### signHash | ||
**Parameters** | ||
- `dataSha256` **([String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) \| [Buffer](https://nodejs.org/api/buffer.html))** sha256 hash 32 byte buffer or string | ||
- `privateKey` **([wif](#wif) | PrivateKey)** | ||
- `encoding` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** dataSha256 encoding (if string) (optional, default `'hex'`) | ||
Returns **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** string signature | ||
### verify | ||
@@ -150,2 +161,3 @@ | ||
- `pubkey` **([pubkey](#pubkey) | PublicKey)** | ||
- `encoding` (optional, default `'utf8'`) | ||
- `hashData` **[boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** sha256 hash data before verify (optional, default `true`) | ||
@@ -167,5 +179,5 @@ | ||
- `signature` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** (hex, etc..) | ||
- `data` **([String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) \| [Buffer](https://nodejs.org/api/buffer.html))** | ||
- `hashData` **[boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** sha256 hash data before recover (optional, default `true`) | ||
- `signature` **([String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) \| [Buffer](https://nodejs.org/api/buffer.html))** (EOSbase58sig.., Hex, Buffer) | ||
- `data` **([String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) \| [Buffer](https://nodejs.org/api/buffer.html))** full data | ||
- `encoding` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** data encoding (if data is a string) (optional, default `'utf8'`) | ||
@@ -180,2 +192,12 @@ **Examples** | ||
### recoverHash | ||
**Parameters** | ||
- `signature` **([String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) \| [Buffer](https://nodejs.org/api/buffer.html))** (EOSbase58sig.., Hex, Buffer) | ||
- `dataSha256` **([String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) \| [Buffer](https://nodejs.org/api/buffer.html))** sha256 hash 32 byte buffer or hex string | ||
- `encoding` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** dataSha256 encoding (if dataSha256 is a string) (optional, default `'hex'`) | ||
Returns **PublicKey** | ||
### sha256 | ||
@@ -182,0 +204,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
272
1674498
55
34544