diff options
author | Matthew Miller <matthew@millerti.me> | 2022-11-11 15:51:31 -0800 |
---|---|---|
committer | Matthew Miller <matthew@millerti.me> | 2022-11-11 15:51:31 -0800 |
commit | 86e86b3b3ca2583981278ebfe700d415af9b402c (patch) | |
tree | e53f3667e99990d82667e3ff7b94c1a236df2d82 | |
parent | 9c9cf63d9fbe45307fa002577d77186d493f539d (diff) |
Tighten up base64 vs base64url detection
-rw-r--r-- | packages/server/src/helpers/convertCertBufferToPEM.ts | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/packages/server/src/helpers/convertCertBufferToPEM.ts b/packages/server/src/helpers/convertCertBufferToPEM.ts index b698773..111e481 100644 --- a/packages/server/src/helpers/convertCertBufferToPEM.ts +++ b/packages/server/src/helpers/convertCertBufferToPEM.ts @@ -1,6 +1,5 @@ import type { Base64URLString } from '@simplewebauthn/typescript-types'; -import uint8Array from './uint8Array'; import * as base64url from './base64url'; /** @@ -13,9 +12,15 @@ export function convertCertBufferToPEM(certBuffer: Uint8Array | Base64URLString) * Get certBuffer to a base64 representation */ if (typeof certBuffer === 'string') { - b64cert = base64url.toBase64(certBuffer); + if (base64url.isBase64url(certBuffer)) { + b64cert = base64url.toBase64(certBuffer); + } else if (base64url.isBase64(certBuffer)) { + b64cert = certBuffer + } else { + throw new Error('Certificate is not a valid base64 or base64url string'); + } } else { - b64cert = uint8Array.toBase64(certBuffer); + b64cert = base64url.fromBuffer(certBuffer, 'base64'); } let PEMKey = ''; |