njs/crypto
Types
pub type CryptoKeyPair
pub type DecryptAlgorithm =
EncryptAlgorithm
pub type EncryptAlgorithm {
RsaOaep(name: String)
AesCtr(name: String, counter: buffer.ArrayBuffer, length: Int)
AesCbc(name: String, iv: buffer.ArrayBuffer)
AesGcm(
name: String,
iv: buffer.ArrayBuffer,
additional_data: buffer.ArrayBuffer,
tag_length: Int,
)
}
Constructors
-
RsaOaep(name: String) -
AesCtr(name: String, counter: buffer.ArrayBuffer, length: Int) -
AesCbc(name: String, iv: buffer.ArrayBuffer) -
AesGcm( name: String, iv: buffer.ArrayBuffer, additional_data: buffer.ArrayBuffer, tag_length: Int, )
pub type KeyAlgorithm {
RsaOaepKey(name: String, hash: String)
HMACKey(name: String, hash: String, length: Int)
AesKey(name: String)
OKPKey(name: String)
}
Constructors
-
RsaOaepKey(name: String, hash: String)RSA-OAEP
-
HMACKey(name: String, hash: String, length: Int)HMAC
-
AesKey(name: String)AES-CTR AES-CBC AES-GCM AES-KW
-
OKPKey(name: String)Ed25519, X25519
pub type KeyData {
KeyData(d: json.Json)
KeyArrayData(d: buffer.ArrayBuffer)
}
Constructors
-
KeyData(d: json.Json) -
KeyArrayData(d: buffer.ArrayBuffer)
Values
pub fn compute_hash(
algorithm a: String,
data d: buffer.Buffer,
encoding e: buffer.Encoding,
) -> promise.Promise(String)
Hash data and return the result as an encoded string. algorithm: Node.js-style name (“sha256”, “sha1”, “md5”, etc.) Replaces the removed createHash/update/digest chain from njs 0.9.7.
pub fn compute_hmac(
algorithm a: String,
key k: buffer.Buffer,
data d: buffer.Buffer,
encoding e: buffer.Encoding,
) -> promise.Promise(String)
Compute an HMAC and return it as an encoded string. algorithm: hash algorithm (“sha256”, “sha1”, etc.) key: raw key bytes as a Buffer Replaces the removed createHmac/update/digest chain from njs 0.9.7.
pub fn decrypt(
algorithm a: EncryptAlgorithm,
key k: CryptoKey,
ciphertext d: buffer.ArrayBuffer,
) -> promise.Promise(buffer.ArrayBuffer)
pub fn derive_bits(
algorithm a: a,
base_key k: CryptoKey,
length l: Int,
) -> promise.Promise(buffer.ArrayBuffer)
pub fn derive_key(
algorithm a: a,
base_key k: CryptoKey,
derived_key_algorithm dka: KeyAlgorithm,
extractable e: Bool,
key_usages ku: array.Array(String),
) -> promise.Promise(CryptoKey)
pub fn digest(
algorithm a: String,
data d: buffer.ArrayBuffer,
) -> promise.Promise(buffer.ArrayBuffer)
pub fn encrypt(
algorithm a: EncryptAlgorithm,
key k: CryptoKey,
plaintext d: buffer.ArrayBuffer,
) -> promise.Promise(buffer.ArrayBuffer)
pub fn export_key(
format f: String,
key k: CryptoKey,
) -> promise.Promise(KeyData)
pub fn generate_key(
algorithm a: KeyAlgorithm,
extractable e: Bool,
usages ku: array.Array(String),
) -> promise.Promise(CryptoKeyPair)
pub fn get_random_values(
typedarray a: buffer.TypedArray,
) -> buffer.TypedArray
pub fn import_key(
format f: String,
key k: buffer.ArrayBuffer,
algorithm a: KeyAlgorithm,
extractable e: Bool,
usages ku: array.Array(String),
) -> promise.Promise(CryptoKey)
pub fn random_uuid() -> String
Generate a random UUID v4 string. Added in njs 0.9.7.
pub fn sign(
algorithm a: a,
key k: CryptoKey,
data d: buffer.ArrayBuffer,
) -> promise.Promise(buffer.ArrayBuffer)
pub fn unwrap_key(
format f: String,
wrapped_key wk: buffer.ArrayBuffer,
unwrapping_key uk: CryptoKey,
unwrap_algorithm ua: a,
unwrapped_key_algorithm uka: KeyAlgorithm,
extractable e: Bool,
key_usages ku: array.Array(String),
) -> promise.Promise(CryptoKey)
Unwrap an encrypted key. Added in njs 0.9.7.
pub fn verify(
algorithm a: a,
key k: CryptoKey,
signature s: buffer.ArrayBuffer,
data d: buffer.ArrayBuffer,
) -> promise.Promise(Bool)
pub fn wrap_key(
format f: String,
key k: CryptoKey,
wrapping_key wk: CryptoKey,
algorithm a: a,
) -> promise.Promise(buffer.ArrayBuffer)
Wrap a CryptoKey using a wrapping key. Added in njs 0.9.7.