如何验证密钥对匹配? 节点锻造

问题描述

在签名之前,我需要确保客户端生成的 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