summaryrefslogtreecommitdiffhomepage
path: root/packages/server/src/helpers/verifySignature.ts
blob: 2268d5484bda90d7153b0c4bcd2e224b1778543c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import crypto from 'crypto';

/**
 * Verify an authenticator's signature
 *
 * @param signature attStmt.sig
 * @param signatureBase Output from Buffer.concat()
 * @param publicKey Authenticator's public key as a PEM certificate
 * @param algo Which algorithm to use to verify the signature (default: `'sha256'`)
 */
export default function verifySignature(
  signature: Buffer,
  signatureBase: Buffer,
  publicKey: string,
  algo = 'sha256',
): boolean {
  return crypto.createVerify(algo).update(signatureBase).verify(publicKey, signature);
}