ln-crypto
TypeScript icon, indicating that this package has built-in type declarations

0.1.2 • Public • Published

ln-crypto

license node npm type definitions npm bundle size build Quality Gate Status Coverage Maintainability Rating Reliability Rating Security Rating

Message signing and verifying for Lightning Network, without a connection to the network!

Usage

import { generatePrvkey, neuter, recover, sign, verify } from 'ln-crypto';

// an arbitrary message to be signed
const msg = 'The quick brown fox jumps over the lazy dog.';

// generate a pseudorandom private key
const prvkey = generatePrvkey();

// get the corresponding public key
const pubkey = neuter(prvkey);
console.log(pubkey.toString('hex')); // 0280f375eafb209d0255a3139f1013042d55d69005a935da46bea7279d598c366a

// sign the message with secp256k1 and convert the signature into zbase32, which
// is exactly what LND does
const sig = sign(msg, prvkey);
console.log(sig); // d1q3e5fdy96zp3syrhq8zphqnaa5fqbbh9rinozegr1bjr99hssq6hbhstm3pqbh7sfu4hnsyfjjkoewum1ay85gmem98u8wxshyxs5k

// The message receiver can verify the correctness of the signature,
console.log(verify(msg, sig, pubkey)); // true

// or recover a public key from the message and the signature, and compare it
// with the received public key.
console.log(recover(msg, sig).toString('hex')); // 0280f375eafb209d0255a3139f1013042d55d69005a935da46bea7279d598c366a

Readme

Keywords

none

Package Sidebar

Install

npm i ln-crypto

Weekly Downloads

0

Version

0.1.2

License

GPL-3.0

Unpacked Size

42.3 kB

Total Files

7

Last publish

Collaborators

  • nerddan