From 2f167a844741d2e619c493a16aa239ffd4dfeb3b Mon Sep 17 00:00:00 2001 From: Kai WU Date: Sat, 3 Aug 2024 09:52:35 +0800 Subject: [PATCH] hash and hmac --- src/njs/crypto.gleam | 24 +++++++++++++++++++++++- src/njs/fs.gleam | 1 - src/njs/misc.gleam | 1 - src/njs/njs_ffi.mjs | 0 src/njs/stream.gleam | 1 - src/njs/xml.gleam | 1 - src/njs/zlib.gleam | 1 - 7 files changed, 23 insertions(+), 6 deletions(-) delete mode 100644 src/njs/fs.gleam delete mode 100644 src/njs/misc.gleam delete mode 100644 src/njs/njs_ffi.mjs delete mode 100644 src/njs/stream.gleam delete mode 100644 src/njs/xml.gleam delete mode 100644 src/njs/zlib.gleam diff --git a/src/njs/crypto.gleam b/src/njs/crypto.gleam index 4e3ceee..f2f7097 100644 --- a/src/njs/crypto.gleam +++ b/src/njs/crypto.gleam @@ -1,6 +1,10 @@ import gleam/javascript/array.{type Array} import gleam/javascript/promise.{type Promise} -import njs/buffer.{type ArrayBuffer, type TypedArray} +import njs/buffer.{type ArrayBuffer, type Encoding, type TypedArray} + +pub type Hmac + +pub type Hash pub type CryptoKey @@ -71,3 +75,21 @@ pub fn import_key( extractable e: Bool, usages ku: Array(String), ) -> Promise(CryptoKey) + +@external(javascript, "./crypto_ffi.mjs", "create_hash") +pub fn create_hash(algorithm a: String) -> Hash + +@external(javascript, "./crypto_ffi.mjs", "hash_update") +pub fn hash_update(hash h: Hash, data d: BitArray) -> Hash + +@external(javascript, "./crypto_ffi.mjs", "hash_digest") +pub fn hash_digest(hash h: Hash, encoding e: Encoding) -> String + +@external(javascript, "./crypto_ffi.mjs", "create_hmac") +pub fn create_hmac(algorithm a: String, secret k: String) -> Hmac + +@external(javascript, "./crypto_ffi.mjs", "hmac_update") +pub fn hmac_update(hmac h: Hmac, data d: BitArray) -> Hmac + +@external(javascript, "./crypto_ffi.mjs", "hmac_digest") +pub fn hmac_digest(hmac h: Hmac, encoding e: Encoding) -> String diff --git a/src/njs/fs.gleam b/src/njs/fs.gleam deleted file mode 100644 index 8b13789..0000000 --- a/src/njs/fs.gleam +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/njs/misc.gleam b/src/njs/misc.gleam deleted file mode 100644 index 8b13789..0000000 --- a/src/njs/misc.gleam +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/njs/njs_ffi.mjs b/src/njs/njs_ffi.mjs deleted file mode 100644 index e69de29..0000000 diff --git a/src/njs/stream.gleam b/src/njs/stream.gleam deleted file mode 100644 index 8b13789..0000000 --- a/src/njs/stream.gleam +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/njs/xml.gleam b/src/njs/xml.gleam deleted file mode 100644 index 8b13789..0000000 --- a/src/njs/xml.gleam +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/njs/zlib.gleam b/src/njs/zlib.gleam deleted file mode 100644 index 8b13789..0000000 --- a/src/njs/zlib.gleam +++ /dev/null @@ -1 +0,0 @@ -