PHP Manual
Function Reference
Cryptography Extensions
Sodium
Introduction
Installing/Configuring
Predefined Constants
Sodium Functions
SodiumException
Predefined Constants
sodium_add
Sodium
PHP Manual
Sodium Functions
Table of Contents
sodium_add
— Add large numbers
sodium_base642bin
— Decodes a base64-encoded string into raw binary.
sodium_bin2base64
— Encodes a raw binary string with base64.
sodium_bin2hex
— Encode to hexadecimal
sodium_compare
— Compare large numbers
sodium_crypto_aead_aegis128l_decrypt
— Verify then decrypt a message with AEGIS-128L
sodium_crypto_aead_aegis128l_encrypt
— Encrypt then authenticate a message with AEGIS-128L
sodium_crypto_aead_aegis128l_keygen
— Generate a random AEGIS-128L key
sodium_crypto_aead_aegis256_decrypt
— Verify then decrypt a message with AEGIS-256
sodium_crypto_aead_aegis256_encrypt
— Encrypt then authenticate a message with AEGIS-256
sodium_crypto_aead_aegis256_keygen
— Generate a random AEGIS-256 key
sodium_crypto_aead_aes256gcm_decrypt
— Verify then decrypt a message with AES-256-GCM
sodium_crypto_aead_aes256gcm_encrypt
— Encrypt then authenticate with AES-256-GCM
sodium_crypto_aead_aes256gcm_is_available
— Check if hardware supports AES256-GCM
sodium_crypto_aead_aes256gcm_keygen
— Generate a random AES-256-GCM key
sodium_crypto_aead_chacha20poly1305_decrypt
— Verify then decrypt with ChaCha20-Poly1305
sodium_crypto_aead_chacha20poly1305_encrypt
— Encrypt then authenticate with ChaCha20-Poly1305
sodium_crypto_aead_chacha20poly1305_ietf_decrypt
— Verify that the ciphertext includes a valid tag
sodium_crypto_aead_chacha20poly1305_ietf_encrypt
— Encrypt a message
sodium_crypto_aead_chacha20poly1305_ietf_keygen
— Generate a random ChaCha20-Poly1305 (IETF) key.
sodium_crypto_aead_chacha20poly1305_keygen
— Generate a random ChaCha20-Poly1305 key.
sodium_crypto_aead_xchacha20poly1305_ietf_decrypt
— (Preferred) Verify then decrypt with XChaCha20-Poly1305
sodium_crypto_aead_xchacha20poly1305_ietf_encrypt
— (Preferred) Encrypt then authenticate with XChaCha20-Poly1305
sodium_crypto_aead_xchacha20poly1305_ietf_keygen
— Generate a random XChaCha20-Poly1305 key.
sodium_crypto_auth
— Compute a tag for the message
sodium_crypto_auth_keygen
— Generate a random key for sodium_crypto_auth
sodium_crypto_auth_verify
— Verifies that the tag is valid for the message
sodium_crypto_box
— Authenticated public-key encryption
sodium_crypto_box_keypair
— Randomly generate a secret key and a corresponding public key
sodium_crypto_box_keypair_from_secretkey_and_publickey
— Create a unified keypair string from a secret key and public key
sodium_crypto_box_open
— Authenticated public-key decryption
sodium_crypto_box_publickey
— Extract the public key from a crypto_box keypair
sodium_crypto_box_publickey_from_secretkey
— Calculate the public key from a secret key
sodium_crypto_box_seal
— Anonymous public-key encryption
sodium_crypto_box_seal_open
— Anonymous public-key decryption
sodium_crypto_box_secretkey
— Extracts the secret key from a crypto_box keypair
sodium_crypto_box_seed_keypair
— Deterministically derive the key pair from a single key
sodium_crypto_core_ristretto255_add
— Adds an element
sodium_crypto_core_ristretto255_from_hash
— Maps a vector
sodium_crypto_core_ristretto255_is_valid_point
— Determines if a point on the ristretto255 curve
sodium_crypto_core_ristretto255_random
— Generates a random key
sodium_crypto_core_ristretto255_scalar_add
— Adds a scalar value
sodium_crypto_core_ristretto255_scalar_complement
— The sodium_crypto_core_ristretto255_scalar_complement purpose
sodium_crypto_core_ristretto255_scalar_invert
— Inverts a scalar value
sodium_crypto_core_ristretto255_scalar_mul
— Multiplies a scalar value
sodium_crypto_core_ristretto255_scalar_negate
— Negates a scalar value
sodium_crypto_core_ristretto255_scalar_random
— Generates a random key
sodium_crypto_core_ristretto255_scalar_reduce
— Reduces a scalar value
sodium_crypto_core_ristretto255_scalar_sub
— Subtracts a scalar value
sodium_crypto_core_ristretto255_sub
— Subtracts an element
sodium_crypto_generichash
— Get a hash of the message
sodium_crypto_generichash_final
— Complete the hash
sodium_crypto_generichash_init
— Initialize a hash for streaming
sodium_crypto_generichash_keygen
— Generate a random generichash key
sodium_crypto_generichash_update
— Add message to a hash
sodium_crypto_kdf_derive_from_key
— Derive a subkey
sodium_crypto_kdf_keygen
— Generate a random root key for the KDF interface
sodium_crypto_kx_client_session_keys
— Calculate the client-side session keys.
sodium_crypto_kx_keypair
— Creates a new sodium keypair
sodium_crypto_kx_publickey
— Extract the public key from a crypto_kx keypair
sodium_crypto_kx_secretkey
— Extract the secret key from a crypto_kx keypair.
sodium_crypto_kx_seed_keypair
— Description
sodium_crypto_kx_server_session_keys
— Calculate the server-side session keys.
sodium_crypto_pwhash
— Derive a key from a password, using Argon2
sodium_crypto_pwhash_scryptsalsa208sha256
— Derives a key from a password, using scrypt
sodium_crypto_pwhash_scryptsalsa208sha256_str
— Get an ASCII encoded hash
sodium_crypto_pwhash_scryptsalsa208sha256_str_verify
— Verify that the password is a valid password verification string
sodium_crypto_pwhash_str
— Get an ASCII-encoded hash
sodium_crypto_pwhash_str_needs_rehash
— Determine whether or not to rehash a password
sodium_crypto_pwhash_str_verify
— Verifies that a password matches a hash
sodium_crypto_scalarmult
— Compute a shared secret given a user's secret key and another user's public key
sodium_crypto_scalarmult_base
— Alias of sodium_crypto_box_publickey_from_secretkey
sodium_crypto_scalarmult_ristretto255
— Computes a shared secret
sodium_crypto_scalarmult_ristretto255_base
— Calculates the public key from a secret key
sodium_crypto_secretbox
— Authenticated shared-key encryption
sodium_crypto_secretbox_keygen
— Generate random key for sodium_crypto_secretbox
sodium_crypto_secretbox_open
— Authenticated shared-key decryption
sodium_crypto_secretstream_xchacha20poly1305_init_pull
— Initialize a secretstream context for decryption
sodium_crypto_secretstream_xchacha20poly1305_init_push
— Initialize a secretstream context for encryption
sodium_crypto_secretstream_xchacha20poly1305_keygen
— Generate a random secretstream key.
sodium_crypto_secretstream_xchacha20poly1305_pull
— Decrypt a chunk of data from an encrypted stream
sodium_crypto_secretstream_xchacha20poly1305_push
— Encrypt a chunk of data so that it can safely be decrypted in a streaming API
sodium_crypto_secretstream_xchacha20poly1305_rekey
— Explicitly rotate the key in the secretstream state
sodium_crypto_shorthash
— Compute a short hash of a message and key
sodium_crypto_shorthash_keygen
— Get random bytes for key
sodium_crypto_sign
— Sign a message
sodium_crypto_sign_detached
— Sign the message
sodium_crypto_sign_ed25519_pk_to_curve25519
— Convert an Ed25519 public key to a Curve25519 public key
sodium_crypto_sign_ed25519_sk_to_curve25519
— Convert an Ed25519 secret key to a Curve25519 secret key
sodium_crypto_sign_keypair
— Randomly generate a secret key and a corresponding public key
sodium_crypto_sign_keypair_from_secretkey_and_publickey
— Join a secret key and public key together
sodium_crypto_sign_open
— Check that the signed message has a valid signature
sodium_crypto_sign_publickey
— Extract the Ed25519 public key from a keypair
sodium_crypto_sign_publickey_from_secretkey
— Extract the Ed25519 public key from the secret key
sodium_crypto_sign_secretkey
— Extract the Ed25519 secret key from a keypair
sodium_crypto_sign_seed_keypair
— Deterministically derive the key pair from a single key
sodium_crypto_sign_verify_detached
— Verify signature for the message
sodium_crypto_stream
— Generate a deterministic sequence of bytes from a seed
sodium_crypto_stream_keygen
— Generate a random sodium_crypto_stream key.
sodium_crypto_stream_xchacha20
— Expands the key and nonce into a keystream of pseudorandom bytes
sodium_crypto_stream_xchacha20_keygen
— Returns a secure random key
sodium_crypto_stream_xchacha20_xor
— Encrypts a message using a nonce and a secret key (no authentication)
sodium_crypto_stream_xchacha20_xor_ic
— Encrypts a message using a nonce and a secret key (no authentication)
sodium_crypto_stream_xor
— Encrypt a message without authentication
sodium_hex2bin
— Decodes a hexadecimally encoded binary string
sodium_increment
— Increment large number
sodium_memcmp
— Test for equality in constant-time
sodium_memzero
— Overwrite a string with NUL characters
sodium_pad
— Add padding data
sodium_unpad
— Remove padding data