#
sodium
The popular salt-based cryptographic library from libsodium.
Specializing in cryptographic practices for security various types of data.
All data created by this library is formatted in hexadecimal for memory safety.
Some sections here are being converted to use buffers instead of hex-string representations.
#
Functions
sodium.random(min: number, max: number, alpha?: boolean): string
- Creates a randomly generated string.
- If alpha is
true
then strings will be alphabets rather than hexadecimal.
#
Hex
Hexadecimal (or "hex") is a base-16 number system commonly used to represent binary data in a compact form.
sodium.hex.encode(input: string): string
- Converts data into it's hexadecimal form.
sodium.hex.decode(input: string): string
- Converts hexadecimal formatted data into it's original data.
#
Base64
Base64 is a method of encoding binary data into an ASCII string using a fixed-size alphabet, which makes it easier to transmit or store the data over media that are designed to deal with textual data.
sodium.base64.encode(input: string): string
- Converts data into it's base64 form.
sodium.base64.decode(input: string): string
- Converts base64 formatted data into it's original data.
sodium.base64.xencode(input: string): string
- Converts hexadecimal formatted data into it's base64 form.
sodium.base64.xdecode(input: string): string
- Converts base64 formatted data into it's hexadecimal form.
#
HASH
Cryptographic hash function that provides data integrity by creating a unique "fingerprint" of the input data.
Not generally considered a cipher in the traditional sense, but rather a building block for various cryptographic protocols and algorithms.
sodium.hash.enc256(input: string): string
- Creates a SHA-256 block hash based on the input data.
sodium.hash.enc512(input: string): string
- Creates a SHA-512 block hash based on the input data.
#
HMAC
HMAC (Hash-based Message Authentication Code) is a type of message authentication code that provides both authenticity and integrity by using a cryptographic hash function in combination with a secret key to produce a "tag" that verifies the message.
sodium.hmac.key256(): string
- Creates a HMAC-256 cipher key.
sodium.hmac.enc256(input: string, key: string): string
- Creates a HMAC-256 block hash based on the input data.
sodium.hmac.key512(): string
- Creates a HMAC-512 cipher key.
sodium.hmac.enc512(input: string, key: string): string
- Creates a HMAC-512 block hash based on the input data.
sodium.hmac.key512256(): string
- Creates a HMAC-512256 cipher key.
sodium.hmac.enc512256(input: string, key: string): string
- Creates a HMAC-512256 block hash based on the input data.
#
Signature
Digital signatures are used to provide authenticity and integrity of a cipher message.
They use public-key cryptography and a hash function to create a unique digital signature that can be used to verify the authenticity and integrity of the message.
sodium.signature.key(): string, string
- Creates a two-pair signature key.
- Return in order of "Public Key" and "Secret Key".
sodium.signature.encode(input: string, sk: string): string
- Encodes a message with the secret key.
sodium.signature.decode(input: string, pk: string): string
- Decodes a message with the public key.
#
AEAD
Authenticated Encryption with Associated Data (AEAD) is a type of encryption algorithm that provides both confidentiality and authenticity for data.
#
ChaCha20Poly1305
An authenticated encryption algorithm that uses the ChaCha stream cipher for encryption and the Poly1305 message authentication code.
sodium.aead.chachapoly.nonce(): string
- Generates a nonce which is used in securing uniqueness.
sodium.aead.chachapoly.key(base?: string, salt?: string): string
- Generates a key, providing a base acts as an offset, with providing a salt for greater resiliance.
sodium.aead.chachapoly.encrypt(input: string, key: string, nonce: string): string
- Encrypts a messages based on the key and added nonce.
sodium.aead.chachapoly.decrypt(input: string, key: string, nonce: string): string
- Decrypts a messages based on the key and added nonce.
sodium.aead.chachapoly.encode(input: string, key: string): string
- Encrypts a message based on the key, this generates its own nonce internally.
- The nonce is applied to the start of the message.
sodium.aead.chachapoly.decode(input: string, key: string): string
- Decrypts a message based on the key, this handles its own nonce internally.
- The nonce is applied to the start of the message.
#
GCM-256
A block cipher mode of operation called Galois/Counter Mode (GCM) that provides both confidentiality and authenticity, using a 256-bit key.
sodium.aead.gcm.nonce(): string
- Generates a nonce which is used in securing uniqueness.
sodium.aead.gcm.key(base?: string, salt?: string): string
- Generates a key, providing a base acts as an offset, with providing a salt for greater resiliance.
sodium.aead.gcm.encrypt(input: string, key: string, nonce: string): string
- Encrypts a messages based on the key and added nonce.
sodium.aead.gcm.decrypt(input: string, key: string, nonce: string): string
- Decrypts a messages based on the key and added nonce.
sodium.aead.gcm.encode(input: string, key: string): string
- Encrypts a message based on the key, this generates its own nonce internally.
- The nonce is applied to the start of the message.
sodium.aead.gcm.decode(input: string, key: string): string
- Decrypts a message based on the key, this handles its own nonce internally.
- The nonce is applied to the start of the message.
#
AEGIS-256
A new authenticated encryption algorithm that is designed to be fast and secure, using a 256-bit key.
For applications these might not be standardized yet.
sodium.aead.aegis.nonce(): string
- Generates a nonce which is used in securing uniqueness.
sodium.aead.aegis.key(base?: string, salt?: string): string
- Generates a key, providing a base acts as an offset, with providing a salt for greater resiliance.
sodium.aead.aegis.encrypt(input: string, key: string, nonce: string): string
- Encrypts a messages based on the key and added nonce.
sodium.aead.aegis.decrypt(input: string, key: string, nonce: string): string
- Decrypts a messages based on the key and added nonce.
sodium.aead.aegis.encode(input: string, key: string): string
- Encrypts a message based on the key, this generates its own nonce internally.
- The nonce is applied to the start of the message.
sodium.aead.aegis.decode(input: string, key: string): string
- Decrypts a message based on the key, this handles its own nonce internally.
- The nonce is applied to the start of the message.