summaryrefslogtreecommitdiffhomepage
path: root/packages/server/src/helpers/verifySignature.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/server/src/helpers/verifySignature.ts')
-rw-r--r--packages/server/src/helpers/verifySignature.ts18
1 files changed, 18 insertions, 0 deletions
diff --git a/packages/server/src/helpers/verifySignature.ts b/packages/server/src/helpers/verifySignature.ts
new file mode 100644
index 0000000..c938a23
--- /dev/null
+++ b/packages/server/src/helpers/verifySignature.ts
@@ -0,0 +1,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
+ */
+export default function verifySignature(
+ signature: Buffer,
+ signatureBase: Buffer,
+ publicKey: string,
+): boolean {
+ return crypto.createVerify('SHA256')
+ .update(signatureBase)
+ .verify(publicKey, signature);
+}