如何从节点 js 中的 RSA public 密钥生成 SKI?
How can I produce a SKI from RSA public Key in node js?
我正在尝试修改 fabric-sdk-node
项目以将其与 RSA 证书和密钥一起使用。
现在我不知道如何使用 RSA public 密钥生成 SKI(X509v3 主题密钥标识符)。
该项目正在使用 jsrsasign
package 加密货币。
我在 Github.com 的 jsrsasign
issue 页面中找到了可以 produce SKI with ECDSA,但在 RSA 中仍然没有任何线索。
欢迎任何建议!
谢谢!
包jsrsasign
中的所有方法我几乎都测试过了,但还是没找到有用的东西。
所以我跳出框框思考,X509V3 主题密钥标识符 (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。
这将导入另一个加密包,它看起来很难看。
有什么好的想法请指教
谢谢!
我正在尝试修改 fabric-sdk-node
项目以将其与 RSA 证书和密钥一起使用。
现在我不知道如何使用 RSA public 密钥生成 SKI(X509v3 主题密钥标识符)。
该项目正在使用 jsrsasign
package 加密货币。
我在 Github.com 的 jsrsasign
issue 页面中找到了可以 produce SKI with ECDSA,但在 RSA 中仍然没有任何线索。
欢迎任何建议!
谢谢!
包jsrsasign
中的所有方法我几乎都测试过了,但还是没找到有用的东西。
所以我跳出框框思考,X509V3 主题密钥标识符 (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。 这将导入另一个加密包,它看起来很难看。 有什么好的想法请指教
谢谢!