
Product
Announcing Socket Fix 2.0
Socket Fix 2.0 brings targeted CVE remediation, smarter upgrade planning, and broader ecosystem support to help developers get to zero alerts.
libp2p-crypto-secp256k1
Advanced tools
Support for secp256k1 keys in js-libp2p-crypto
This repo contains a js-libp2p-crypto-compatible implementation of cryptographic signature generation and verification using the secp256k1 elliptic curve popularized by Bitcoin and other crypto currencies.
npm install --save libp2p-crypto-secp256k1
This module is designed to work with js-libp2p-crypto.
Installing libp2p-crypto-secp256k1
will automatically add support for the 'secp256k1'
key type, which
can be used as an argument to the 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')
const key = await crypto.generateKeyPair('secp256k1', 256)
// assuming no error, key will be an instance of Secp256k1PrivateKey
// the public key is available as key.public
const sig = await key.sign(msg)
const valid = await key.public.verify(msg, sig)
assert(valid, 'Something went horribly wrong')
The functions below are the public API of this module.
For usage within libp2p-crypto
, see the libp2p-crypto
API documentation.
generateKeyPair([bits])
bits: Number
- Optional, included for compatibility with js-libp2p-crypto. Ignored if present; private keys will always be 256 bits.Returns Promise<Secp256k1PrivateKey>
unmarshalSecp256k1PublicKey(bytes)
bytes: Buffer
Converts a serialized secp256k1 public key into an instance of Secp256k1PublicKey
and returns it
unmarshalSecp256k1PrivateKey(bytes)
bytes: Buffer
Returns Promise<Secp256k1PrivateKey>
Converts a serialized secp256k1 private key into an instance of Secp256k1PrivateKey
.
Secp256k1PublicKey
.verify(data, sig)
data: Buffer
sig: Buffer
Returns Promise<Boolean>
Calculates the SHA-256 hash of data
, and verifies the DER-encoded signature in sig
.
Secp256k1PrivateKey
.public
Accessor for the Secp256k1PublicKey
associated with this private key.
.sign(data)
data: Buffer
Returns Promise<Buffer>
Calculates the SHA-256 hash of data
and signs it, resolves with the DER-encoded signature.
Feel free to join in. All welcome. Open an issue!
This repository falls under the IPFS Code of Conduct.
0.4.3 (2020-03-25)
<a name="0.4.2"></a>
FAQs
Support for secp256k1 keys in libp2p-crypto
We found that libp2p-crypto-secp256k1 demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket Fix 2.0 brings targeted CVE remediation, smarter upgrade planning, and broader ecosystem support to help developers get to zero alerts.
Security News
Socket CEO Feross Aboukhadijeh joins Risky Business Weekly to unpack recent npm phishing attacks, their limited impact, and the risks if attackers get smarter.
Product
Socket’s new Tier 1 Reachability filters out up to 80% of irrelevant CVEs, so security teams can focus on the vulnerabilities that matter.