summaryrefslogtreecommitdiffhomepage
path: root/packages/server/src/helpers/iso/isoCrypto/digest.ts
blob: 05260a35f1094b1a6178bb46d5f42c34679f16c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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);
}