JSPM

  • Created
  • Published
  • Downloads 1012
  • Score
    100M100P100Q105238F
  • License ISC

input-output-hk/cardano-crypto compiled to pure javascript using Emscripten

Package Exports

  • cardano-crypto.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (cardano-crypto.js) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

cardano-crypto.js

compiled to pure javascript using Emscripten. This is a collection of cryptolibraries useful for doing Cardano cryptography, eliminating the need for many dependencies.

examples

signing

var lib = require('cardano-crypto.js')

var mnemonic = 'logic easily waste eager injury oval sentence wine bomb embrace gossip supreme'
var walletSecret = lib.walletSecretFromMnemonic(mnemonic)
var msg = new Buffer('hello there')
var sig = lib.sign(msg, walletSecret)

deriving child keys (hardened derivation, you can choose either derivation mode 1 or 2)

var lib = require('cardano-crypto.js')

var mnemonic = 'logic easily waste eager injury oval sentence wine bomb embrace gossip supreme'
var parentWalletSecret = lib.walletSecretFromMnemonic(mnemonic)
var childWalletSecret = lib.derivePrivate(parentWalletSecret, 0x80000001, 1)

deriving child public keys (nonhardened derivation, you can choose either derivation mode 1 or 2)

var lib = require('cardano-crypto.js')

var mnemonic = 'logic easily waste eager injury oval sentence wine bomb embrace gossip supreme'
var parentWalletSecret = lib.walletSecretFromMnemonic(mnemonic)
var parentWalletPublicKey = parentWalletSecret.slice(64, 128)
var childWalletSecret = lib.derivePublic(parentWalletPublicKey, 1, 1)

available functions

  • Buffer sign(Buffer msg, Buffer walletSecret)
  • Bool verify(Buffer msg, Buffer publicKey, Buffer sig)
  • Buffer walletSecretFromMnemonic(String mnemonic)
  • Buffer derivePrivate(Buffer parentKey, int index, int derivationMode)
  • Buffer derivePublic(Buffer parentExtPubKey, int index, int derivationMode)
  • Buffer blake2b256(Buffer input)
  • Buffer sha3_256(Buffer input)
  • Buffer chacha20poly1305Encrypt(Buffer input, Buffer key, Buffer nonce)
  • Buffer chacha20poly1305Decrypt(Buffer input, Buffer key, Buffer nonce)
  • Buffer cardanoMemoryCombine(Buffer input, String password)

We encourage you to take a look at test/index.js to see how the functions above should be used.

development

  • Install emscripten
  • run npm install
  • run npm run build

tests

  • run npm run test