libsodium_wasm_experimental/supported_bindings_list.md

20 KiB

Supported functions and constants Libsodium wrapper

Here is a list of supported functions and constants, This list is extracted from the libsodium.js library as which is misleading, as the comparison should be done from the native libsodium library.

Functions

Function name Implemented
add
memcmp ✔️
memzero ✔️
output_formats
pad ✔️
unpad ✔️
symbols
to_base64 ✔️
to_hex ✔️
from_base64 ✔️
from_hex ✔️
crypto_aead_chacha20poly1305_decrypt ✔️
crypto_aead_chacha20poly1305_decrypt_detached ✔️
crypto_aead_chacha20poly1305_encrypt ✔️
crypto_aead_chacha20poly1305_encrypt_detached ✔️
crypto_aead_chacha20poly1305_ietf_decrypt ✔️
crypto_aead_chacha20poly1305_ietf_decrypt_detached ✔️
crypto_aead_chacha20poly1305_ietf_encrypt ✔️
crypto_aead_chacha20poly1305_ietf_encrypt_detached ✔️
crypto_aead_chacha20poly1305_ietf_keygen ✔️
crypto_aead_chacha20poly1305_keygen ✔️
crypto_aead_xchacha20poly1305_ietf_decrypt ✔️
crypto_aead_xchacha20poly1305_ietf_decrypt_detached ✔️
crypto_aead_xchacha20poly1305_ietf_encrypt ✔️
crypto_aead_xchacha20poly1305_ietf_encrypt_detached ✔️
crypto_aead_xchacha20poly1305_ietf_keygen ✔️
crypto_auth ✔️
crypto_auth_hmacsha256 ✔️
crypto_auth_hmacsha256_keygen ✔️
crypto_auth_hmacsha256_verify ✔️
crypto_auth_hmacsha512 ✔️
crypto_auth_hmacsha512_keygen ✔️
crypto_auth_hmacsha512_verify ✔️
crypto_auth_keygen ✔️
crypto_auth_verify ✔️
crypto_box_beforenm ✔️
crypto_box_curve25519xchacha20poly1305_keypair not present in LazySodium
crypto_box_curve25519xchacha20poly1305_seal not present in LazySodium
crypto_box_curve25519xchacha20poly1305_seal_open not present in LazySodium
crypto_box_detached ✔️
crypto_box_easy ✔️
crypto_box_easy_afternm ✔️
crypto_box_keypair ✔️
crypto_box_open_detached ✔️
crypto_box_open_easy ✔️
crypto_box_open_easy_afternm ✔️
crypto_box_seal ✔️
crypto_box_seal_open ✔️
crypto_box_seed_keypair ✔️
crypto_core_ristretto255_add not present in LazySodium
crypto_core_ristretto255_from_hash not present in LazySodium
crypto_core_ristretto255_is_valid_point not present in LazySodium
crypto_core_ristretto255_random not present in LazySodium
crypto_core_ristretto255_scalar_add not present in LazySodium
crypto_core_ristretto255_scalar_complement not present in LazySodium
crypto_core_ristretto255_scalar_invert not present in LazySodium
crypto_core_ristretto255_scalar_mul not present in LazySodium
crypto_core_ristretto255_scalar_negate not present in LazySodium
crypto_core_ristretto255_scalar_random not present in LazySodium
crypto_core_ristretto255_scalar_reduce not present in LazySodium
crypto_core_ristretto255_scalar_sub not present in LazySodium
crypto_core_ristretto255_sub not present in LazySodium
crypto_generichash ✔️
crypto_generichash_blake2b_salt_personal
crypto_generichash_final ✔️
crypto_generichash_init ✔️
crypto_generichash_keygen ✔️
crypto_generichash_update ✔️
crypto_hash
crypto_hash_sha256 ✔️
crypto_hash_sha256_final ✔️
crypto_hash_sha256_init ✔️
crypto_hash_sha256_update ✔️
crypto_hash_sha512 ✔️
crypto_hash_sha512_final ✔️
crypto_hash_sha512_init ✔️
crypto_hash_sha512_update ✔️
crypto_kdf_derive_from_key ✔️
crypto_kdf_keygen ✔️
crypto_kx_client_session_keys ✔️
crypto_kx_keypair ✔️
crypto_kx_seed_keypair ✔️
crypto_kx_server_session_keys ✔️
crypto_onetimeauth not present in LazySodium
crypto_onetimeauth_final not present in LazySodium
crypto_onetimeauth_init not present in LazySodium
crypto_onetimeauth_keygen not present in LazySodium
crypto_onetimeauth_update not present in LazySodium
crypto_onetimeauth_verify not present in LazySodium
crypto_pwhash ✔️
crypto_pwhash_scryptsalsa208sha256 not present in LazySodium for Android
crypto_pwhash_scryptsalsa208sha256_ll not present in LazySodium for Android
crypto_pwhash_scryptsalsa208sha256_str not present in LazySodium for Android
crypto_pwhash_scryptsalsa208sha256_str_verify not present in LazySodium for Android
crypto_pwhash_str ✔️
crypto_pwhash_str_needs_rehash ✔️
crypto_pwhash_str_verify ✔️
crypto_scalarmult ✔️
crypto_scalarmult_base ✔️
crypto_scalarmult_ristretto255 not present in LazySodium
crypto_scalarmult_ristretto255_base not present in LazySodium
crypto_secretbox_detached ✔️
crypto_secretbox_easy ✔️
crypto_secretbox_keygen ✔️
crypto_secretbox_open_detached ✔️
crypto_secretbox_open_easy ✔️
crypto_secretstream_xchacha20poly1305_init_pull ✔️
crypto_secretstream_xchacha20poly1305_init_push ✔️
crypto_secretstream_xchacha20poly1305_keygen ✔️
crypto_secretstream_xchacha20poly1305_pull ✔️
crypto_secretstream_xchacha20poly1305_push ✔️
crypto_secretstream_xchacha20poly1305_rekey ✔️
crypto_shorthash ✔️
crypto_shorthash_keygen ✔️
crypto_shorthash_siphashx24
crypto_sign ✔️
crypto_sign_detached ✔️
crypto_sign_ed25519_pk_to_curve25519 ✔️
crypto_sign_ed25519_sk_to_curve25519 ✔️
crypto_sign_ed25519_sk_to_pk ✔️
crypto_sign_ed25519_sk_to_seed ✔️
crypto_sign_final_create ✔️
crypto_sign_final_verify ✔️
crypto_sign_init ✔️
crypto_sign_keypair ✔️
crypto_sign_open ✔️
crypto_sign_seed_keypair ✔️
crypto_sign_update ✔️
crypto_sign_verify_detached ✔️
crypto_stream_chacha20 ✔️
crypto_stream_chacha20_ietf_xor ✔️
crypto_stream_chacha20_ietf_xor_ic ✔️
crypto_stream_chacha20_keygen ✔️
crypto_stream_chacha20_xor ✔️
crypto_stream_chacha20_xor_ic ✔️
crypto_stream_keygen Other XSalsa20 primitives are not available, so I'm leaving this out as well
crypto_stream_xchacha20_keygen Not at the moment
crypto_stream_xchacha20_xor Not at the moment
crypto_stream_xchacha20_xor_ic Not at the moment
randombytes_buf ✔️
randombytes_buf_deterministic ✔️
randombytes_close not present in LazySodium
randombytes_random ✔️
randombytes_stir not present in LazySodium
randombytes_uniform ✔️
sodium_version_string

