Sys
Raw FFI bindings for libsodium.
Loads the shared library and exposes the complete C API as a typed Luau interface.
Prefer the higher-level modules in Sodium over calling lib directly.
Summary
Properties
Sys.lib :: LibSys.aes256gcm :: { KEY_BYTES: number, NONCE_BYTES: number, TAG_BYTES: number }Sys.chacha20poly1305 :: { KEY_BYTES: number, NONCE_BYTES: number, TAG_BYTES: number }Sys.xchacha20poly1305 :: { KEY_BYTES: number, NONCE_BYTES: number, TAG_BYTES: number }Sys.secretbox :: { KEY_BYTES: number, NONCE_BYTES: number, MAC_BYTES: number }Sys.box :: { PUBLIC_KEY_BYTES: number, SECRET_KEY_BYTES: number, NONCE_BYTES: number, MAC_BYTES: number, BEFORENM_BYTES: number }Sys.sign :: { PUBLIC_KEY_BYTES: number, SECRET_KEY_BYTES: number, BYTES: number }Sys.generichash :: { BYTES: number, BYTES_MIN: number, BYTES_MAX: number, KEY_BYTES: number, KEY_BYTES_MIN: number, KEY_BYTES_MAX: number }Sys.hash :: { SHA256_BYTES: number, SHA512_BYTES: number }Sys.auth :: { BYTES: number, KEY_BYTES: number }Sys.kdf :: { BYTES_MIN: number, BYTES_MAX: number, CONTEXT_BYTES: number, KEY_BYTES: number }Sys.pwhash :: { BYTES_MIN: number, BYTES_MAX: number, SALT_BYTES: number, STR_BYTES: number, ALG_ARGON2ID13: number, OPSLIMIT_INTERACTIVE: number, MEMLIMIT_INTERACTIVE: number, OPSLIMIT_MODERATE: number, MEMLIMIT_MODERATE: number, OPSLIMIT_SENSITIVE: number, MEMLIMIT_SENSITIVE: number }Sys.base64 :: { VARIANT_ORIGINAL: number, VARIANT_ORIGINAL_NO_PADDING: number, VARIANT_URLSAFE: number, VARIANT_URLSAFE_NO_PADDING: number }Properties
Section titled “Properties” Sys.lib :: Lib
The loaded libsodium FFI library handle. All libsodium functions are called through this.
aes256gcm
Section titled “aes256gcm”chacha20poly1305
Section titled “chacha20poly1305”xchacha20poly1305
Section titled “xchacha20poly1305”secretbox
Section titled “secretbox” Sys.box :: {
PUBLIC_KEY_BYTES: number,
SECRET_KEY_BYTES: number,
NONCE_BYTES: number,
MAC_BYTES: number,
BEFORENM_BYTES: number,
}
PUBLIC_KEY_BYTES: number,
SECRET_KEY_BYTES: number,
NONCE_BYTES: number,
MAC_BYTES: number,
BEFORENM_BYTES: number,
}
generichash
Section titled “generichash” Sys.generichash :: {
BYTES: number,
BYTES_MIN: number,
BYTES_MAX: number,
KEY_BYTES: number,
KEY_BYTES_MIN: number,
KEY_BYTES_MAX: number,
}
BYTES: number,
BYTES_MIN: number,
BYTES_MAX: number,
KEY_BYTES: number,
KEY_BYTES_MIN: number,
KEY_BYTES_MAX: number,
}
pwhash
Section titled “pwhash” Sys.pwhash :: {
BYTES_MIN: number,
BYTES_MAX: number,
SALT_BYTES: number,
STR_BYTES: number,
ALG_ARGON2ID13: number,
OPSLIMIT_INTERACTIVE: number,
MEMLIMIT_INTERACTIVE: number,
OPSLIMIT_MODERATE: number,
MEMLIMIT_MODERATE: number,
OPSLIMIT_SENSITIVE: number,
MEMLIMIT_SENSITIVE: number,
}
BYTES_MIN: number,
BYTES_MAX: number,
SALT_BYTES: number,
STR_BYTES: number,
ALG_ARGON2ID13: number,
OPSLIMIT_INTERACTIVE: number,
MEMLIMIT_INTERACTIVE: number,
OPSLIMIT_MODERATE: number,
MEMLIMIT_MODERATE: number,
OPSLIMIT_SENSITIVE: number,
MEMLIMIT_SENSITIVE: number,
}