crypto: rename ec to secp256k1.
This commit is contained in:
parent
5d6e089c92
commit
fa3e98b274
@ -34,7 +34,7 @@
|
||||
* @property {Function} coinview
|
||||
*
|
||||
* @property {Object} crypto
|
||||
* @property {Object} ec
|
||||
* @property {Object} secp256k1
|
||||
* @property {Object} schnorr
|
||||
*
|
||||
* @property {Object} db
|
||||
@ -167,7 +167,7 @@ bcoin.coinview = require('./coins/coinview');
|
||||
// Crypto
|
||||
bcoin.crypto = require('./crypto');
|
||||
bcoin.bn = require('./crypto/bn');
|
||||
bcoin.ec = require('./crypto/ec');
|
||||
bcoin.secp256k1 = require('./crypto/secp256k1');
|
||||
bcoin.schnorr = require('./crypto/schnorr');
|
||||
|
||||
// DB
|
||||
|
||||
@ -34,7 +34,7 @@
|
||||
* @property {Function} coinview
|
||||
*
|
||||
* @property {Object} crypto
|
||||
* @property {Object} ec
|
||||
* @property {Object} secp256k1
|
||||
* @property {Object} schnorr
|
||||
*
|
||||
* @property {Object} db
|
||||
@ -187,7 +187,7 @@ bcoin.define('coinview', './coins/coinview');
|
||||
// Crypto
|
||||
bcoin.define('crypto', './crypto');
|
||||
bcoin.define('bn', './crypto/bn');
|
||||
bcoin.define('ec', './crypto/ec');
|
||||
bcoin.define('secp256k1', './crypto/secp256k1');
|
||||
bcoin.define('schnorr', './crypto/schnorr');
|
||||
|
||||
// DB
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
*/
|
||||
|
||||
var assert = require('assert');
|
||||
var ec = require('../crypto/ec');
|
||||
var secp256k1 = require('../crypto/secp256k1');
|
||||
var encoding = require('../utils/encoding');
|
||||
var consensus = require('../protocol/consensus');
|
||||
|
||||
@ -323,7 +323,7 @@ function publicKeyVerify(key) {
|
||||
if (key.length !== 65)
|
||||
return false;
|
||||
|
||||
return ec.publicKeyVerify(key);
|
||||
return secp256k1.publicKeyVerify(key);
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
@ -346,7 +346,7 @@ function compressKey(key) {
|
||||
break;
|
||||
case 0x04:
|
||||
// Compress the key normally.
|
||||
out = ec.publicKeyConvert(key, true);
|
||||
out = secp256k1.publicKeyConvert(key, true);
|
||||
// Store the oddness.
|
||||
// Pseudo-hybrid format.
|
||||
out[0] = 0x04 | (key[64] & 0x01);
|
||||
@ -387,7 +387,7 @@ function decompressKey(key) {
|
||||
}
|
||||
|
||||
// Decompress the key.
|
||||
out = ec.publicKeyConvert(key, false);
|
||||
out = secp256k1.publicKeyConvert(key, false);
|
||||
|
||||
// Reset the first byte so as not to
|
||||
// mutate the original buffer.
|
||||
|
||||
@ -1,21 +0,0 @@
|
||||
/*!
|
||||
* ec.js - ecdsa wrapper for secp256k1 and elliptic
|
||||
* Copyright (c) 2014-2017, Christopher Jeffrey (MIT License).
|
||||
* https://github.com/bcoin-org/bcoin
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
var secp256k1;
|
||||
|
||||
if (+process.env.BCOIN_USE_ELLIPTIC !== 1) {
|
||||
try {
|
||||
secp256k1 = require('secp256k1/bindings');
|
||||
} catch (e) {
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = secp256k1
|
||||
? require('./ec-secp256k1')
|
||||
: require('./ec-elliptic');
|
||||
@ -321,11 +321,11 @@ exports.rsa = require('./rsa');
|
||||
exports.ecdsa = require('./ecdsa');
|
||||
|
||||
/**
|
||||
* ec module
|
||||
* @see module:crypto/ec
|
||||
* secp256k1 module
|
||||
* @see module:crypto/secp256k1
|
||||
*/
|
||||
|
||||
exports.ec = require('./ec');
|
||||
exports.secp256k1 = require('./secp256k1');
|
||||
|
||||
/**
|
||||
* schnorr module
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*!
|
||||
* ec.js - ecdsa wrapper for elliptic
|
||||
* secp256k1-elliptic.js - wrapper for elliptic
|
||||
* Copyright (c) 2014-2015, Fedor Indutny (MIT License)
|
||||
* Copyright (c) 2014-2017, Christopher Jeffrey (MIT License).
|
||||
* https://github.com/bcoin-org/bcoin
|
||||
@ -15,7 +15,7 @@ var BN = require('./bn');
|
||||
var curve = secp256k1.curve;
|
||||
|
||||
/**
|
||||
* @exports crypto/ec-elliptic
|
||||
* @exports crypto/secp256k1-elliptic
|
||||
* @ignore
|
||||
*/
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*!
|
||||
* ec-secp256k1.js - ecdsa wrapper for secp256k1
|
||||
* secp256k1-native.js - wrapper for secp256k1-node
|
||||
* Copyright (c) 2014-2015, Fedor Indutny (MIT License)
|
||||
* Copyright (c) 2014-2017, Christopher Jeffrey (MIT License).
|
||||
* https://github.com/bcoin-org/bcoin
|
||||
@ -12,7 +12,7 @@ var backend = require('./backend');
|
||||
var secp256k1 = require('secp256k1');
|
||||
|
||||
/**
|
||||
* @exports crypto/ec
|
||||
* @exports crypto/secp256k1
|
||||
*/
|
||||
|
||||
var ec = exports;
|
||||
21
lib/crypto/secp256k1.js
Normal file
21
lib/crypto/secp256k1.js
Normal file
@ -0,0 +1,21 @@
|
||||
/*!
|
||||
* secp256k1.js - ecdsa wrapper for secp256k1 and elliptic
|
||||
* Copyright (c) 2014-2017, Christopher Jeffrey (MIT License).
|
||||
* https://github.com/bcoin-org/bcoin
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
var native;
|
||||
|
||||
if (+process.env.BCOIN_USE_ELLIPTIC !== 1) {
|
||||
try {
|
||||
native = require('secp256k1/bindings');
|
||||
} catch (e) {
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = native
|
||||
? require('./secp256k1-native')
|
||||
: require('./secp256k1-elliptic');
|
||||
@ -9,7 +9,7 @@
|
||||
var assert = require('assert');
|
||||
var util = require('../utils/util');
|
||||
var crypto = require('../crypto/crypto');
|
||||
var ec = require('../crypto/ec');
|
||||
var secp256k1 = require('../crypto/secp256k1');
|
||||
var Network = require('../protocol/network');
|
||||
var StaticWriter = require('../utils/staticwriter');
|
||||
var BufferReader = require('../utils/reader');
|
||||
@ -83,7 +83,7 @@ HDPrivateKey.prototype.fromOptions = function fromOptions(options) {
|
||||
this.childIndex = options.childIndex;
|
||||
this.chainCode = options.chainCode;
|
||||
this.privateKey = options.privateKey;
|
||||
this.publicKey = ec.publicKeyCreate(options.privateKey, true);
|
||||
this.publicKey = secp256k1.publicKeyCreate(options.privateKey, true);
|
||||
|
||||
return this;
|
||||
};
|
||||
@ -213,7 +213,7 @@ HDPrivateKey.prototype.derive = function derive(index, hardened) {
|
||||
right = hash.slice(32, 64);
|
||||
|
||||
try {
|
||||
key = ec.privateKeyTweakAdd(this.privateKey, left);
|
||||
key = secp256k1.privateKeyTweakAdd(this.privateKey, left);
|
||||
} catch (e) {
|
||||
return this.derive(index + 1);
|
||||
}
|
||||
@ -228,7 +228,7 @@ HDPrivateKey.prototype.derive = function derive(index, hardened) {
|
||||
child.childIndex = index;
|
||||
child.chainCode = right;
|
||||
child.privateKey = key;
|
||||
child.publicKey = ec.publicKeyCreate(key, true);
|
||||
child.publicKey = secp256k1.publicKeyCreate(key, true);
|
||||
|
||||
common.cache.set(id, child);
|
||||
|
||||
@ -470,7 +470,7 @@ HDPrivateKey.prototype.fromSeed = function fromSeed(seed, network) {
|
||||
right = hash.slice(32, 64);
|
||||
|
||||
// Only a 1 in 2^127 chance of happening.
|
||||
if (!ec.privateKeyVerify(left))
|
||||
if (!secp256k1.privateKeyVerify(left))
|
||||
throw new Error('Master private key is invalid.');
|
||||
|
||||
this.network = Network.get(network);
|
||||
@ -479,7 +479,7 @@ HDPrivateKey.prototype.fromSeed = function fromSeed(seed, network) {
|
||||
this.childIndex = 0;
|
||||
this.chainCode = right;
|
||||
this.privateKey = left;
|
||||
this.publicKey = ec.publicKeyCreate(left, true);
|
||||
this.publicKey = secp256k1.publicKeyCreate(left, true);
|
||||
|
||||
return this;
|
||||
};
|
||||
@ -559,7 +559,7 @@ HDPrivateKey.prototype.fromKey = function fromKey(key, entropy, network) {
|
||||
this.childIndex = 0;
|
||||
this.chainCode = entropy;
|
||||
this.privateKey = key;
|
||||
this.publicKey = ec.publicKeyCreate(key, true);
|
||||
this.publicKey = secp256k1.publicKeyCreate(key, true);
|
||||
return this;
|
||||
};
|
||||
|
||||
@ -582,7 +582,7 @@ HDPrivateKey.fromKey = function fromKey(key, entropy, network) {
|
||||
*/
|
||||
|
||||
HDPrivateKey.generate = function generate(network) {
|
||||
var key = ec.generatePrivateKey();
|
||||
var key = secp256k1.generatePrivateKey();
|
||||
var entropy = crypto.randomBytes(32);
|
||||
return HDPrivateKey.fromKey(key, entropy, network);
|
||||
};
|
||||
@ -617,7 +617,7 @@ HDPrivateKey.prototype.fromReader = function fromReader(br, network) {
|
||||
this.chainCode = br.readBytes(32);
|
||||
assert(br.readU8() === 0);
|
||||
this.privateKey = br.readBytes(32);
|
||||
this.publicKey = ec.publicKeyCreate(this.privateKey, true);
|
||||
this.publicKey = secp256k1.publicKeyCreate(this.privateKey, true);
|
||||
|
||||
br.verifyChecksum();
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
var assert = require('assert');
|
||||
var util = require('../utils/util');
|
||||
var crypto = require('../crypto/crypto');
|
||||
var ec = require('../crypto/ec');
|
||||
var secp256k1 = require('../crypto/secp256k1');
|
||||
var Network = require('../protocol/network');
|
||||
var StaticWriter = require('../utils/staticwriter');
|
||||
var BufferReader = require('../utils/reader');
|
||||
@ -180,7 +180,7 @@ HDPublicKey.prototype.derive = function derive(index, hardened) {
|
||||
right = hash.slice(32, 64);
|
||||
|
||||
try {
|
||||
key = ec.publicKeyTweakAdd(this.publicKey, left, true);
|
||||
key = secp256k1.publicKeyTweakAdd(this.publicKey, left, true);
|
||||
} catch (e) {
|
||||
return this.derive(index + 1);
|
||||
}
|
||||
|
||||
@ -11,7 +11,7 @@ var co = require('../utils/co');
|
||||
var crypto = require('../crypto/crypto');
|
||||
var assert = require('assert');
|
||||
var common = require('../blockchain/common');
|
||||
var ec = require('../crypto/ec');
|
||||
var secp256k1 = require('../crypto/secp256k1');
|
||||
var Amount = require('../btc/amount');
|
||||
var NetAddress = require('../primitives/netaddress');
|
||||
var Script = require('../script/script');
|
||||
@ -1980,7 +1980,7 @@ RPC.prototype.createMultisig = async function createMultisig(args, help) {
|
||||
if (!key)
|
||||
throw new RPCError(errs.TYPE_ERROR, 'Invalid key.');
|
||||
|
||||
if (!ec.publicKeyVerify(key))
|
||||
if (!secp256k1.publicKeyVerify(key))
|
||||
throw new RPCError(errs.INVALID_ADDRESS_OR_KEY, 'Invalid key.');
|
||||
|
||||
keys[i] = key;
|
||||
@ -2067,7 +2067,7 @@ RPC.prototype.verifyMessage = async function verifyMessage(args, help) {
|
||||
msg = Buffer.from(MAGIC_STRING + msg, 'utf8');
|
||||
msg = crypto.hash256(msg);
|
||||
|
||||
key = ec.recover(msg, sig, 0, true);
|
||||
key = secp256k1.recover(msg, sig, 0, true);
|
||||
|
||||
if (!key)
|
||||
return false;
|
||||
|
||||
@ -15,7 +15,7 @@ var util = require('../utils/util');
|
||||
var co = require('../utils/co');
|
||||
var crypto = require('../crypto/crypto');
|
||||
var packets = require('./packets');
|
||||
var ec = require('../crypto/ec');
|
||||
var secp256k1 = require('../crypto/secp256k1');
|
||||
var StaticWriter = require('../utils/staticwriter');
|
||||
var base58 = require('../utils/base58');
|
||||
var encoding = require('../utils/encoding');
|
||||
@ -69,7 +69,7 @@ function BIP150(bip151, host, outbound, db, key) {
|
||||
this.outbound = outbound;
|
||||
this.db = db;
|
||||
this.privateKey = key;
|
||||
this.publicKey = ec.publicKeyCreate(key, true);
|
||||
this.publicKey = secp256k1.publicKeyCreate(key, true);
|
||||
|
||||
this.peerIdentity = null;
|
||||
this.challengeReceived = false;
|
||||
@ -139,10 +139,10 @@ BIP150.prototype.challenge = function challenge(hash) {
|
||||
this.emit('auth');
|
||||
}
|
||||
|
||||
sig = ec.sign(msg, this.privateKey);
|
||||
sig = secp256k1.sign(msg, this.privateKey);
|
||||
|
||||
// authreply
|
||||
return ec.fromDER(sig);
|
||||
return secp256k1.fromDER(sig);
|
||||
};
|
||||
|
||||
/**
|
||||
@ -167,10 +167,10 @@ BIP150.prototype.reply = function reply(data) {
|
||||
if (!this.peerIdentity)
|
||||
return crypto.randomBytes(32);
|
||||
|
||||
sig = ec.toDER(data);
|
||||
sig = secp256k1.toDER(data);
|
||||
msg = this.hash(this.output.sid, type, this.peerIdentity);
|
||||
|
||||
result = ec.verify(msg, sig, this.peerIdentity);
|
||||
result = secp256k1.verify(msg, sig, this.peerIdentity);
|
||||
|
||||
if (!result)
|
||||
return crypto.randomBytes(32);
|
||||
|
||||
@ -19,7 +19,7 @@ var crypto = require('../crypto/crypto');
|
||||
var assert = require('assert');
|
||||
var chachapoly = require('../crypto/chachapoly');
|
||||
var packets = require('./packets');
|
||||
var ec = require('../crypto/ec');
|
||||
var secp256k1 = require('../crypto/secp256k1');
|
||||
var StaticWriter = require('../utils/staticwriter');
|
||||
var BufferReader = require('../utils/reader');
|
||||
var encoding = require('../utils/encoding');
|
||||
@ -61,7 +61,7 @@ function BIP151Stream(cipher) {
|
||||
return new BIP151Stream(cipher);
|
||||
|
||||
this.cipher = BIP151.ciphers.CHACHAPOLY;
|
||||
this.privateKey = ec.generatePrivateKey();
|
||||
this.privateKey = secp256k1.generatePrivateKey();
|
||||
this.publicKey = null;
|
||||
this.secret = null;
|
||||
this.prk = null;
|
||||
@ -95,7 +95,7 @@ BIP151Stream.prototype.init = function init(publicKey) {
|
||||
var bw = new StaticWriter(33);
|
||||
|
||||
this.publicKey = publicKey;
|
||||
this.secret = ec.ecdh(this.publicKey, this.privateKey);
|
||||
this.secret = secp256k1.ecdh(this.publicKey, this.privateKey);
|
||||
|
||||
bw.writeBytes(this.secret);
|
||||
bw.writeU8(this.cipher);
|
||||
@ -208,7 +208,7 @@ BIP151Stream.prototype.update = function update() {
|
||||
*/
|
||||
|
||||
BIP151Stream.prototype.getPublicKey = function getPublicKey() {
|
||||
return ec.publicKeyCreate(this.privateKey, true);
|
||||
return secp256k1.publicKeyCreate(this.privateKey, true);
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@ -20,7 +20,7 @@ var BIP150 = require('./bip150');
|
||||
var BIP151 = require('./bip151');
|
||||
var BIP152 = require('./bip152');
|
||||
var Bloom = require('../utils/bloom');
|
||||
var ec = require('../crypto/ec');
|
||||
var secp256k1 = require('../crypto/secp256k1');
|
||||
var Lock = require('../utils/lock');
|
||||
var Network = require('../protocol/network');
|
||||
var Peer = require('./peer');
|
||||
@ -233,7 +233,7 @@ Pool.prototype._open = async function _open() {
|
||||
this.logger.info('Pool loaded (maxpeers=%d).', this.options.maxOutbound);
|
||||
|
||||
if (this.options.bip150) {
|
||||
key = ec.publicKeyCreate(this.options.identityKey, true);
|
||||
key = secp256k1.publicKeyCreate(this.options.identityKey, true);
|
||||
this.logger.info('Identity public key: %s.', key.toString('hex'));
|
||||
this.logger.info('Identity address: %s.', BIP150.address(key));
|
||||
}
|
||||
@ -3754,7 +3754,7 @@ function PoolOptions(options) {
|
||||
this.bip150 = false;
|
||||
this.authPeers = [];
|
||||
this.knownPeers = {};
|
||||
this.identityKey = ec.generatePrivateKey();
|
||||
this.identityKey = secp256k1.generatePrivateKey();
|
||||
this.banScore = common.BAN_SCORE;
|
||||
this.banTime = common.BAN_TIME;
|
||||
this.feeRate = -1;
|
||||
@ -3949,7 +3949,7 @@ PoolOptions.prototype.fromOptions = function fromOptions(options) {
|
||||
if (options.identityKey) {
|
||||
assert(Buffer.isBuffer(options.identityKey),
|
||||
'Identity key must be a buffer.');
|
||||
assert(ec.privateKeyVerify(options.identityKey),
|
||||
assert(secp256k1.privateKeyVerify(options.identityKey),
|
||||
'Invalid identity key.');
|
||||
this.identityKey = options.identityKey;
|
||||
}
|
||||
|
||||
@ -13,7 +13,7 @@ var util = require('../utils/util');
|
||||
var Network = require('../protocol/network');
|
||||
var Logger = require('./logger');
|
||||
var workerPool = require('../workers/workerpool').pool;
|
||||
var ec = require('../crypto/ec');
|
||||
var secp256k1 = require('../crypto/secp256k1');
|
||||
var native = require('../utils/native');
|
||||
var Config = require('./config');
|
||||
|
||||
@ -181,7 +181,7 @@ Node.prototype.handlePreopen = async function handlePreopen() {
|
||||
Node.prototype.handleOpen = async function handleOpen() {
|
||||
this.startTime = util.now();
|
||||
|
||||
if (!ec.binding) {
|
||||
if (!secp256k1.binding) {
|
||||
this.logger.warning('Warning: secp256k1-node was not built.');
|
||||
this.logger.warning('Verification will be slow.');
|
||||
}
|
||||
|
||||
@ -17,7 +17,7 @@ var base58 = require('../utils/base58');
|
||||
var Script = require('../script/script');
|
||||
var Address = require('./address');
|
||||
var Output = require('./output');
|
||||
var ec = require('../crypto/ec');
|
||||
var secp256k1 = require('../crypto/secp256k1');
|
||||
|
||||
/**
|
||||
* Represents a key ring which amounts to an address.
|
||||
@ -127,7 +127,7 @@ KeyRing.prototype.refresh = function refresh() {
|
||||
|
||||
KeyRing.prototype.fromPrivate = function fromPrivate(key, compressed, network) {
|
||||
assert(Buffer.isBuffer(key), 'Private key must be a buffer.');
|
||||
assert(ec.privateKeyVerify(key), 'Not a valid private key.');
|
||||
assert(secp256k1.privateKeyVerify(key), 'Not a valid private key.');
|
||||
|
||||
if (typeof compressed !== 'boolean') {
|
||||
network = compressed;
|
||||
@ -136,7 +136,7 @@ KeyRing.prototype.fromPrivate = function fromPrivate(key, compressed, network) {
|
||||
|
||||
this.network = Network.get(network);
|
||||
this.privateKey = key;
|
||||
this.publicKey = ec.publicKeyCreate(key, compressed !== false);
|
||||
this.publicKey = secp256k1.publicKeyCreate(key, compressed !== false);
|
||||
|
||||
return this;
|
||||
};
|
||||
@ -162,7 +162,7 @@ KeyRing.fromPrivate = function fromPrivate(key, compressed, network) {
|
||||
|
||||
KeyRing.prototype.fromPublic = function fromPublic(key, network) {
|
||||
assert(Buffer.isBuffer(key), 'Public key must be a buffer.');
|
||||
assert(ec.publicKeyVerify(key), 'Not a valid public key.');
|
||||
assert(secp256k1.publicKeyVerify(key), 'Not a valid public key.');
|
||||
this.network = Network.get(network);
|
||||
this.publicKey = key;
|
||||
return this;
|
||||
@ -183,7 +183,7 @@ KeyRing.prototype.generate = function(compressed, network) {
|
||||
compressed = null;
|
||||
}
|
||||
|
||||
key = ec.generatePrivateKey();
|
||||
key = secp256k1.generatePrivateKey();
|
||||
|
||||
return this.fromKey(key, compressed, network);
|
||||
};
|
||||
@ -704,7 +704,7 @@ KeyRing.prototype.getRedeem = function(hash) {
|
||||
|
||||
KeyRing.prototype.sign = function sign(msg) {
|
||||
assert(this.privateKey, 'Cannot sign without private key.');
|
||||
return ec.sign(msg, this.privateKey);
|
||||
return secp256k1.sign(msg, this.privateKey);
|
||||
};
|
||||
|
||||
/**
|
||||
@ -715,7 +715,7 @@ KeyRing.prototype.sign = function sign(msg) {
|
||||
*/
|
||||
|
||||
KeyRing.prototype.verify = function verify(msg, sig) {
|
||||
return ec.verify(msg, sig, this.publicKey);
|
||||
return secp256k1.verify(msg, sig, this.publicKey);
|
||||
};
|
||||
|
||||
/**
|
||||
@ -894,10 +894,10 @@ KeyRing.prototype.fromReader = function fromReader(br, network) {
|
||||
if (key.length === 32) {
|
||||
compressed = br.readU8() === 1;
|
||||
this.privateKey = key;
|
||||
this.publicKey = ec.publicKeyCreate(key, compressed);
|
||||
this.publicKey = secp256k1.publicKeyCreate(key, compressed);
|
||||
} else {
|
||||
this.publicKey = key;
|
||||
assert(ec.publicKeyVerify(key), 'Invalid public key.');
|
||||
assert(secp256k1.publicKeyVerify(key), 'Invalid public key.');
|
||||
}
|
||||
|
||||
script = br.readVarBytes();
|
||||
|
||||
@ -11,7 +11,7 @@ var assert = require('assert');
|
||||
var util = require('../utils/util');
|
||||
var encoding = require('../utils/encoding');
|
||||
var crypto = require('../crypto/crypto');
|
||||
var ec = require('../crypto/ec');
|
||||
var secp256k1 = require('../crypto/secp256k1');
|
||||
var Amount = require('../btc/amount');
|
||||
var Network = require('../protocol/network');
|
||||
var Script = require('../script/script');
|
||||
@ -740,7 +740,7 @@ TX.prototype.checksig = function checksig(index, prev, value, sig, key, version)
|
||||
type = sig[sig.length - 1];
|
||||
hash = this.signatureHash(index, prev, value, type, version);
|
||||
|
||||
return ec.verify(hash, sig.slice(0, -1), key);
|
||||
return secp256k1.verify(hash, sig.slice(0, -1), key);
|
||||
};
|
||||
|
||||
/**
|
||||
@ -767,7 +767,7 @@ TX.prototype.signature = function signature(index, prev, value, key, type, versi
|
||||
|
||||
hash = this.signatureHash(index, prev, value, type, version);
|
||||
|
||||
sig = ec.sign(hash, key);
|
||||
sig = secp256k1.sign(hash, key);
|
||||
bw = new StaticWriter(sig.length + 1);
|
||||
|
||||
bw.writeBytes(sig);
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
var assert = require('assert');
|
||||
var BN = require('../crypto/bn');
|
||||
var util = require('../utils/util');
|
||||
var ec = require('../crypto/ec');
|
||||
var secp256k1 = require('../crypto/secp256k1');
|
||||
|
||||
/**
|
||||
* Script opcodes.
|
||||
@ -347,7 +347,7 @@ exports.isLowDER = function isLowDER(sig) {
|
||||
if (!exports.isSignatureEncoding(sig))
|
||||
return false;
|
||||
|
||||
return ec.isLowS(sig.slice(0, -1));
|
||||
return secp256k1.isLowS(sig.slice(0, -1));
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@ -21,7 +21,7 @@ var Opcode = require('./opcode');
|
||||
var Stack = require('./stack');
|
||||
var common = require('./common');
|
||||
var encoding = require('../utils/encoding');
|
||||
var ec = require('../crypto/ec');
|
||||
var secp256k1 = require('../crypto/secp256k1');
|
||||
var Address = require('../primitives/address');
|
||||
var opcodes = common.opcodes;
|
||||
var scriptTypes = common.types;
|
||||
@ -3254,7 +3254,7 @@ function validateSignature(sig, flags) {
|
||||
*/
|
||||
|
||||
function checksig(msg, sig, key) {
|
||||
return ec.verify(msg, sig.slice(0, -1), key);
|
||||
return secp256k1.verify(msg, sig.slice(0, -1), key);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
|
||||
var assert = require('assert');
|
||||
var util = require('../utils/util');
|
||||
var ec = require('../crypto/ec');
|
||||
var secp256k1 = require('../crypto/secp256k1');
|
||||
|
||||
/**
|
||||
* Signature cache.
|
||||
@ -105,14 +105,14 @@ SigCache.prototype.verify = function verify(msg, sig, key) {
|
||||
var hash, result;
|
||||
|
||||
if (this.size === 0)
|
||||
return ec.verify(msg, sig, key);
|
||||
return secp256k1.verify(msg, sig, key);
|
||||
|
||||
hash = msg.toString('hex');
|
||||
|
||||
if (this.has(hash, sig, key))
|
||||
return true;
|
||||
|
||||
result = ec.verify(msg, sig, key);
|
||||
result = secp256k1.verify(msg, sig, key);
|
||||
|
||||
if (!result)
|
||||
return false;
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
var ec = require('../crypto/ec');
|
||||
var secp256k1 = require('../crypto/secp256k1');
|
||||
var scrypt = require('../crypto/scrypt');
|
||||
var mine = require('../mining/mine');
|
||||
var packets = require('./packets');
|
||||
@ -122,21 +122,21 @@ jobs.signInput = function signInput(tx, index, coin, ring, type) {
|
||||
};
|
||||
|
||||
/**
|
||||
* Execute ec.verify() on worker.
|
||||
* @see ec.verify
|
||||
* Execute secp256k1.verify() on worker.
|
||||
* @see secp256k1.verify
|
||||
* @param {TX} tx
|
||||
* @param {VerifyFlags} flags
|
||||
* @returns {Boolean}
|
||||
*/
|
||||
|
||||
jobs.ecVerify = function ecVerify(msg, sig, key) {
|
||||
var result = ec.verify(msg, sig, key);
|
||||
var result = secp256k1.verify(msg, sig, key);
|
||||
return new packets.ECVerifyResultPacket(result);
|
||||
};
|
||||
|
||||
/**
|
||||
* Execute ec.sign() on worker.
|
||||
* @see ec.sign
|
||||
* Execute secp256k1.sign() on worker.
|
||||
* @see secp256k1.sign
|
||||
* @param {TX} tx
|
||||
* @param {Number} index
|
||||
* @param {VerifyFlags} flags
|
||||
@ -144,7 +144,7 @@ jobs.ecVerify = function ecVerify(msg, sig, key) {
|
||||
*/
|
||||
|
||||
jobs.ecSign = function ecSign(msg, key) {
|
||||
var sig = ec.sign(msg, key);
|
||||
var sig = secp256k1.sign(msg, key);
|
||||
return new packets.ECSignResultPacket(sig);
|
||||
};
|
||||
|
||||
|
||||
@ -381,7 +381,7 @@ WorkerPool.prototype.signInput = async function signInput(tx, index, coin, ring,
|
||||
};
|
||||
|
||||
/**
|
||||
* Execute the ec verify job (no timeout).
|
||||
* Execute the secp256k1 verify job (no timeout).
|
||||
* @method
|
||||
* @param {Buffer} msg
|
||||
* @param {Buffer} sig - DER formatted.
|
||||
@ -396,7 +396,7 @@ WorkerPool.prototype.ecVerify = async function ecVerify(msg, sig, key) {
|
||||
};
|
||||
|
||||
/**
|
||||
* Execute the ec signing job (no timeout).
|
||||
* Execute the secp256k1 signing job (no timeout).
|
||||
* @method
|
||||
* @param {Buffer} msg
|
||||
* @param {Buffer} key
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
'use strict';
|
||||
|
||||
var assert = require('assert');
|
||||
var ec = require('../lib/crypto/ec');
|
||||
var secp256k1 = require('../lib/crypto/secp256k1');
|
||||
|
||||
/*
|
||||
* Compression
|
||||
@ -51,7 +51,7 @@ function compressScript(script, bw) {
|
||||
// Saves up to 34 bytes.
|
||||
if (script.isPubkey(true)) {
|
||||
data = script.code[0].data;
|
||||
if (ec.publicKeyVerify(data)) {
|
||||
if (secp256k1.publicKeyVerify(data)) {
|
||||
data = compressKey(data);
|
||||
bw.writeU8(3);
|
||||
bw.writeBytes(data);
|
||||
@ -184,7 +184,7 @@ function compressKey(key) {
|
||||
case 0x06:
|
||||
case 0x07:
|
||||
// Compress the key normally.
|
||||
out = ec.publicKeyConvert(key, true);
|
||||
out = secp256k1.publicKeyConvert(key, true);
|
||||
// Store the original format (which
|
||||
// may be a hybrid byte) in the hi
|
||||
// 3 bits so we can restore it later.
|
||||
@ -223,7 +223,7 @@ function decompressKey(key) {
|
||||
// low bits so publicKeyConvert
|
||||
// actually understands it.
|
||||
key[0] &= 0x03;
|
||||
out = ec.publicKeyConvert(key, false);
|
||||
out = secp256k1.publicKeyConvert(key, false);
|
||||
|
||||
// Reset the hi bits so as not to
|
||||
// mutate the original buffer.
|
||||
|
||||
@ -348,7 +348,7 @@ function keyFromRaw(data, network) {
|
||||
|
||||
if (key.length === 32) {
|
||||
ring.privateKey = key;
|
||||
ring.publicKey = bcoin.ec.publicKeyCreate(key, true);
|
||||
ring.publicKey = bcoin.secp256k1.publicKeyCreate(key, true);
|
||||
} else {
|
||||
ring.publicKey = key;
|
||||
}
|
||||
|
||||
@ -79,7 +79,7 @@
|
||||
"./lib/bcoin": "./lib/bcoin-browser.js",
|
||||
"./lib/blockchain/layout.js": "./lib/blockchain/layout-browser.js",
|
||||
"./lib/crypto/backend.js": "./lib/crypto/backend-browser.js",
|
||||
"./lib/crypto/ec.js": "./lib/crypto/ec-elliptic.js",
|
||||
"./lib/crypto/secp256k1.js": "./lib/crypto/secp256k1-elliptic.js",
|
||||
"./lib/crypto/rsa.js": "./lib/crypto/rsa-browser.js",
|
||||
"./lib/db/backends.js": "./lib/db/backends-browser.js",
|
||||
"./lib/hd/wordlist": "./lib/hd/wordlist-browser.js",
|
||||
|
||||
@ -1,17 +1,17 @@
|
||||
'use strict';
|
||||
|
||||
var assert = require('assert');
|
||||
var ec = require('../lib/crypto/ec');
|
||||
var secp256k1 = require('../lib/crypto/secp256k1');
|
||||
var BIP150 = require('../lib/net/bip150');
|
||||
var BIP151 = require('../lib/net/bip151');
|
||||
|
||||
describe('BIP150', function() {
|
||||
var db = new BIP150.AuthDB();
|
||||
var ck = ec.generatePrivateKey();
|
||||
var sk = ec.generatePrivateKey();
|
||||
var ck = secp256k1.generatePrivateKey();
|
||||
var sk = secp256k1.generatePrivateKey();
|
||||
|
||||
db.addAuthorized(ec.publicKeyCreate(ck, true));
|
||||
db.addKnown('127.0.0.2', ec.publicKeyCreate(sk, true));
|
||||
db.addAuthorized(secp256k1.publicKeyCreate(ck, true));
|
||||
db.addKnown('127.0.0.2', secp256k1.publicKeyCreate(sk, true));
|
||||
|
||||
var client = new BIP151();
|
||||
var server = new BIP151();
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
|
||||
var assert = require('assert');
|
||||
var BN = require('../lib/crypto/bn');
|
||||
var ec = require('../lib/crypto/ec');
|
||||
var secp256k1 = require('../lib/crypto/secp256k1');
|
||||
var base58 = require('../lib/utils/base58');
|
||||
var encoding = require('../lib/utils/encoding');
|
||||
var crypto = require('../lib/crypto/crypto');
|
||||
@ -321,8 +321,8 @@ describe('Utils', function() {
|
||||
});
|
||||
|
||||
it('should do proper schnorr', function() {
|
||||
var key = ec.generatePrivateKey();
|
||||
var pub = ec.publicKeyCreate(key, true);
|
||||
var key = secp256k1.generatePrivateKey();
|
||||
var pub = secp256k1.publicKeyCreate(key, true);
|
||||
var msg = crypto.hash256(Buffer.from('foo', 'ascii'));
|
||||
var sig = schnorr.sign(msg, key);
|
||||
assert(schnorr.verify(msg, sig, pub));
|
||||
|
||||
Loading…
Reference in New Issue
Block a user