perf: 证书支持旧版RSA,pkcs1

This commit is contained in:
xiaojunnuo
2024-09-23 14:32:57 +08:00
parent f9ff9191a1
commit 3d9c3ecb3e
5 changed files with 29 additions and 12 deletions
@@ -67,11 +67,11 @@ function getKeyInfo(keyPem) {
* ```
*/
async function createPrivateRsaKey(modulusLength = 2048) {
async function createPrivateRsaKey(modulusLength = 2048, encodingType = 'pkcs8') {
const pair = await generateKeyPair('rsa', {
modulusLength,
privateKeyEncoding: {
type: 'pkcs8',
type: encodingType,
format: 'pem',
},
});
@@ -106,11 +106,11 @@ exports.createPrivateKey = createPrivateRsaKey;
* ```
*/
exports.createPrivateEcdsaKey = async (namedCurve = 'P-256') => {
exports.createPrivateEcdsaKey = async (namedCurve = 'P-256', encodingType = 'pkcs8') => {
const pair = await generateKeyPair('ec', {
namedCurve,
privateKeyEncoding: {
type: 'pkcs8',
type: encodingType,
format: 'pem',
},
});
@@ -201,6 +201,9 @@ async function getWebCryptoKeyPair(keyPem) {
}
/* Decode PEM and import into CryptoKeyPair */
if (encodingType === 'pkcs1') {
encodingType = 'pkcs8';
}
const privateKeyDec = x509.PemConverter.decodeFirst(keyPem.toString());
const privateKey = await crypto.webcrypto.subtle.importKey('pkcs8', privateKeyDec, sigalg, true, ['sign']);
const publicKey = await crypto.webcrypto.subtle.importKey('jwk', jwk, sigalg, true, ['verify']);
+1 -1
View File
@@ -32,7 +32,7 @@ exports.directory = {
*/
exports.crypto = require('./crypto');
// exports.forge = require('./crypto/forge');
exports.forge = require('./crypto/forge');
/**
* Axios