ECDSA: Output keys as JSONWebKeySet instead of two JWK

This commit is contained in:
CPlusSharp 2024-04-14 15:19:57 +02:00
parent 1fbc7e03f0
commit 7e7195c291
1 changed files with 9 additions and 5 deletions

View File

@ -75,17 +75,21 @@ class GenerateECDSAKeyPair extends Operation {
let result; let result;
switch (outputFormat) { switch (outputFormat) {
case "PEM": case "PEM":
pubKey = r.KEYUTIL.getPEM(keyPair.pubKeyObj); pubKey = r.KEYUTIL.getPEM(keyPair.pubKeyObj).replace(/\r/g, "");
privKey = r.KEYUTIL.getPEM(keyPair.prvKeyObj, "PKCS8PRV"); privKey = r.KEYUTIL.getPEM(keyPair.prvKeyObj, "PKCS8PRV").replace(/\r/g, "");
result = pubKey + "\n" + privKey; result = pubKey + "\n" + privKey;
break; break;
case "DER": case "DER":
result = keyPair.prvKeyObj.prvKeyHex; result = keyPair.prvKeyObj.prvKeyHex;
break; break;
case "JWK": case "JWK":
pubKey = JSON.stringify(r.KEYUTIL.getJWKFromKey(keyPair.pubKeyObj)); pubKey = r.KEYUTIL.getJWKFromKey(keyPair.pubKeyObj);
privKey = JSON.stringify(r.KEYUTIL.getJWKFromKey(keyPair.prvKeyObj)); pubKey.key_ops = ["verify"]; // eslint-disable-line camelcase
result = pubKey + "\n\n" + privKey; pubKey.kid = "PublicKey";
privKey = r.KEYUTIL.getJWKFromKey(keyPair.prvKeyObj);
privKey.key_ops = ["sign"]; // eslint-disable-line camelcase
privKey.kid = "PrivateKey";
result = JSON.stringify({keys: [privKey, pubKey]}, null, 4);
break; break;
} }