hybrid-ecies
Install
Install nodejs
npm i hybrid-ecies
npm test
Usage
// Typescript ; ; // use ecies to call methods
// javascript const ECIES = ; let ecies = ; // use ecies to call methods
hybrid-ecies › Globals › "ecies" › ECIES
Class: ECIES
Hybrid EC encryption scheme that takes an EC curve secp256k1, and chacha20-poly1305 or aes-256-gcm to encrypt data. The returned data is a packed Buffer with the public key, nonce/iv, tag, and encrypted data.
Hierarchy
- ECIES
Index
Methods
- JWKtoBuffer
- createKeyPair
- decryptAES256
- decryptChaCha20
- encryptAES256
- encryptChaCha20
- getDER
- getPEM
- getPublicKey
- getSecret
- privateJWK
- publicJWK
Methods
JWKtoBuffer
▸ JWKtoBuffer(jwk
: JWK): Buffer
Return a Buffer from either a public or private JWK.
Parameters:
Name | Type | Description |
---|---|---|
jwk |
JWK | public or private JSON Web Key |
Returns: Buffer
Buffer of either public or private key
createKeyPair
▸ createKeyPair(): Buffer
This creates a EC secp256k1 key pair and returns the private key as a buffer.
Returns: Buffer
EC Private Key as a Buffer
decryptAES256
▸ decryptAES256(privateKey
: Buffer, encodedData
: Buffer): Buffer
Takes private EC key of the public key used to encrypt the data and decrypts it.
Parameters:
Name | Type | Description |
---|---|---|
privateKey |
Buffer | EC Key used to encrypt the data. |
encodedData |
Buffer | Buffer(Bytes) - ECPubKey(33) iv(12) tag(16) encData(variable) |
Returns: Buffer
Buffer of decrypted data.
decryptChaCha20
▸ decryptChaCha20(privateKey
: Buffer, encodedData
: Buffer): Buffer
Takes private EC key of the public key used to encrypt the data and decrypts it.
Parameters:
Name | Type | Description |
---|---|---|
privateKey |
Buffer | EC Key used to encrypt the data. |
encodedData |
Buffer | Buffer(Bytes) - ECPubKey(33) nonce(12) tag(16) encData(variable) |
Returns: Buffer
Buffer of decrypted data.
encryptAES256
▸ encryptAES256(publicKey
: Buffer, data
: Buffer): Buffer
This takes an EC public key as input, creates an unique EC pair to encrypt the data. Returns a packed buffer of the EC public key, nonce, tag, and encrypted data. Optional to supply Private Key
Parameters:
Name | Type | Description |
---|---|---|
publicKey |
Buffer | EC Public Key |
data |
Buffer | Data to encrypt |
Returns: Buffer
Buffer(Bytes) - ECPubKey(33) iv(12) tag(16) encData(variable)
▸ encryptAES256(publicKey
: Buffer, privateKey
: Buffer, data
: Buffer): Buffer
Parameters:
Name | Type |
---|---|
publicKey |
Buffer |
privateKey |
Buffer |
data |
Buffer |
Returns: Buffer
encryptChaCha20
▸ encryptChaCha20(publicKey
: Buffer, data
: any): Buffer
This takes an EC public key as input, creates an EC pair to encrypt the data. Returns a packed buffer of the EC public key, nonce, tag, and encrypted data. Optional to supply Private Key
Parameters:
Name | Type | Description |
---|---|---|
publicKey |
Buffer | EC Public Key |
data |
any | Data to encrypt |
Returns: Buffer
Buffer(Bytes) - ECPubKey(33) nonce(12) tag(16) encData(variable)
▸ encryptChaCha20(publicKey
: Buffer, privateKey
: Buffer, data
: any): Buffer
Parameters:
Name | Type |
---|---|
publicKey |
Buffer |
privateKey |
Buffer |
data |
any |
Returns: Buffer
getDER
▸ getDER(ecKey
: Buffer, type
: "Private" | "Public"): Buffer
Parameters:
Name | Type |
---|---|
ecKey |
Buffer |
type |
"Private" | "Public" |
Returns: Buffer
getPEM
▸ getPEM(ecKey
: Buffer, encoding
: "RAW" | "DER", type
: "Private" | "Public"): string
Parameters:
Name | Type |
---|---|
ecKey |
Buffer |
encoding |
"RAW" | "DER" |
type |
"Private" | "Public" |
Returns: string
getPublicKey
▸ getPublicKey(privateKey
: Buffer, compress?
: Boolean): Buffer
Takes EC private key and returns the public key.
Parameters:
Name | Type | Description |
---|---|---|
privateKey |
Buffer | EC Private Key |
compress? |
Boolean | If true return only the x value |
Returns: Buffer
publicKey X,Y buffer
getSecret
▸ getSecret(privateKey
: Buffer, publicKey
: Buffer): Buffer
This returns the calculated secret from a private and public key.
Parameters:
Name | Type |
---|---|
privateKey |
Buffer |
publicKey |
Buffer |
Returns: Buffer
secret
privateJWK
▸ privateJWK(privateKey
: Buffer): JWK
This takes an EC private key and returns the JWK.
Parameters:
Name | Type | Description |
---|---|---|
privateKey |
Buffer | EC private key |
Returns: JWK
Json Web Token
publicJWK
▸ publicJWK(publicKey
: Buffer): JWK
This takes an EC public key and returns the JWK.
Parameters:
Name | Type | Description |
---|---|---|
publicKey |
Buffer | EC Public Key |
Returns: JWK
Json Web Token
hybrid-ecies
Index
Modules
hybrid-ecies › Globals › "ecies" › JWK
Interface: JWK
JSON Wek Token
Hierarchy
- JWK
Index
Properties
Properties
crv
• crv: string
Optional
d
• d? : undefined | string
kid
• kid: string
kty
• kty: string
x
• x: string
Optional
y
• y? : undefined | string
hybrid-ecies › Globals › "ecies"