From b6e463714c6fd729c8f91a77b27a83128f097967 Mon Sep 17 00:00:00 2001 From: Konrad Feldmeier Date: Thu, 16 Jan 2025 14:46:50 +0100 Subject: [PATCH] Experimental: add ComputeEpochID to WASM --- .../shcryptowasm/shutter_crypto_wasm.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/rolling-shutter/shcryptowasm/shutter_crypto_wasm.go b/rolling-shutter/shcryptowasm/shutter_crypto_wasm.go index d197ae0ff..e331b95b2 100644 --- a/rolling-shutter/shcryptowasm/shutter_crypto_wasm.go +++ b/rolling-shutter/shcryptowasm/shutter_crypto_wasm.go @@ -27,6 +27,7 @@ func main() { jsRegistry.Set("encrypt", encrypt) jsRegistry.Set("decrypt", decrypt) + jsRegistry.Set("computeEpochID", computeEpochID) jsRegistry.Set("verifyDecryptionKey", verifyDecryptionKey) // Tell JS we're loaded @@ -116,6 +117,21 @@ var verifyDecryptionKey = js.FuncOf(func(this js.Value, args []js.Value) interfa return ok }) +var computeEpochID = js.FuncOf(func(this js.Value, args []js.Value) interface{} { + if len(args) != 1 { + return encodeResult(nil, fmt.Errorf("expected 1 argument, got %d", len(args))) + } + b, err := decodeBytesArg(args[0], "epochIDBytes") + if err != nil { + return encodeResult(nil, err) + } + e, err := shcrypto.ComputeEpochID(b) + if err != nil { + return encodeResult(nil, err) + } + return encodeResult(e, nil) +} + func encodeResult(encryptedMessage []byte, err error) string { if err != nil { return "Error: " + err.Error()