javascript - 如何在 Node js 中从 RSA 公钥生成 SKI?

标签 javascript rsa x509 identifier

我正在尝试修改 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/

相关文章:

javascript - 图表上的数据事件绑定(bind)

JAVA JSch连接CISCO设备65XX路由器

c - Windows 2008R2 CA 和 OpenSSL CSR : Error parsing CSR ASN1 bad value met

python - 从哪里获取 SSLSocket 的签名算法名称?

javascript - 如何在 Javascript 中交叉引用类

javascript - 开发 Multi-Tenancy 应用程序,以便用户可以在同一浏览器中使用不同的选项卡在不同的组织中工作

javascript - 我想在 jquery 对话框中从数据库获取 id

key - 查找我的有效 RSA 主机 key

node.js - RSA enc/dec 的 node-forge 包错误

certificate - BouncycaSTLe:X509 证书的 X509 证书持有者?