libsodium_wasm_experimental/supported_bindings_list.md
2020-10-12 20:04:18 +02:00

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 present in LazySodium Android
crypto_stream_xchacha20_xor not present in LazySodium Android
crypto_stream_xchacha20_xor_ic not present in LazySodium Android
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 | |