summaryrefslogtreecommitdiffhomepage
path: root/packages/server/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/server/src')
-rw-r--r--packages/server/src/helpers/convertX509CertToPEM.ts36
1 files changed, 5 insertions, 31 deletions
diff --git a/packages/server/src/helpers/convertX509CertToPEM.ts b/packages/server/src/helpers/convertX509CertToPEM.ts
index 3bbb0d9..9e001b8 100644
--- a/packages/server/src/helpers/convertX509CertToPEM.ts
+++ b/packages/server/src/helpers/convertX509CertToPEM.ts
@@ -7,38 +7,12 @@ import type { Base64URLString } from '@simplewebauthn/typescript-types';
* @param buffer - Cert or PubKey buffer
* @return PEM
*/
-export default function convertX509CertToPEM(pkBuffer: Buffer | Base64URLString): string {
+export default function convertX509CertToPEM(certBuffer: Buffer | Base64URLString): string {
let buffer: Buffer;
- if (typeof pkBuffer === 'string') {
- buffer = base64url.toBuffer(pkBuffer);
+ if (typeof certBuffer === 'string') {
+ buffer = base64url.toBuffer(certBuffer);
} else {
- buffer = pkBuffer;
- }
-
- let type;
- if (buffer.length === 65 && buffer[0] === 0x04) {
- /**
- * If needed, we encode rawpublic key to ASN structure, adding metadata:
- *
- * SEQUENCE {
- * SEQUENCE {
- * OBJECTIDENTIFIER 1.2.840.10045.2.1 (ecPublicKey)
- * OBJECTIDENTIFIER 1.2.840.10045.3.1.7 (P-256)
- * }
- * BITSTRING <raw public key>
- * }
- *
- * Luckily, to do that, we just need to prefix it with constant 26 bytes (metadata is
- * constant).
- */
- buffer = Buffer.concat([
- Buffer.from('3059301306072a8648ce3d020106082a8648ce3d030107034200', 'hex'),
- buffer,
- ]);
-
- type = 'PUBLIC KEY';
- } else {
- type = 'CERTIFICATE';
+ buffer = certBuffer;
}
const b64cert = buffer.toString('base64');
@@ -50,7 +24,7 @@ export default function convertX509CertToPEM(pkBuffer: Buffer | Base64URLString)
PEMKey += `${b64cert.substr(start, 64)}\n`;
}
- PEMKey = `-----BEGIN ${type}-----\n${PEMKey}-----END ${type}-----\n`;
+ PEMKey = `-----BEGIN CERTIFICATE-----\n${PEMKey}-----END CERTIFICATE-----\n`;
return PEMKey;
}