diff options
Diffstat (limited to 'packages/server/src/helpers/iso/isoCrypto/digest.ts')
-rw-r--r-- | packages/server/src/helpers/iso/isoCrypto/digest.ts | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/packages/server/src/helpers/iso/isoCrypto/digest.ts b/packages/server/src/helpers/iso/isoCrypto/digest.ts new file mode 100644 index 0000000..05260a3 --- /dev/null +++ b/packages/server/src/helpers/iso/isoCrypto/digest.ts @@ -0,0 +1,18 @@ +import WebCrypto from '@simplewebauthn/iso-webcrypto'; + +import { COSEALG } from '../../cose'; +import { mapCoseAlgToWebCryptoAlg } from './mapCoseAlgToWebCryptoAlg'; + +/** + * Generate a digest of the provided data. + * + * @param data The data to generate a digest of + * @param algorithm A COSE algorithm ID that maps to a desired SHA algorithm + */ +export async function digest(data: Uint8Array, algorithm: COSEALG): Promise<Uint8Array> { + const subtleAlgorithm = mapCoseAlgToWebCryptoAlg(algorithm); + + const hashed = await WebCrypto.subtle.digest(subtleAlgorithm, data); + + return new Uint8Array(hashed); +} |