summaryrefslogtreecommitdiffhomepage
path: root/packages/server/src
diff options
context:
space:
mode:
authorMatthew Miller <matthew@millerti.me>2020-07-04 15:06:50 -0700
committerMatthew Miller <matthew@millerti.me>2020-07-04 15:06:50 -0700
commit8c3a38fc7ce87c8424ab53f6347d5bdd56d84c90 (patch)
treee27a6e920f70ab1163ab7ec5b94d0d287c3d6e02 /packages/server/src
parent2f4d3e86d772d0a7c77715e2d1747421754a1830 (diff)
Add new metadata auth algorithm constants
Diffstat (limited to 'packages/server/src')
-rw-r--r--packages/server/src/helpers/constants.ts39
1 files changed, 39 insertions, 0 deletions
diff --git a/packages/server/src/helpers/constants.ts b/packages/server/src/helpers/constants.ts
index e4fbd69..e4b3841 100644
--- a/packages/server/src/helpers/constants.ts
+++ b/packages/server/src/helpers/constants.ts
@@ -19,3 +19,42 @@ export const ENV_VARS = {
MDS_TOC_URL: MDS_TOC_URL || 'https://mds2.fidoalliance.org/',
MDS_ROOT_CERT_URL: MDS_ROOT_CERT_URL || 'https://mds.fidoalliance.org/Root.cer',
};
+
+type COSEInfo = {
+ kty: number;
+ alg: number;
+ crv?: number;
+};
+
+/**
+ * A mapping of ALG_SIGN hex values (as unsigned shorts) to COSE curve values. Keys should appear as
+ * values in a metadata statement's `authenticationAlgorithm` property.
+ *
+ * From https://fidoalliance.org/specs/fido-v2.0-rd-20180702/fido-registry-v2.0-rd-20180702.html#authentication-algorithms
+ */
+export const FIDO_METADATA_AUTH_ALG_TO_COSE: { [algKey: number]: COSEInfo } = {
+ // ALG_SIGN_SECP256R1_ECDSA_SHA256_RAW
+ 1: { kty: 2, alg: -7, crv: 1 },
+ // ALG_SIGN_RSASSA_PSS_SHA256_RAW
+ 3: { kty: 3, alg: -37 },
+ // ALG_SIGN_SECP256K1_ECDSA_SHA256_RAW
+ 5: { kty: 2, alg: -7, crv: 8 },
+ // ALG_SIGN_RSASSA_PSS_SHA384_RAW
+ 10: { kty: 3, alg: -38 },
+ // ALG_SIGN_RSASSA_PSS_SHA512_RAW
+ 11: { kty: 3, alg: -39 },
+ // ALG_SIGN_RSASSA_PKCSV15_SHA256_RAW
+ 12: { kty: 3, alg: -257 },
+ // ALG_SIGN_RSASSA_PKCSV15_SHA384_RAW
+ 13: { kty: 3, alg: -258 },
+ // ALG_SIGN_RSASSA_PKCSV15_SHA512_RAW
+ 14: { kty: 3, alg: -259 },
+ // ALG_SIGN_RSASSA_PKCSV15_SHA1_RAW
+ 15: { kty: 3, alg: -65535 },
+ // ALG_SIGN_SECP384R1_ECDSA_SHA384_RAW
+ 16: { kty: 2, alg: -35, crv: 2 },
+ // ALG_SIGN_SECP521R1_ECDSA_SHA512_RAW
+ 17: { kty: 2, alg: -36, crv: 3 },
+ // ALG_SIGN_SECP521R1_ECDSA_SHA512_RAW
+ 18: { kty: 1, alg: -8, crv: 6 },
+};