Socket
Socket
Sign inDemoInstall

libp2p-crypto-secp256k1

Package Overview
Dependencies
25
Maintainers
2
Versions
14
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    libp2p-crypto-secp256k1

Support for secp256k1 keys in libp2p-crypto


Version published
Weekly downloads
4.8K
increased by26.25%
Maintainers
2
Install size
6.83 MB
Created
Weekly downloads
 

Changelog

Source

0.4.3 (2020-03-25)

<a name="0.4.2"></a>

Readme

Source

js-libp2p-crypto-secp256k1

Discourse posts Dependency Status js-standard-style

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.

Lead Captain

Friedel Ziegelmayer

Table of Contents

Install

npm install --save libp2p-crypto-secp256k1

Usage

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.

Example

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')

API

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.

Contribute

Feel free to join in. All welcome. Open an issue!

This repository falls under the IPFS Code of Conduct.

License

MIT

Keywords

FAQs

Last updated on 25 Mar 2020

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc