123 lines
4.3 KiB
Crystal
123 lines
4.3 KiB
Crystal
module Cox
|
|
@[Link("sodium")]
|
|
lib LibSodium
|
|
fun sodium_init() : LibC::Int
|
|
|
|
fun crypto_box_publickeybytes() : LibC::SizeT
|
|
fun crypto_box_secretkeybytes() : LibC::SizeT
|
|
fun crypto_box_noncebytes() : LibC::SizeT
|
|
fun crypto_box_macbytes() : LibC::SizeT
|
|
fun crypto_sign_publickeybytes() : LibC::SizeT
|
|
fun crypto_sign_secretkeybytes() : LibC::SizeT
|
|
fun crypto_sign_bytes() : LibC::SizeT
|
|
fun crypto_kdf_keybytes() : LibC::SizeT
|
|
fun crypto_kdf_contextbytes() : LibC::SizeT
|
|
fun crypto_pwhash_memlimit_min() : LibC::SizeT
|
|
fun crypto_pwhash_memlimit_interactive() : LibC::SizeT
|
|
fun crypto_pwhash_memlimit_max() : LibC::SizeT
|
|
fun crypto_pwhash_opslimit_min() : LibC::SizeT
|
|
fun crypto_pwhash_opslimit_interactive() : LibC::SizeT
|
|
fun crypto_pwhash_opslimit_moderate() : LibC::SizeT
|
|
fun crypto_pwhash_opslimit_sensitive() : LibC::SizeT
|
|
fun crypto_pwhash_opslimit_max() : LibC::SizeT
|
|
fun crypto_pwhash_strbytes() : LibC::SizeT
|
|
|
|
PUBLIC_KEY_BYTES = crypto_box_publickeybytes()
|
|
SECRET_KEY_BYTES = crypto_box_secretkeybytes()
|
|
NONCE_BYTES = crypto_box_noncebytes()
|
|
MAC_BYTES = crypto_box_macbytes()
|
|
PUBLIC_SIGN_BYTES = crypto_sign_publickeybytes()
|
|
SECRET_SIGN_BYTES = crypto_sign_secretkeybytes()
|
|
SIGNATURE_BYTES = crypto_sign_bytes()
|
|
KDF_KEY_BYTES = crypto_kdf_keybytes()
|
|
KDF_CONTEXT_BYTES = crypto_kdf_contextbytes()
|
|
PWHASH_STR_BYTES = crypto_pwhash_strbytes()
|
|
|
|
fun crypto_secretbox_easy(
|
|
output : Pointer(LibC::UChar),
|
|
data : Pointer(LibC::UChar),
|
|
data_size : LibC::ULongLong,
|
|
nonce : Pointer(LibC::UChar),
|
|
key : Pointer(LibC::UChar),
|
|
) : LibC::Int
|
|
|
|
fun crypto_secretbox_open_easy(
|
|
output : Pointer(LibC::UChar),
|
|
data : Pointer(LibC::UChar),
|
|
data_size : LibC::ULongLong,
|
|
nonce : Pointer(LibC::UChar),
|
|
key : Pointer(LibC::UChar),
|
|
) : LibC::Int
|
|
|
|
fun crypto_box_keypair(
|
|
public_key_output : Pointer(LibC::UChar),
|
|
secret_key_output : Pointer(LibC::UChar)
|
|
)
|
|
|
|
fun crypto_box_easy(
|
|
output : Pointer(LibC::UChar),
|
|
data : Pointer(LibC::UChar),
|
|
data_size : LibC::ULongLong,
|
|
nonce : Pointer(LibC::UChar),
|
|
recipient_public_key : Pointer(LibC::UChar),
|
|
sender_secret_key : Pointer(LibC::UChar)
|
|
) : LibC::Int
|
|
|
|
fun crypto_box_open_easy(
|
|
output : Pointer(LibC::UChar),
|
|
data : Pointer(LibC::UChar),
|
|
data_size : LibC::ULongLong,
|
|
nonce : Pointer(LibC::UChar),
|
|
sender_public_key : Pointer(LibC::UChar),
|
|
recipient_secret_key : Pointer(LibC::UChar)
|
|
) : LibC::Int
|
|
|
|
fun crypto_sign_keypair(
|
|
public_key_output : Pointer(LibC::UChar),
|
|
secret_key_output : Pointer(LibC::UChar)
|
|
) : LibC::Int
|
|
|
|
fun crypto_sign_detached(
|
|
signature_output : Pointer(LibC::UChar),
|
|
signature_output_size : LibC::ULongLong,
|
|
message : Pointer(LibC::UChar),
|
|
message_size : LibC::ULongLong,
|
|
secret_key : Pointer(LibC::UChar)
|
|
) : LibC::Int
|
|
|
|
fun crypto_sign_verify_detached(
|
|
signature : Pointer(LibC::UChar),
|
|
message : Pointer(LibC::UChar),
|
|
message_size : LibC::ULongLong,
|
|
public_key : Pointer(LibC::UChar)
|
|
) : LibC::Int
|
|
|
|
fun crypto_kdf_derive_from_key(
|
|
subkey : Pointer(LibC::UChar),
|
|
subkey_len : LibC::SizeT,
|
|
subkey_id : UInt64,
|
|
ctx : Pointer(LibC::UChar),
|
|
key : Pointer(LibC::UChar)
|
|
) : LibC::Int
|
|
|
|
fun crypto_pwhash_str(
|
|
outstr : Pointer(LibC::UChar),
|
|
pass : Pointer(LibC::UChar),
|
|
pass_size : LibC::ULongLong,
|
|
optslimit : LibC::ULongLong,
|
|
memlimit : LibC::SizeT,
|
|
) : LibC::Int
|
|
|
|
fun crypto_pwhash_str_verify(
|
|
str : Pointer(LibC::UChar),
|
|
pass : Pointer(LibC::UChar),
|
|
pass_size : LibC::ULongLong,
|
|
) : LibC::Int
|
|
|
|
fun crypto_pwhash_str_needs_rehash(
|
|
str : Pointer(LibC::UChar),
|
|
optslimit : LibC::ULongLong,
|
|
memlimit : LibC::SizeT,
|
|
) : LibC::Int
|
|
end
|
|
end
|