diff options
author | Matthew Miller <matthew@millerti.me> | 2020-09-07 22:56:37 -0700 |
---|---|---|
committer | Matthew Miller <matthew@millerti.me> | 2020-09-07 22:56:37 -0700 |
commit | 4adc750b02daf2e218d0617462e511da24875b3f (patch) | |
tree | a7589698bb03aacdaef1350dab9ef8e080cb5ae7 /packages/server/src | |
parent | 13d0d84c10e7762cac8f579a4e4dd08ff7f6d75c (diff) |
Simplify convertX509CertToPEM logic
Diffstat (limited to 'packages/server/src')
-rw-r--r-- | packages/server/src/helpers/convertX509CertToPEM.ts | 36 |
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; } |