Quick Start Guide
After successfully installing the libsodium PHP extension, you can immediately begin using it to develop secure web applications.
Which Tool to Use, for Which Purpose
Deciding which libsodium feature to use for a given purpose is relatively straightforward, provided you keep these guidelines in mind:
- Prioritize the basic features (e.g.
crypto_box
andcrypto_secretbox
) over advanced features (e.g.crypto_stream_xor
). - If a more appropriate feature exists (e.g.
crypto_pwhash_*
instead ofcrypto_generichash
), don't use a less appropriate one. -
Avoid deploying or publishing your own cryptographic constructions
(e.g. generally, you should use
crypto_secretbox
instead ofcrypto_stream_xor
thencrypto_auth
).
Libsodium Functions
This is a comprehensive list of all the functions available in the libsodium PHP extension.
- \Sodium\bin2hex()
- \Sodium\compare()
- \Sodium\crypto_aead_chacha20poly1305_decrypt()
- \Sodium\crypto_aead_chacha20poly1305_encrypt()
- \Sodium\crypto_aead_aes256gcm_decrypt()
- \Sodium\crypto_aead_aes256gcm_encrypt()
- \Sodium\crypto_aead_aes256gcm_is_available()
- \Sodium\crypto_auth()
- \Sodium\crypto_auth_verify()
- \Sodium\crypto_box()
- \Sodium\crypto_box_keypair()
- \Sodium\crypto_box_keypair_from_secretkey_and_publickey()
- \Sodium\crypto_box_open()
- \Sodium\crypto_box_publickey()
- \Sodium\crypto_box_publickey_from_secretkey()
- \Sodium\crypto_box_seal()
- \Sodium\crypto_box_seal_open()
- \Sodium\crypto_box_seed_keypair
- \Sodium\crypto_box_secretkey()
- \Sodium\crypto_kx()
- \Sodium\crypto_generichash()
- \Sodium\crypto_generichash_init()
- \Sodium\crypto_generichash_update()
- \Sodium\crypto_generichash_final()
- \Sodium\crypto_pwhash_scryptsalsa208sha256()
- \Sodium\crypto_pwhash_scryptsalsa208sha256_str()
- \Sodium\crypto_pwhash_scryptsalsa208sha256_str_verify()
- \Sodium\crypto_scalarmult()
- \Sodium\crypto_scalarmult_base()
- \Sodium\crypto_secretbox()
- \Sodium\crypto_secretbox_open()
- \Sodium\crypto_shorthash()
- \Sodium\crypto_sign()
- \Sodium\crypto_sign_detached()
- \Sodium\crypto_sign_ed25519_sk_to_curve25519()
- \Sodium\crypto_sign_ed25519_pk_to_curve25519()
- \Sodium\crypto_sign_keypair()
- \Sodium\crypto_sign_keypair_from_secretkey_and_publickey()
- \Sodium\crypto_sign_open()
- \Sodium\crypto_sign_publickey()
- \Sodium\crypto_sign_secretkey()
- \Sodium\crypto_sign_seed_keypair
- \Sodium\crypto_sign_verify_detached()
- \Sodium\crypto_stream()
- \Sodium\crypto_stream_xor()
- \Sodium\randombytes_buf()
- \Sodium\randombytes_random16()
- \Sodium\randombytes_uniform()
- \Sodium\hex2bin()
- \Sodium\increment()
- \Sodium\library_version_major()
- \Sodium\library_version_minor()
- \Sodium\memcmp()
- \Sodium\memzero()
- \Sodium\version_string()
Libsodium Constants
Constant | Value |
---|---|
\Sodium\CRYPTO_AEAD_AES256GCM_KEYBYTES
|
32 |
\Sodium\CRYPTO_AEAD_AES256GCM_NSECBYTES
|
0 |
\Sodium\CRYPTO_AEAD_AES256GCM_NPUBBYTES
|
12 |
\Sodium\CRYPTO_AEAD_AES256GCM_ABYTES
|
16 |
\Sodium\CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES
|
32 |
\Sodium\CRYPTO_AEAD_CHACHA20POLY1305_NSECBYTES
|
0 |
\Sodium\CRYPTO_AEAD_CHACHA20POLY1305_NPUBBYTES
|
8 |
\Sodium\CRYPTO_AEAD_CHACHA20POLY1305_ABYTES
|
16 |
\Sodium\CRYPTO_AUTH_BYTES
|
32 |
\Sodium\CRYPTO_AUTH_KEYBYTES
|
32 |
\Sodium\CRYPTO_BOX_SEALBYTES
|
16 |
\Sodium\CRYPTO_BOX_SECRETKEYBYTES
|
32 |
\Sodium\CRYPTO_BOX_PUBLICKEYBYTES
|
32 |
\Sodium\CRYPTO_BOX_KEYPAIRBYTES
|
64 |
\Sodium\CRYPTO_BOX_MACBYTES
|
16 |
\Sodium\CRYPTO_BOX_NONCEBYTES
|
24 |
\Sodium\CRYPTO_BOX_SEEDBYTES
|
32 |
\Sodium\CRYPTO_KX_BYTES
|
32 |
\Sodium\CRYPTO_KX_PUBLICKEYBYTES
|
32 |
\Sodium\CRYPTO_KX_SECRETKEYBYTES
|
32 |
\Sodium\CRYPTO_GENERICHASH_BYTES
|
32 |
\Sodium\CRYPTO_GENERICHASH_BYTES_MIN
|
16 |
\Sodium\CRYPTO_GENERICHASH_BYTES_MAX
|
64 |
\Sodium\CRYPTO_GENERICHASH_KEYBYTES
|
32 |
\Sodium\CRYPTO_GENERICHASH_KEYBYTES_MIN
|
16 |
\Sodium\CRYPTO_GENERICHASH_KEYBYTES_MAX
|
64 |
\Sodium\CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES
|
32 |
\Sodium\CRYPTO_PWHASH_SCRYPTSALSA208SHA256_STRPREFIX
|
$7$ |
\Sodium\CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE
|
534288 |
\Sodium\CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE
|
16777216 |
\Sodium\CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE
|
33554432 |
\Sodium\CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE
|
1073741824 |
\Sodium\CRYPTO_SCALARMULT_BYTES
|
32 |
\Sodium\CRYPTO_SCALARMULT_SCALARBYTES
|
32 |
\Sodium\CRYPTO_SHORTHASH_BYTES
|
8 |
\Sodium\CRYPTO_SHORTHASH_KEYBYTES
|
16 |
\Sodium\CRYPTO_SECRETBOX_KEYBYTES
|
32 |
\Sodium\CRYPTO_SECRETBOX_MACBYTES
|
16 |
\Sodium\CRYPTO_SECRETBOX_NONCEBYTES
|
24 |
\Sodium\CRYPTO_SIGN_BYTES
|
64 |
\Sodium\CRYPTO_SIGN_SEEDBYTES
|
32 |
\Sodium\CRYPTO_SIGN_PUBLICKEYBYTES
|
32 |
\Sodium\CRYPTO_SIGN_SECRETKEYBYTES
|
64 |
\Sodium\CRYPTO_SIGN_KEYPAIRBYTES
|
96 |
\Sodium\CRYPTO_STREAM_KEYBYTES
|
32 |
\Sodium\CRYPTO_STREAM_NONCEBYTES
|
24 |