Как я могу произвести SKI из RSA publi c Key node js? - PullRequest
1 голос
/ 28 февраля 2020

Я пытаюсь изменить проект fabric-sdk-node, чтобы использовать его с сертификатами и ключами RSA.

И пока я не знаю, как создать SKI (идентификатор ключа субъекта X509v3) с опубликованным RSA c key.

Этот проект использует jsrsasign package для криптовалют.

Я нашел на странице проблемы jsrsasign на Github.com которые могут производить SKI с ECDSA , но все еще не имеют смысла в RSA.

Любой совет будет приветствоваться!

Спасибо!

1 Ответ

0 голосов
/ 02 марта 2020

Я почти протестировал каждый метод в пакете jsrsasign, но все еще не нашел ничего полезного.

Поэтому я смотрю за пределы поля и думаю, что идентификатор ключа субъекта (SKI) X509V3 был создан по умолчанию sha1 га sh ал go. Однако то, что мы сделали в hyperledger / fabri c, определило, что ha sh al go будет sha256. Так что, если jsrsasign сделал это sh al go жестко закодированным с 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: ':'}));

И у нас есть точно такой же SKI, как у openssl. Это импортирует другой криптопакет, и это выглядело ужасно. Пожалуйста, сообщите, если у вас есть хорошие идеи.

Спасибо!

...