How to use the bitcoinjs-lib.ECKey function in bitcoinjs-lib

To help you get started, we’ve selected a few bitcoinjs-lib examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github codius-deprecated / codius-engine / lib / crypto.js View on Github external
var pair = {};

  if (signature_scheme === 'ec_secp256k1') {

    pair.private = deriveSecret(parent_secret, child_name, 'sha256');

    // If the private key is greater than the curve modulus we
    // use a counter to get a new random secret
    var modulus = new BigInteger(ecurve.getCurveByName('secp256k1').n, 16);
    var counter = 1;
    while (!pair.private || modulus.compareTo(pair.private) < 0) {
      pair.private = deriveSecret(parent_secret, child_name + '_' + counter, 'sha256');
      counter += 1;
    }

    pair.public = new bitcoinjs.ECKey(new BigInteger(pair.private, 16), false).pub.toHex();

  } else {

    throw new Error('Signature scheme: ' + signature_scheme + ' not currently supported');

  }

  return pair;
}
github blockai-unofficial / bitstore-client / src / index.js View on Github external
if (!options.host) {
    options.host = defaultHosts[options.network];
  }

  options.userAgent = options.userAgent || 'bitstore-cli/v' + pkg.version;

  let network;
  if (options.network === 'testnet') {
    network = bitcoin.networks.testnet;
  }

  let signMessage = options.signMessage;
  let addressString = options.address;

  if (!options.signMessage) {
    const key = bitcoin.ECKey.fromWIF(options.privateKey);
    addressString = key.pub.getAddress(network).toString();
    const memo = {};
    signMessage = (message) => {
      if (memo[message]) return memo[message];
      const signature = bitcoin.Message.sign(key, message, network).toString('base64');
      memo[message] = signature;
      return signature;
    };
  }

  // const addressString = privKey.toPublicKey().toAddress().toString();

  /**
   * Wrapper around superagent that automatically builds URLs
   * and adds authentication option.
   *
github blockchain / My-Wallet-V3 / src / jaume-spender.js View on Github external
var getKeyForAddress = function (neededPrivateKeyAddress) {
          var k = WalletStore.getPrivateKey(neededPrivateKeyAddress);
          var privateKeyBase58 = payment.secondPassword === null
            ? k
            : WalletCrypto.decryptSecretWithSecondPassword(
                k, payment.secondPassword, payment.sharedKey, payment.pbkdf2_iterations);
          // TODO If getPrivateKey returns null, it's a watch only address
          // - ask for private key or show error or try again without watch only addresses
          var format = MyWallet.detectPrivateKeyFormat(privateKeyBase58);
          var key = MyWallet.privateKeyStringToKey(privateKeyBase58, format);

          // If the address we looked for is not the public key address of the
          // private key we found, try the compressed address
          if (MyWallet.getCompressedAddressString(key) === neededPrivateKeyAddress) {
            key = new Bitcoin.ECKey(key.d, true);
          }
          return key;
        }
        return tx.addressesOfNeededPrivateKeys.map(getKeyForAddress);
github blockai-unofficial / bitstore-client / test / index.js View on Github external
signMessage: (message, cb) => {
        const key = bitcoin.ECKey.fromWIF('KyjhazeX7mXpHedQsKMuGh56o3rh8hm8FGhU3H6HPqfP9pA4YeoS');
        const network = bitcoin.networks.testnet;
        setImmediate(() => {
          cb(null, bitcoin.Message.sign(key, message, network).toString('base64'));
        });
      },
    });
github blockai-unofficial / bitstore-client / test / index.js View on Github external
signMessage: (message) => {
        const key = bitcoin.ECKey.fromWIF('KyjhazeX7mXpHedQsKMuGh56o3rh8hm8FGhU3H6HPqfP9pA4YeoS');
        const network = bitcoin.networks.testnet;
        return bitcoin.Message.sign(key, message, network).toString('base64');
      },
    });
github codius-deprecated / codius-engine / lib / crypto.js View on Github external
function sign(private_key, data) {
  var key = new bitcoinjs.ECKey(new BigInteger(private_key, 16), false);
  var hash = bitcoinjs.crypto.hash256(new Buffer(data, 'hex'));
  return key.sign(hash).toDER().toString('hex');
}
github blockchain / My-Wallet-V3 / src / wallet-spender.js View on Github external
var getKeyForAddress = function (addr) {
          var searchAddr = addressPair[addr] === undefined ? addr : addressPair[addr];
          var k = MyWallet.wallet.key(searchAddr).priv;
          var privateKeyBase58 = secondPassword == null ? k : WalletCrypto
            .decryptSecretWithSecondPassword(k, secondPassword, sharedKey, pbkdf2_iterations);
          var format = MyWallet.detectPrivateKeyFormat(privateKeyBase58);
          var key = MyWallet.privateKeyStringToKey(privateKeyBase58, format);
          if (MyWallet.getCompressedAddressString(key) === addr) {
            key = new Bitcoin.ECKey(key.d, true);
          }
          else if (MyWallet.getUnCompressedAddressString(key) === addr) {
            key = new Bitcoin.ECKey(key.d, false);
          }
          return key;
        }
        return tx.addressesOfNeededPrivateKeys.map(getKeyForAddress);
github blockchain / My-Wallet-V3 / src / wallet-spender.js View on Github external
var getKeyForAddress = function (addr) {
          var searchAddr = addressPair[addr] === undefined ? addr : addressPair[addr];
          var k = MyWallet.wallet.key(searchAddr).priv;
          var privateKeyBase58 = secondPassword == null ? k : WalletCrypto
            .decryptSecretWithSecondPassword(k, secondPassword, sharedKey, pbkdf2_iterations);
          var format = MyWallet.detectPrivateKeyFormat(privateKeyBase58);
          var key = MyWallet.privateKeyStringToKey(privateKeyBase58, format);
          if (MyWallet.getCompressedAddressString(key) === addr) {
            key = new Bitcoin.ECKey(key.d, true);
          }
          else if (MyWallet.getUnCompressedAddressString(key) === addr) {
            key = new Bitcoin.ECKey(key.d, false);
          }
          return key;
        }
        return tx.addressesOfNeededPrivateKeys.map(getKeyForAddress);
github olalonde / proof-of-assets / lib / index.js View on Github external
private_keys.forEach(function (priv) {
    var bytes = bitcoinjs.base58.checkDecode(priv);

    var compressed = false;
    if (bytes.length > 32) {
      compressed = true;
    }

    var key = new bitcoinjs.ECKey(bytes, compressed);
    var addr = key.getBitcoinAddress().toString();

    var sig = bitcoinjs.Message.signMessage(key, message);

    res.signatures.push({
      address: addr,
      signature: sig
    });
  });