summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMatthew Miller <matthew@millerti.me>2022-11-11 15:51:31 -0800
committerMatthew Miller <matthew@millerti.me>2022-11-11 15:51:31 -0800
commit86e86b3b3ca2583981278ebfe700d415af9b402c (patch)
treee53f3667e99990d82667e3ff7b94c1a236df2d82
parent9c9cf63d9fbe45307fa002577d77186d493f539d (diff)
Tighten up base64 vs base64url detection
-rw-r--r--packages/server/src/helpers/convertCertBufferToPEM.ts11
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 = '';