我正在尝试修改 fabric-sdk-node
项目以将其与 RSA 证书和 key 一起使用。
目前我不知道如何使用 RSA 公钥生成 SKI(X509v3 主题 key 标识符)。
该项目正在使用 jsrsasign
package关于加密货币的事情。
我在 Github.com 上的 jsrsasign
问题页面中找到了 produce SKI with ECDSA ,但在 RSA 中仍然没有任何线索。
欢迎任何建议!
谢谢!
最佳答案
我几乎测试了jsrsasign
包中的每个方法,但仍然没有发现任何有用的东西。
所以我跳出框框,认为 X509V3 主题 key 标识符 (SKI) 是由默认的 sha1
哈希算法生成的。然而,我们在 hyperledger/fabric 中所做的,将哈希算法定义为 sha256。那么,如果 jsrsasign
使用 sha1
对该哈希算法进行了硬编码呢? (此为猜测,如有错误请指正。)
有了这个想法,我尝试了另一个包node-forge
,它刚刚解决了我的问题。
这是演示:
const nodeForge = require("node-forge");
const pki = nodeForge.pki;
const jsrsa = require("jsrsasign");
const KEYUTIL = jsrsa.KEYUTIL;
const rsaPubKeyPem = `-----BEGIN CERTIFICATE-----
MIID<.........>Y/gRUg==
-----END CERTIFICATE-----
`;
const pubKey = KEYUTIL.getKey(rsaPubKeyPem);
const publicKey = pki.rsa.setPublicKey(pubKey.n,pubKey.e);
console.log(pki.getPublicKeyFingerprint(publicKey,{
md: nodeForge.sha256.create(),
encoding: 'hex',
delimiter: ':'}));
我们得到了与 openssl 完全相同的 SKI。 这将导入另一个加密包,它看起来很丑。 如果您有什么好的想法请不吝赐教。
谢谢!
关于javascript - 如何在 Node js 中从 RSA 公钥生成 SKI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60449571/