Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

symcryptor

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

symcryptor

SymCryptor allows you to easy use a symmetric encryption (with AES-CTR-256) and a signature method (with KMAC-256)

  • 1.0.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

SymCryptor

SymCryptor allows you to easy use a symmetric encryption (with AES-CTR-256) and a signature method (with KMAC-256)

Installation

npm i symcryptor

Test

npm test

Usage

const symCryptor = require( 'symcryptor' );
( async () => {
    const clearText = 'Hello world!';

    // For hashing
    const hashSecret = await symCryptor.rndBytes( 32 ); // Return a random 256-bit Buffer
    const digest = symCryptor.getHmac( clearText, hashSecret ); // Return a 512-bit Buffer as digest

    // For encryption
    const key = await symCryptor.rndBytes( 32 ); // Key must be a Buffer or Uint8Array of 512-bit
    const encrypted = await symCryptor.encrypt( clearText, key, hashSecret ); // Return a Buffer

    // For decryption
    const decrypted = await symCryptor.decrypt( clearText, key, hashSecret ); // Return a Buffer
} )();

Methods

symCryptor.rndBytes

symCryptor.rndBytes( length: Number [, bytes: Boolean = false] )
Parameters
  • length Required - The length of random data in bytes
  • bytes Optional - If true return Uint8Array instead of Buffer on fulfillment
Return

Random Buffer | Uint8Array of selected length when Promise resolved else throw an Error

symCryptor.getHmac

symCryptor.getHmac( data: String | Buffer | Uint8Array, key: Buffer | Uint8Array [, customization: String | Buffer | Uint8Array = '' [, bytes: Boolean = false]] )
Parameters
  • data Required - The data you want hash
  • key Required - The secret key (it should be of 256-bit)
  • customization Optional - Some data you want to pass to hash algorithm (like AAD in AES-GCM)
  • bytes Optional - If true return Uint8Array instead of Buffer
Return

A 512-bit Buffer | Uint8Array as digest else throw an Error

symCryptor.encrypt

symCryptor.encrypt( data: String | Buffer | Uint8Array, key: Buffer | Uint8Array [, hashKey: Buffer | Uint8Array [, customization: String | Buffer | Uint8Array = '' [, bytes: Boolean = false]]] )
Parameters
  • data Required - The data you want to encrypt
  • key Required - The key you want to use for encryption (it must be of 256-bit)
  • hashKey Optional - The key you want to use to sign encrypted data
  • customization Optional - Some data you want to pass to hash algorithm (like AAD in AES-GCM)
  • bytes Optional - If true return Uint8Array instead of Buffer on fulfillment
Return

Buffer | Uint8Array when Promise resolved else throw an Error

symCryptor.decrypt

symCryptor.decrypt( data: Buffer | Uint8Array, key: Buffer | Uint8Array [, hashKey: Buffer | Uint8Array [, customization: String | Buffer | Uint8Array = '' [, bytes: Boolean = false]]] )
Parameters
  • data Required - The encrypted data you want to decrypt
  • key Required - The key you have to use for decryption (it must be of 256-bit)
  • hashKey Optional - The key you have to use to verify signature of encrypted data (required if data was signed)
  • customization Optional - Some data you have to pass to hash algorithm (like AAD in AES-GCM; required if it was passed during encryption)
  • bytes Optional - If true return Uint8Array instead of Buffer on fulfillment
Return

Buffer | Uint8Array when Promise resolved else throw an Error

Note

  • IV and signature are automatically added to encrypted data and removed when data will be decrypted

Keywords

FAQs

Package last updated on 12 Dec 2022

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc