// k6/crypto MoonBit Facade
// Cryptographic hashing for k6
///| Hash Functions
///|
/// FFI: Create hasher
#module("k6/crypto")
extern "js" fn ffi_create_hash(algorithm : String) -> @core.Any =
"createHash"
///|
/// FFI: Create HMAC
#module("k6/crypto")
extern "js" fn ffi_create_hmac(
algorithm : String,
secret : String
) -> @core.Any =
"createHMAC"
///|
/// FFI: MD5 hash
#module("k6/crypto")
extern "js" fn ffi_md5(data : String, output_encoding : String) -> String =
"md5"
///|
/// FFI: SHA1 hash
#module("k6/crypto")
extern "js" fn ffi_sha1(data : String, output_encoding : String) -> String =
"sha1"
///|
/// FFI: SHA256 hash
#module("k6/crypto")
extern "js" fn ffi_sha256(data : String, output_encoding : String) -> String =
"sha256"
///|
/// FFI: SHA384 hash
#module("k6/crypto")
extern "js" fn ffi_sha384(data : String, output_encoding : String) -> String =
"sha384"
///|
/// FFI: SHA512 hash
#module("k6/crypto")
extern "js" fn ffi_sha512(data : String, output_encoding : String) -> String =
"sha512"
///|
/// FFI: SHA512_256 hash
#module("k6/crypto")
extern "js" fn ffi_sha512_256(
data : String,
output_encoding : String
) -> String =
"sha512_256"
///|
/// FFI: RIPEMD160 hash
#module("k6/crypto")
extern "js" fn ffi_ripemd160(
data : String,
output_encoding : String
) -> String =
"ripemd160"
///| Public API - Hash Functions
///|
/// Create a hash object
/// algorithm: "md5", "sha1", "sha256", "sha384", "sha512", "sha512_256", "ripemd160"
pub fn create_hash(algorithm : String) -> @core.Any {
ffi_create_hash(algorithm)
}
///|
/// Create an HMAC object
/// algorithm: "md5", "sha1", "sha256", "sha384", "sha512", "sha512_256", "ripemd160"
pub fn create_hmac(algorithm : String, secret : String) -> @core.Any {
ffi_create_hmac(algorithm, secret)
}
///|
/// Calculate MD5 hash
/// output_encoding: "hex", "base64", "base64url", "base64rawurl", "binary"
pub fn md5(data : String, output_encoding : String) -> String {
ffi_md5(data, output_encoding)
}
///|
/// Calculate SHA1 hash
/// output_encoding: "hex", "base64", "base64url", "base64rawurl", "binary"
pub fn sha1(data : String, output_encoding : String) -> String {
ffi_sha1(data, output_encoding)
}
///|
/// Calculate SHA256 hash
/// output_encoding: "hex", "base64", "base64url", "base64rawurl", "binary"
pub fn sha256(data : String, output_encoding : String) -> String {
ffi_sha256(data, output_encoding)
}
///|
/// Calculate SHA384 hash
/// output_encoding: "hex", "base64", "base64url", "base64rawurl", "binary"
pub fn sha384(data : String, output_encoding : String) -> String {
ffi_sha384(data, output_encoding)
}
///|
/// Calculate SHA512 hash
/// output_encoding: "hex", "base64", "base64url", "base64rawurl", "binary"
pub fn sha512(data : String, output_encoding : String) -> String {
ffi_sha512(data, output_encoding)
}
///|
/// Calculate SHA512/256 hash
/// output_encoding: "hex", "base64", "base64url", "base64rawurl", "binary"
pub fn sha512_256(data : String, output_encoding : String) -> String {
ffi_sha512_256(data, output_encoding)
}
///|
/// Calculate RIPEMD160 hash
/// output_encoding: "hex", "base64", "base64url", "base64rawurl", "binary"
pub fn ripemd160(data : String, output_encoding : String) -> String {
ffi_ripemd160(data, output_encoding)
}
///| Random Data Generation
///|
/// FFI: Generate random bytes
#module("k6/crypto")
extern "js" fn ffi_random_bytes(size : Int) -> @core.Any = "randomBytes"
///|
/// Generate random bytes
pub fn random_bytes(size : Int) -> @core.Any {
ffi_random_bytes(size)
}