Skip to content

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.

Sys.lib  :: Lib

The loaded libsodium FFI library handle. All libsodium functions are called through this.

Sys.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,
}