问题描述
在签名之前,我需要确保客户端生成的 RSA 密钥对匹配。我似乎找不到任何有关如何执行此操作的文档 (npm:node-forge)。我猜我可以用它签名,然后验证签名,但这效率不高。我目前有这个:
const Forge = require("node-forge");
try {
publicKey = Forge.pki.publicKeyFromPem(publicKey);
privateKey = Forge.pki.privateKeyFromPem(privateKey);
} catch(err) {
// ...
}
// ...
感谢任何想法。
解决方法
我找到了答案:我不需要首先发送公钥。您可以像这样从私钥构建公钥:
// const privateKey = ...;
const publicKey = Forge.pki.setRsaPublicKey(privateKey.n,privateKey.e);
可以在此处找到有关此解决方案的更多信息:Extract public key from private key pem using only nodejs/javascript。