我正在尝试修改fabric-sdk-node
项目以将其与RSA证书和密钥一起使用。
现在,我还不知道如何生成带有RSA公钥的SKI(X509v3主题密钥标识符)。
该项目在加密事物上使用jsrsasign
package。
我已经在Github.com的jsrsasign
问题页面上找到了,该页面可以produce SKI with ECDSA,但在RSA中仍然没有任何线索。
任何建议都将受到欢迎!
谢谢!
最佳答案
我几乎已经测试了包jsrsasign
中的每种方法,但是仍然找不到任何有用的方法。
因此,我跳出框框思考,认为X509V3主题密钥标识符(SKI)由默认的sha1
哈希算法产生。但是,我们在超级账本/结构中所做的定义将哈希算法定义为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。
这将导入另一个加密程序包,并且看起来很丑。
如果有什么好主意请告知。
谢谢!