diff options
author | Matthew Miller <matthew@millerti.me> | 2022-12-10 22:40:45 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-10 22:40:45 -0800 |
commit | 461b67c0c6fadfb55c1da6c9c8ab2693ba4c9a03 (patch) | |
tree | ae713d608966ac977390e7bbfbeab5ea79a191bc /packages/server/src/helpers/iso/isoCrypto/digest.ts | |
parent | 33528afe001d4aca62052dce204c0398c3127ffd (diff) | |
parent | 90dd7f247182329987a8e23f476d9280d8d5c265 (diff) |
Merge pull request #299 from MasterKale/feat/isomorphic
feat/isomorphic
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); +} |