Constants

Constant name Implemented
SODIUM_LIBRARY_VERSION_MAJOR
SODIUM_LIBRARY_VERSION_MINOR
crypto_aead_chacha20poly1305_ABYTES
crypto_aead_chacha20poly1305_IETF_ABYTES ✔️
crypto_aead_chacha20poly1305_IETF_KEYBYTES ✔️
crypto_aead_chacha20poly1305_IETF_MESSAGEBYTES_MAX
crypto_aead_chacha20poly1305_IETF_NPUBBYTES ✔️
crypto_aead_chacha20poly1305_IETF_NSECBYTES
crypto_aead_chacha20poly1305_KEYBYTES
crypto_aead_chacha20poly1305_MESSAGEBYTES_MAX
crypto_aead_chacha20poly1305_NPUBBYTES
crypto_aead_chacha20poly1305_NSECBYTES
crypto_aead_chacha20poly1305_ietf_ABYTES ✔️
crypto_aead_chacha20poly1305_ietf_KEYBYTES ✔️
crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX
crypto_aead_chacha20poly1305_ietf_NPUBBYTES ✔️
crypto_aead_chacha20poly1305_ietf_NSECBYTES
crypto_aead_xchacha20poly1305_IETF_ABYTES
crypto_aead_xchacha20poly1305_IETF_KEYBYTES
crypto_aead_xchacha20poly1305_IETF_MESSAGEBYTES_MAX
crypto_aead_xchacha20poly1305_IETF_NPUBBYTES
crypto_aead_xchacha20poly1305_IETF_NSECBYTES
crypto_aead_xchacha20poly1305_ietf_ABYTES ✔️
crypto_aead_xchacha20poly1305_ietf_KEYBYTES ✔️
crypto_aead_xchacha20poly1305_ietf_MESSAGEBYTES_MAX
crypto_aead_xchacha20poly1305_ietf_NPUBBYTES ✔️
crypto_aead_xchacha20poly1305_ietf_NSECBYTES
crypto_auth_BYTES ✔️
crypto_auth_KEYBYTES ✔️
crypto_auth_hmacsha256_BYTES ✔️
crypto_auth_hmacsha256_KEYBYTES ✔️
crypto_auth_hmacsha512256_BYTES ✔️
crypto_auth_hmacsha512256_KEYBYTES ✔️
crypto_auth_hmacsha512_BYTES ✔️
crypto_auth_hmacsha512_KEYBYTES ✔️
crypto_box_BEFORENMBYTES
crypto_box_MACBYTES
crypto_box_MESSAGEBYTES_MAX
crypto_box_NONCEBYTES
crypto_box_PUBLICKEYBYTES
crypto_box_SEALBYTES
crypto_box_SECRETKEYBYTES
crypto_box_SEEDBYTES
crypto_box_curve25519xchacha20poly1305_BEFORENMBYTES
crypto_box_curve25519xchacha20poly1305_MACBYTES
crypto_box_curve25519xchacha20poly1305_MESSAGEBYTES_MAX
crypto_box_curve25519xchacha20poly1305_NONCEBYTES
crypto_box_curve25519xchacha20poly1305_PUBLICKEYBYTES
crypto_box_curve25519xchacha20poly1305_SEALBYTES
crypto_box_curve25519xchacha20poly1305_SECRETKEYBYTES
crypto_box_curve25519xchacha20poly1305_SEEDBYTES
crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES
crypto_box_curve25519xsalsa20poly1305_MACBYTES
crypto_box_curve25519xsalsa20poly1305_MESSAGEBYTES_MAX
crypto_box_curve25519xsalsa20poly1305_NONCEBYTES
crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES
crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES
crypto_box_curve25519xsalsa20poly1305_SEEDBYTES
crypto_core_ed25519_BYTES
crypto_core_ed25519_HASHBYTES
crypto_core_ed25519_NONREDUCEDSCALARBYTES
crypto_core_ed25519_SCALARBYTES
crypto_core_ed25519_UNIFORMBYTES
crypto_core_hchacha20_CONSTBYTES
crypto_core_hchacha20_INPUTBYTES
crypto_core_hchacha20_KEYBYTES
crypto_core_hchacha20_OUTPUTBYTES
crypto_core_hsalsa20_CONSTBYTES
crypto_core_hsalsa20_INPUTBYTES
crypto_core_hsalsa20_KEYBYTES
crypto_core_hsalsa20_OUTPUTBYTES
crypto_core_ristretto255_BYTES
crypto_core_ristretto255_HASHBYTES
crypto_core_ristretto255_NONREDUCEDSCALARBYTES
crypto_core_ristretto255_SCALARBYTES
crypto_core_salsa2012_CONSTBYTES
crypto_core_salsa2012_INPUTBYTES
crypto_core_salsa2012_KEYBYTES
crypto_core_salsa2012_OUTPUTBYTES
crypto_core_salsa20_CONSTBYTES
crypto_core_salsa20_INPUTBYTES
crypto_core_salsa20_KEYBYTES
crypto_core_salsa20_OUTPUTBYTES
crypto_generichash_BYTES
crypto_generichash_BYTES_MAX
crypto_generichash_BYTES_MIN
crypto_generichash_KEYBYTES
crypto_generichash_KEYBYTES_MAX
crypto_generichash_KEYBYTES_MIN
crypto_generichash_blake2b_BYTES
crypto_generichash_blake2b_BYTES_MAX
crypto_generichash_blake2b_BYTES_MIN
crypto_generichash_blake2b_KEYBYTES
crypto_generichash_blake2b_KEYBYTES_MAX
crypto_generichash_blake2b_KEYBYTES_MIN
crypto_generichash_blake2b_PERSONALBYTES
crypto_generichash_blake2b_SALTBYTES
crypto_hash_BYTES
crypto_hash_sha256_BYTES ✔️
crypto_hash_sha512_BYTES ✔️
crypto_kdf_BYTES_MAX
crypto_kdf_BYTES_MIN
crypto_kdf_CONTEXTBYTES
crypto_kdf_KEYBYTES
crypto_kdf_blake2b_BYTES_MAX
crypto_kdf_blake2b_BYTES_MIN
crypto_kdf_blake2b_CONTEXTBYTES
crypto_kdf_blake2b_KEYBYTES
crypto_kx_PUBLICKEYBYTES ✔️
crypto_kx_SECRETKEYBYTES ✔️
crypto_kx_SEEDBYTES ✔️
crypto_kx_SESSIONKEYBYTES ✔️
crypto_onetimeauth_BYTES
crypto_onetimeauth_KEYBYTES
crypto_onetimeauth_poly1305_BYTES
crypto_onetimeauth_poly1305_KEYBYTES
crypto_pwhash_ALG_ARGON2I13 ✔️
crypto_pwhash_ALG_ARGON2ID13 ✔️
crypto_pwhash_ALG_DEFAULT ✔️
crypto_pwhash_BYTES_MAX
crypto_pwhash_BYTES_MIN ✔️
crypto_pwhash_MEMLIMIT_INTERACTIVE ✔️
crypto_pwhash_MEMLIMIT_MAX
crypto_pwhash_MEMLIMIT_MIN ✔️
crypto_pwhash_MEMLIMIT_MODERATE ✔️
crypto_pwhash_MEMLIMIT_SENSITIVE ✔️
crypto_pwhash_OPSLIMIT_INTERACTIVE ✔️
crypto_pwhash_OPSLIMIT_MAX ✔️
crypto_pwhash_OPSLIMIT_MIN ✔️
crypto_pwhash_OPSLIMIT_MODERATE ✔️
crypto_pwhash_OPSLIMIT_SENSITIVE ✔️
crypto_pwhash_PASSWD_MAX ✔️
crypto_pwhash_PASSWD_MIN ✔️
crypto_pwhash_SALTBYTES ✔️
crypto_pwhash_STRBYTES ✔️
crypto_pwhash_argon2i_BYTES_MAX
crypto_pwhash_argon2i_BYTES_MIN
crypto_pwhash_argon2i_SALTBYTES
crypto_pwhash_argon2i_STRBYTES
crypto_pwhash_argon2id_BYTES_MAX
crypto_pwhash_argon2id_BYTES_MIN
crypto_pwhash_argon2id_SALTBYTES
crypto_pwhash_argon2id_STRBYTES
crypto_pwhash_scryptsalsa208sha256_BYTES_MAX
crypto_pwhash_scryptsalsa208sha256_BYTES_MIN
crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_INTERACTIVE
crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MAX
crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MIN
crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_SENSITIVE
crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_INTERACTIVE
crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MAX
crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MIN
crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_SENSITIVE
crypto_pwhash_scryptsalsa208sha256_SALTBYTES
crypto_pwhash_scryptsalsa208sha256_STRBYTES
crypto_scalarmult_BYTES ✔️
crypto_scalarmult_SCALARBYTES ✔️
crypto_scalarmult_curve25519_BYTES ✔️
crypto_scalarmult_curve25519_SCALARBYTES
crypto_scalarmult_ed25519_BYTES
crypto_scalarmult_ed25519_SCALARBYTES
crypto_scalarmult_ristretto255_BYTES
crypto_scalarmult_ristretto255_SCALARBYTES
crypto_secretbox_KEYBYTES ✔️
crypto_secretbox_MACBYTES ✔️
crypto_secretbox_MESSAGEBYTES_MAX
crypto_secretbox_NONCEBYTES ✔️
crypto_secretbox_xchacha20poly1305_KEYBYTES
crypto_secretbox_xchacha20poly1305_MACBYTES
crypto_secretbox_xchacha20poly1305_MESSAGEBYTES_MAX
crypto_secretbox_xchacha20poly1305_NONCEBYTES
crypto_secretbox_xsalsa20poly1305_KEYBYTES
crypto_secretbox_xsalsa20poly1305_MACBYTES
crypto_secretbox_xsalsa20poly1305_MESSAGEBYTES_MAX
crypto_secretbox_xsalsa20poly1305_NONCEBYTES
crypto_secretstream_xchacha20poly1305_ABYTES ✔️
crypto_secretstream_xchacha20poly1305_HEADERBYTES ✔️
crypto_secretstream_xchacha20poly1305_KEYBYTES ✔️
crypto_secretstream_xchacha20poly1305_MESSAGEBYTES_MAX
crypto_secretstream_xchacha20poly1305_TAG_FINAL ✔️
crypto_secretstream_xchacha20poly1305_TAG_MESSAGE ✔️
crypto_secretstream_xchacha20poly1305_TAG_PUSH ✔️
crypto_secretstream_xchacha20poly1305_TAG_REKEY ✔️
crypto_shorthash_BYTES
crypto_shorthash_KEYBYTES
crypto_shorthash_siphash24_BYTES
crypto_shorthash_siphash24_KEYBYTES
crypto_shorthash_siphashx24_BYTES
crypto_shorthash_siphashx24_KEYBYTES
crypto_sign_BYTES ✔️
crypto_sign_MESSAGEBYTES_MAX
crypto_sign_PUBLICKEYBYTES ✔️
crypto_sign_SECRETKEYBYTES ✔️
crypto_sign_SEEDBYTES ✔️
crypto_sign_ed25519_BYTES
crypto_sign_ed25519_MESSAGEBYTES_MAX
crypto_sign_ed25519_PUBLICKEYBYTES
crypto_sign_ed25519_SECRETKEYBYTES
crypto_sign_ed25519_SEEDBYTES
crypto_stream_KEYBYTES
crypto_stream_MESSAGEBYTES_MAX
crypto_stream_NONCEBYTES
crypto_stream_chacha20_IETF_KEYBYTES
crypto_stream_chacha20_IETF_MESSAGEBYTES_MAX
crypto_stream_chacha20_IETF_NONCEBYTES
crypto_stream_chacha20_KEYBYTES stream_chacha20
crypto_stream_chacha20_MESSAGEBYTES_MAX
crypto_stream_chacha20_NONCEBYTES stream_chacha20
crypto_stream_chacha20_ietf_KEYBYTES stream_chacha20
crypto_stream_chacha20_ietf_MESSAGEBYTES_MAX
crypto_stream_chacha20_ietf_NONCEBYTES stream_chacha20
crypto_stream_salsa2012_KEYBYTES
crypto_stream_salsa2012_MESSAGEBYTES_MAX
crypto_stream_salsa2012_NONCEBYTES
crypto_stream_salsa208_KEYBYTES
crypto_stream_salsa208_MESSAGEBYTES_MAX
crypto_stream_salsa208_NONCEBYTES
crypto_stream_salsa20_KEYBYTES
crypto_stream_salsa20_MESSAGEBYTES_MAX
crypto_stream_salsa20_NONCEBYTES
crypto_stream_xchacha20_KEYBYTES
crypto_stream_xchacha20_MESSAGEBYTES_MAX
crypto_stream_xchacha20_NONCEBYTES
crypto_stream_xsalsa20_KEYBYTES
crypto_stream_xsalsa20_MESSAGEBYTES_MAX
crypto_stream_xsalsa20_NONCEBYTES
crypto_verify_16_BYTES
crypto_verify_32_BYTES
crypto_verify_64_BYTES
SODIUM_VERSION_STRING
crypto_pwhash_STRPREFIX
crypto_pwhash_scryptsalsa208sha256_STRPREFIX