README
@burstjs/crypto
Cryptographic functions for building Burstcoin apps.
Installation
burstJS can be used with NodeJS or Web. Two formats are available
Using with NodeJS and/or modern web frameworks
Install using npm:
npm install @burstjs/crypto
or using yarn:
yarn add @burstjs/crypto
Example
import {encryptAES, decryptAES, hashSHA256} from '@burstjs/crypto'
const encrypted = encryptAES('test', 'key')
const decrypted = decryptAES(encrypted, 'key')
console.log(hashSHA256('test'))
console.log(decrypted)
Using in classic <script>
Each package is available as bundled standalone library using IIFE.
This way burstJS can be used also within <script>-Tags.
This might be useful for Wordpress and/or other PHP applications.
Just import the package using the HTML <script> tag.
<script src='https://cdn.jsdelivr.net/npm/@burstjs/crypto/dist/burstjs.crypto.min.js'></script>
Example
const encrypted = b$crypto.encryptAES("test", "key");
const decrypted = b$crypto.decryptAES(encrypted, "key");
console.log(b$crypto.hashSHA256("test"));
console.log(decrypted);
See more here:
@burstjs/crypto Online Documentation
API Reference
Modules
- crypto ⇒
Decrypt an encrypted message
- crypto ⇒
Decrypts an encrypted cipher text
- crypto ⇒
Decrypts an encrypted Message
- crypto ⇒
Symmetrically encrypts a text using an arbitrary key
- crypto ⇒
Encrypts arbitrary data for P2P message/data exchange using asymmetric encryption
- crypto ⇒
Encrypts arbitrary message (UTF-8 compatible) for P2P message/data exchange using asymmetric encryption
- crypto ⇒
Generate the Master Public Key and Master Private Keys for a new passphrase
- crypto ⇒
Generate a signature for a transaction
Method:
s = sign(sha256(sha256(transactionHex)_keygen(sha256(sha256(transactionHex)_privateKey)).publicKey), sha256(sha256(transactionHex)_privateKey), privateKey) p = sha256(sha256(transactionHex)_keygen(sha256(transactionHex_privateKey)).publicKey)- crypto ⇒
Generates a signed message digest, which can be sent to BRS API then
- crypto ⇒
Convert hex string of the public key to the account id
- crypto ⇒
- crypto ⇒
Hash string into hex string
- crypto
A secure random passphrase generator
- crypto ⇒
Verify a signature for given message
- Method:
* h1 = sha256(sha256(transactionHex)_keygen(sha256(transactionHex_privateKey)).publicKey) == sha256(sha256(transactionHex)_verify(v, h1, publickey)) = h2- crypto
Classes
- Converter
A set of useful converter methods for crypto operations.
Constants
- IV_LENGTH
Original work Copyright (c) 2018 PoC-Consortium Modified work Copyright (c) 2019 Burst Apps Team
- IV_LENGTH
Original work Copyright (c) 2018 PoC-Consortium Modified work Copyright (c) 2019 Burst Apps Team
crypto ⇒
Decrypt an encrypted message
Returns:
The decrypted content
See:
[[encryptAES]]
| Param | Description |
|---|---|
| encryptedBase64 | encrypted data in base64 format |
| key | The secret key |
crypto ⇒
Decrypts an encrypted cipher text
Returns:
The original plain text
| Param | Description |
|---|---|
| encryptedData | The encrypted data |
| senderPublicKeyHex | The senders public key in hex format |
| recipientPrivateKeyHex | The recipients private (agreement) key in hex format |
crypto ⇒
Decrypts an encrypted Message
Returns:
The original message
| Param | Description |
|---|---|
| encryptedMessage | The encrypted message |
| senderPublicKeyHex | The senders public key in hex format |
| recipientPrivateKeyHex | The recipients private (agreement) key in hex format |
crypto ⇒
Symmetrically encrypts a text using an arbitrary key
Returns:
The encrypted message as Base64 string
See:
[[decryptAES]]
| Param | Description |
|---|---|
| text | The message/text to be encrypted |
| key | The key used |
crypto ⇒
Encrypts arbitrary data for P2P message/data exchange using asymmetric encryption
Returns:
The encrypted Data
See:
[[decryptData]]
| Param | Description |
|---|---|
| plaintext | Data to be encrypted |
| recipientPublicKeyHex | The recipients public key in hexadecimal format |
| senderPrivateKeyHex | The senders private (agreement) key hexadecimal format |
crypto ⇒
Encrypts arbitrary message (UTF-8 compatible) for P2P message/data exchange using asymmetric encryption
Returns:
The encrypted Message
See:
[[decryptMessage]]
| Param | Description |
|---|---|
| plaintext | Message to be encrypted |
| recipientPublicKeyHex | The recipients public key hexadecimal format |
| senderPrivateKeyHex | The senders private (agreement) key hexadecimal format |
crypto ⇒
Generate the Master Public Key and Master Private Keys for a new passphrase
Returns:
EC-KCDSA sign key pair + agreement key
| Param | Description |
|---|---|
| passPhrase | The passphrase |
crypto ⇒
Generate a signature for a transaction
Method:
s = sign(sha256(sha256(transactionHex)_keygen(sha256(sha256(transactionHex)_privateKey)).publicKey),
sha256(sha256(transactionHex)_privateKey),
privateKey)
p = sha256(sha256(transactionHex)_keygen(sha256(transactionHex_privateKey)).publicKey)
Returns:
The signature in hexadecimal format
| Param | Description |
|---|---|
| messageHex | The data in hexadecimal representation |
| privateKey | The private key for signing |
crypto ⇒
Generates a signed message digest, which can be sent to BRS API then
Returns:
The signed message digest
| Param | Description |
|---|---|
| unsignedTransactionHex | The unsigned message |
| signature | The signature |
crypto ⇒
Convert hex string of the public key to the account id
Returns:
The numeric account Id
| Param | Description |
|---|---|
| publicKey | The public key |
crypto ⇒
Returns:
A decimal string
Internal: Arbitrary length hexadecimal to decimal conversion https://stackoverflow.com/questions/21667377/javascript-hexadecimal-string-to-decimal-string
| Param | Description |
|---|---|
| s | A hexadecimal string |
crypto ⇒
Hash string into hex string
Returns:
the hash for that string in hex format
| Param | Description |
|---|---|
| input | An arbitrary text |
crypto
A secure random passphrase generator
Note: For secure randomization seedrandom is used.
crypto ⇒
Verify a signature for given message
- Method:
* h1 = sha256(sha256(transactionHex)_keygen(sha256(transactionHex_privateKey)).publicKey)
==
sha256(sha256(transactionHex)_verify(v, h1, publickey)) = h2
Returns:
true, if signature is valid, otherwise false
See:
[[generateSignature]]
| Param | Description |
|---|---|
| signature | The signature to be verified |
| messageHex | The message data in hexadecimal representation |
| publicKey | The public key |
crypto
Converter
A set of useful converter methods for crypto operations.
IV_LENGTH
Original work Copyright (c) 2018 PoC-Consortium Modified work Copyright (c) 2019 Burst Apps Team
IV_LENGTH
Original work Copyright (c) 2018 PoC-Consortium Modified work Copyright (c) 2019 Burst Apps Team
Kind: global constant