1.6.1 • Published 4 years ago

ala-ecc1 v1.6.1

Weekly downloads
4
License
MIT
Repository
github
Last release
4 years ago

NPM Build Status

Elliptic curve cryptography functions (ECC)

Private Key, Public Key, Signature, AES, Encryption / Decryption

Import

import ecc from 'ala-ecc1'
// or
const ecc = require('ala-ecc1')

Common API

wif

Wallet Import Format

Type: string

ecc

randomKey

Parameters

  • cpuEntropyBits number gather additional entropy from a CPU mining algorithm. Set to 0 for testing. (optional, default 128)

Examples

ecc.randomKey()

Returns wif

seedPrivate

Parameters

  • seed string any length string. This is private. The same seed produces the same private key every time. At least 128 random bits should be used to produce a good private key.

Examples

ecc.seedPrivate('secret') === wif

Returns wif

privateToPublic

Parameters

Examples

ecc.privateToPublic(wif) === pubkey

Returns pubkey

isValidPublic

Parameters

Examples

ecc.isValidPublic(pubkey) === true

Returns boolean valid

isValidPrivate

Parameters

Examples

ecc.isValidPrivate(wif) === true

Returns boolean valid

sign

Create a signature using data or a hash.

Parameters

  • data (string | Buffer)
  • privateKey (wif | PrivateKey)
  • hashData boolean sha256 hash data before signing (optional, default true)

Examples

ecc.sign('I am alive', wif)

Returns string hex signature

verify

Verify signed data.

Parameters

Examples

ecc.verify(signature, 'I am alive', pubkey) === true

Returns boolean

recover

Recover the public key used to create the signature.

Parameters

  • signature String (hex, etc..)
  • data (String | Buffer)
  • hashData boolean sha256 hash data before recover (optional, default true)

Examples

ecc.recover(signature, 'I am alive') === pubkey

Returns pubkey

sha256

Parameters

  • data (string | Buffer)
  • encoding string 'hex', 'binary' or 'base64' (optional, default 'hex')

Examples

ecc.sha256('hashme') === '02208b..'

Returns (string | Buffer) Buffer when encoding is null, or string

pubkey

ALAKey..

Type: string

Usage (Object API)

let {PrivateKey, PublicKey, Signature, Aes, key_utils, config} = require('ala-ecc1')

// Create a new random private key
privateWif = PrivateKey.randomKey().toWif()


// Convert to a public key
pubkey = PrivateKey.fromWif(privateWif).toPublic().toString()

Browser

git clone https://github.com/ALADIN-Network/ala-ecc1.git
cd ala-ecc1
npm install
npm run build
# builds: ./dist/ala-ecc1.js
# Verify release hash
<script src=ala-ecc1.js></script>
var ecc = alaexplorerjs_ecc
var privateWif = ecc.randomKey()
var pubkey = ecc.privateToPublic(privateWif)
console.log(pubkey)

Configure

const {config} = require('ala-ecc1')

// Change the public key address prefix
// config.address_prefix = 'XXX'

See Config