Есть ли способ получить приватный пользовательский и публичный ключ c в hyperledger fabri c для шифрования данных - PullRequest
0 голосов
/ 05 апреля 2020

Я недавно начал изучать hyperledger fabri c, я работаю над простой приватной цепочкой блоков для управления цифровыми данными, эти данные будут зашифрованы с помощью ключа пользователя publi c и могут быть расшифрованы только с помощью личного ключа пользователя, поэтому мой вопрос, есть ли способ получить приватный пользовательский ключ и ключ c в Hyperledger Fabri c для шифрования данных

Ответы [ 2 ]

0 голосов
/ 06 апреля 2020

Хотя ключи MSP ECDSA используются для подписи, вы можете использовать их для шифрования через ECDH. По сути, вы можете получить тот же общий секретный ключ из publi c ключа A и личного ключа B, что и из publi c ключа B и личного ключа A, так что вы можете использовать этот общий секрет в качестве симметричного ключа c AES для шифрования.

Пример с openssl: https://jameshfisher.com/2017/04/14/openssl-ecc/. Вам не нужно создавать пары ключей, поскольку они у вас уже есть. Вы можете реализовать его в javascript с elliptic и crypto библиотеками.

Вы управляете своими личными и общедоступными c ключами (в кошельке вашего клиента после регистрации), но вы должны договориться о надежный способ распространения ключа publi c другого. Вы можете легко проверить этот ключ publi c, если он встроен в действующий сертификат, но способ его распространения лежит у вас на руках.

0 голосов
/ 06 апреля 2020

да, fabri c использует инфраструктуру publi c -key. Каждая транзакция в fabri c подписывается личным ключом пользователя. А на уровне цепочки кодов вы можете получить ключ publi c пользователя от его электронных сертификатов.

Подробнее об удостоверениях от fabri c docs https://hyperledger-fabric.readthedocs.io/en/release-2.0/identity/identity.html

CID golang пакет для получения электронного сертификата на уровне цепочки кодов https://github.com/hyperledger/fabric-chaincode-go/tree/master/pkg/cid

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...