0.0.1 • Published 7 years ago
react-native-eosjs-ecc v0.0.1
Elliptic curve cryptography functions (ECC)
Private Key, Public Key, Signature, AES, Encryption / Decryption
Import
import ecc from 'eosjs-ecc'
// or
const ecc = require('eosjs-ecc')Include
- Install with: npm install eosjs-ecc
- Html script tag, see releases for the correct version and its matching script integrity hash.
<html>
<head>
  <meta charset="utf-8">
  <!--
  sha512-cL+IQQaQ586s9DrXfGtDheRpj5iDKh2M+xlpfwbhNjRIp4BGQ1fkM/vB4Ta8mc+f51YBW9sJiPcyMDIreJe6gQ== lib/eosjs-ecc.js
  sha512-dYFDmK/d9r3/NCp6toLtfkwOjSMRBaEzaGAx1tfRItC0nsI0hVLERk05iNBQR7uDNI7ludYhcBI4vUiFHdjsTQ== lib/eosjs-ecc.min.js
  sha512-eq1SCoSe38uR1UVuQMwR73VgY8qKTBDc87n2nIiC5WLhn1o2y1U6c5wY8lrigVX7INM8fM0PxDlMX5WvpghKig== lib/eosjs-ecc.min.js.map
  -->
  <script src="https://cdn.jsdelivr.net/npm/eosjs-ecc@4.0.4/lib/eosjs-ecc.min.js"
    integrity="sha512-dYFDmK/d9r3/NCp6toLtfkwOjSMRBaEzaGAx1tfRItC0nsI0hVLERk05iNBQR7uDNI7ludYhcBI4vUiFHdjsTQ=="
    crossorigin="anonymous"></script>
</head>
<body>
  See console object: eosjs_ecc
</body>
</html>Common API
Table of Contents
- wif
- ecc
- pubkey
wif
Type: string
ecc
initialize
Initialize by running some self-checking code. This should take a second to gather additional CPU entropy used during private key generation.
Initialization happens once even if called multiple times.
Returns Promise
unsafeRandomKey
Does not pause to gather CPU entropy.
Returns Promise<PrivateKey> test key
randomKey
Parameters
- cpuEntropyBitsnumber gather additional entropy from a CPU mining algorithm. This will already happen once by default. (optional, default- 0)
Examples
ecc.randomKey().then(privateKey => {
console.log('Private Key:\t', privateKey) // wif
console.log('Public Key:\t', ecc.privateToPublic(privateKey)) // EOSkey...
})seedPrivate
Parameters
- seedstring 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') === wifReturns wif
privateToPublic
Parameters
Examples
ecc.privateToPublic(wif) === pubkeyReturns pubkey
isValidPublic
Parameters
Examples
ecc.isValidPublic(pubkey) === trueReturns boolean valid
isValidPrivate
Parameters
- wifwif
Examples
ecc.isValidPrivate(wif) === trueReturns boolean valid
sign
Create a signature using data or a hash.
Parameters
- data(string | Buffer)
- privateKey(wif | PrivateKey)
- encodingString data encoding (if string) (optional, default- 'utf8')
Examples
ecc.sign('I am alive', wif)Returns string string signature
signHash
Parameters
- dataSha256(String | Buffer) sha256 hash 32 byte buffer or string
- privateKey(wif | PrivateKey)
- encodingString dataSha256 encoding (if string) (optional, default- 'hex')
Returns string string signature
verify
Verify signed data.
Parameters
- signature(string | Buffer) buffer or hex string
- data(string | Buffer)
- pubkey(pubkey | PublicKey)
- encoding(optional, default- 'utf8')
- hashDataboolean sha256 hash data before verify (optional, default- true)
Examples
ecc.verify(signature, 'I am alive', pubkey) === trueReturns boolean
recover
Recover the public key used to create the signature.
Parameters
- signature(String | Buffer) (EOSbase58sig.., Hex, Buffer)
- data(String | Buffer) full data
- encodingString data encoding (if data is a string) (optional, default- 'utf8')
Examples
ecc.recover(signature, 'I am alive') === pubkeyReturns pubkey
recoverHash
Parameters
- signature(String | Buffer) (EOSbase58sig.., Hex, Buffer)
- dataSha256(String | Buffer) sha256 hash 32 byte buffer or hex string
- encodingString dataSha256 encoding (if dataSha256 is a string) (optional, default- 'hex')
Returns PublicKey
sha256
Parameters
- data(string | Buffer) always binary, you may need Buffer.from(data, 'hex')
- resultEncoding(optional, default- 'hex')
- encodingstring result encoding 'hex', 'binary' or 'base64' (optional, default- 'hex')
Examples
ecc.sha256('hashme') === '02208b..'ecc.sha256(Buffer.from('02208b', 'hex')) === '29a23..'Returns (string | Buffer) Buffer when encoding is null, or string
pubkey
EOSKey..
Type: string
Usage (Object API)
let {PrivateKey, PublicKey, Signature, Aes, key_utils, config} = require('eosjs-ecc')
// Create a new random private key
let privateWif
PrivateKey.randomKey().then(privateKey => privateWif = privateKey.toWif())
// Convert to a public key
pubkey = PrivateKey.fromString(privateWif).toPublic().toString()Browser
git clone https://github.com/EOSIO/eosjs-ecc.git
cd eosjs-ecc
npm install
npm run build_browser
# builds: ./dist/eosjs-ecc.js
# Verify release hash<script src=eosjs-ecc.js></script>var ecc = eosjs_ecc
ecc.randomKey().then(privateWif =>  {
  var pubkey = ecc.privateToPublic(privateWif)
  console.log(pubkey)
})0.0.1
7 years ago