xStorage impletion of ipfs js-libp2p-crypto-secp256k1
Last updated 2 years ago by paulplayer .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install @xstorage/xs-js-libp2p-crypto-secp256k1 
SYNC missed versions from official npm registry.


![npm](https://img.shields.io/badge/Project-xS js libp2p crypto-blue.svg?style=plastic) npm npm

Build Status codecov Nodejs npm

Support for secp256k1 keys in xS-js-libp2p-crypto

维护者: Paul Zhang, Chunhv Liu

This repo contains a xS-js-libp2p-crypto-compatible implementation of cryptographic signature generation and verification using the secp256k1 elliptic curve popularized by Bitcoin and other crypto currencies.

Table of Contents

1. 安装

npm install --save xS-js-libp2p-crypto-secp256k1

2. 使用

This module is designed to work with xS-js-libp2p-crypto
Installing xS-js-libp2p-crypto-secp256k1 will automatically add support for the 'secp256k1' key type, which can be used as an argument to the xS-js-libp2p-crypto API functions generateKeyPair, unmarshalPublicKey, and marshalPrivateKey. The keys returned from those functions will be instances of the Secp256k1PublicKey or Secp256k1PrivateKey classes provided by this module.


const crypto = require('libp2p-crypto')

const msg = Buffer.from('Hello World')

crypto.generateKeyPair('secp256k1', 256, (err, key) => {
  // assuming no error, key will be an instance of Secp256k1PrivateKey
  // the public key is available as key.public
  key.sign(msg, (err, sig) => {
    key.public.verify(msg, sig, (err, valid) => {
      assert(valid, 'Something went horribly wrong')

3. API

The functions below are the public API of this module.

generateKeyPair([bits, ] callback)

  • bits: Number - Optional, included for compatibility with js-libp2p-crypto. Ignored if present; private keys will always be 256 bits.
  • callback: Function


  • bytes: Buffer

Converts a serialized secp256k1 public key into an instance of Secp256k1PublicKey and returns it

unmarshalSecp256k1PrivateKey(bytes, callback)

  • bytes: Buffer
  • callback: Function

Converts a serialized secp256k1 private key into an instance of Secp256k1PrivateKey, passing it to callback on success


.verify(data, sig, callback)

  • data: Buffer
  • sig: Buffer
  • callback: Function

Calculates the SHA-256 hash of data, and verifies the DER-encoded signature in sig, passing the result to callback



Accessor for the Secp256k1PublicKey associated with this private key.

.sign(data, callback)

  • data: Buffer

Calculates the SHA-256 hash of data and signs it, passing the DER-encoded signature to callback

4. Contribute

Contributions welcome. Please check out the issues.

5. 致谢

@multiformats multiaddr

6. 资助我们

Cryptocurrency is welcomed.

ETH: 0xCd0e5cE4a29Fd6441b95FA857753f68D09339628

7. License

MIT © 2016 Protocol Labs Inc.

Current Tags

  • 0.1.2                                ...           latest (2 years ago)

4 Versions

  • 0.1.2                                ...           2 years ago
  • 0.1.1                                ...           2 years ago
  • 0.0.4                                ...           2 years ago
  • 0.0.3                                ...           2 years ago
Maintainers (1)
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 1
Dependencies (5)
Dev Dependencies (6)

Copyright 2014 - 2016 © taobao.org |