我正在尝试修改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。
这将导入另一个加密程序包,并且看起来很丑。
如果有什么好主意请告知。

谢谢!

09-25 19:59