Research
Security News
Kill Switch Hidden in npm Packages Typosquatting Chalk and Chokidar
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
Private Key, Public Key, Signature, AES, Encryption / Decryption
import ecc from 'eosjs-ecc'
// or
const ecc = require('eosjs-ecc')
yarn add eosjs-ecc
<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>
Type: string
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
Does not pause to gather CPU entropy.
Returns Promise<PrivateKey> test key
cpuEntropyBits
number gather additional entropy
from a CPU mining algorithm. This will already happen once by
default. (optional, default 0
)ecc.randomKey().then(privateKey => {
console.log('Private Key:\t', privateKey) // wif
console.log('Public Key:\t', ecc.privateToPublic(privateKey)) // EOSkey...
})
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.ecc.seedPrivate('secret') === wif
Returns wif
ecc.privateToPublic(wif) === pubkey
Returns pubkey
ecc.isValidPublic(pubkey) === true
Returns boolean valid
wif
wifecc.isValidPrivate(wif) === true
Returns boolean valid
Create a signature using data or a hash.
data
(string | Buffer)privateKey
(wif | PrivateKey)encoding
String data encoding (if string) (optional, default 'utf8'
)ecc.sign('I am alive', wif)
Returns string string signature
dataSha256
(String | Buffer) sha256 hash 32 byte buffer or stringprivateKey
(wif | PrivateKey)encoding
String dataSha256 encoding (if string) (optional, default 'hex'
)Returns string string signature
Verify signed data.
signature
(string | Buffer) buffer or hex stringdata
(string | Buffer)pubkey
(pubkey | PublicKey)encoding
(optional, default 'utf8'
)hashData
boolean sha256 hash data before verify (optional, default true
)ecc.verify(signature, 'I am alive', pubkey) === true
Returns boolean
Recover the public key used to create the signature.
signature
(String | Buffer) (EOSbase58sig.., Hex, Buffer)data
(String | Buffer) full dataencoding
String data encoding (if data is a string) (optional, default 'utf8'
)ecc.recover(signature, 'I am alive') === pubkey
Returns pubkey
signature
(String | Buffer) (EOSbase58sig.., Hex, Buffer)dataSha256
(String | Buffer) sha256 hash 32 byte buffer or hex stringencoding
String dataSha256 encoding (if dataSha256 is a string) (optional, default 'hex'
)Returns PublicKey
data
(string | Buffer) always binary, you may need Buffer.from(data, 'hex')resultEncoding
(optional, default 'hex'
)encoding
string result encoding 'hex', 'binary' or 'base64' (optional, default 'hex'
)ecc.sha256('hashme') === '02208b..'
ecc.sha256(Buffer.from('02208b', 'hex')) === '29a23..'
Returns (string | Buffer) Buffer when encoding is null, or string
EOSKey..
Type: string
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()
git clone https://github.com/EOSIO/eosjs-ecc.git
cd eosjs-ecc
yarn
yarn 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)
})
FAQs
Elliptic curve cryptography functions
The npm package eosjs-ecc receives a total of 12,937 weekly downloads. As such, eosjs-ecc popularity was classified as popular.
We found that eosjs-ecc demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 8 open source maintainers collaborating on the project.
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.
Research
Security News
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.