From 0674a15c879cc0da341696eeaf79906fd8c81498 Mon Sep 17 00:00:00 2001 From: danisharora099 Date: Mon, 21 Aug 2023 13:59:46 +0530 Subject: [PATCH] shim crypto --- packages/message-encryption/src/crypto/index.ts | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/packages/message-encryption/src/crypto/index.ts b/packages/message-encryption/src/crypto/index.ts index b9160bfe4e..5c937901e5 100644 --- a/packages/message-encryption/src/crypto/index.ts +++ b/packages/message-encryption/src/crypto/index.ts @@ -10,16 +10,17 @@ import sha3 from "js-sha3"; import { Asymmetric, Symmetric } from "../constants.js"; declare const self: Record | undefined; -const crypto: { node?: any; web?: any } = { - node: nodeCrypto, - web: typeof self === "object" && "crypto" in self ? self.crypto : undefined -}; + +// Determine the correct crypto object for the environment +if (typeof self === "object" && "crypto" in self) { + globalThis.crypto = self.crypto; // Browser environment +} else { + globalThis.crypto = nodeCrypto.webcrypto as unknown as Crypto; // Node.js environment +} export function getSubtle(): SubtleCrypto { - if (crypto.web) { - return crypto.web.subtle; - } else if (crypto.node) { - return crypto.node.webcrypto.subtle; + if (globalThis.crypto && globalThis.crypto.subtle) { + return globalThis.crypto.subtle; } else { throw new Error( "The environment doesn't have Crypto Subtle API (if in the browser, be sure to use to be in a secure context, ie, https)"