convert PKCS#1 keys to PKCS#8 at load time

This commit is contained in:
2026-02-25 21:56:09 -06:00
parent 29b5c986cd
commit 05bab2c90f
+21 -7
View File
@@ -35,25 +35,39 @@ const readKeyFile = (path: string) => readFileSync(path).toString();
* so we normalize all keys to PKCS#8 at load time. * so we normalize all keys to PKCS#8 at load time.
*/ */
const toPkcs8Private = (pem: string) => const toPkcs8Private = (pem: string) =>
crypto.createPrivateKey({ key: pem, format: "pem", type: "pkcs1" }).export({ type: "pkcs8", format: "pem" }) as string; crypto
.createPrivateKey({ key: pem, format: "pem", type: "pkcs1" })
.export({ type: "pkcs8", format: "pem" }) as string;
const toPkcs8Public = (pem: string) => const toPkcs8Public = (pem: string) =>
crypto.createPublicKey({ key: pem, format: "pem", type: "pkcs1" }).export({ type: "spki", format: "pem" }) as string; crypto
.createPublicKey({ key: pem, format: "pem", type: "pkcs1" })
.export({ type: "spki", format: "pem" }) as string;
export const accessTokenPrivateKey = toPkcs8Private( export const accessTokenPrivateKey = toPkcs8Private(
isProduction ? process.env.ACCESS_TOKEN_PRIVATE_KEY! : readKeyFile(`.accessToken.key`), isProduction
? process.env.ACCESS_TOKEN_PRIVATE_KEY!
: readKeyFile(`.accessToken.key`),
); );
export const refreshTokenPrivateKey = toPkcs8Private( export const refreshTokenPrivateKey = toPkcs8Private(
isProduction ? process.env.REFRESH_TOKEN_PRIVATE_KEY! : readKeyFile(`.refreshToken.key`), isProduction
? process.env.REFRESH_TOKEN_PRIVATE_KEY!
: readKeyFile(`.refreshToken.key`),
); );
export const permissionsPrivateKey = toPkcs8Private( export const permissionsPrivateKey = toPkcs8Private(
isProduction ? process.env.PERMISSIONS_PRIVATE_KEY! : readKeyFile(`.permissions.key`), isProduction
? process.env.PERMISSIONS_PRIVATE_KEY!
: readKeyFile(`.permissions.key`),
); );
export const secureValuesPrivateKey = toPkcs8Private( export const secureValuesPrivateKey = toPkcs8Private(
isProduction ? process.env.SECURE_VALUES_PRIVATE_KEY! : readKeyFile(`.secureValues.key`), isProduction
? process.env.SECURE_VALUES_PRIVATE_KEY!
: readKeyFile(`.secureValues.key`),
); );
export const secureValuesPublicKey = toPkcs8Public( export const secureValuesPublicKey = toPkcs8Public(
isProduction ? process.env.SECURE_VALUES_PUBLIC_KEY! : readKeyFile(`public-keys/.secureValues.pub`), isProduction
? process.env.SECURE_VALUES_PUBLIC_KEY!
: readKeyFile(`public-keys/.secureValues.pub`),
); );
// Microsoft Auth Constants // Microsoft Auth Constants