- Репозиторий с патчами: https://github.com/deemru/fabric/tree/v1.4.1-gost
- Плагин BCCSP: https://update.cryptopro.ru/support/fabric/20190816/cpro.so
- КриптоПро CSP: https://www.cryptopro.ru/products/csp/downloads
- Плагин
cpro.so
реализует расширенный функционал стандартного модуля BCCSP, обеспечивая поддержку ГОСТ. - При инициализации MSP отрабатывает штатный функционал, который при обнаружении сертификатов ГОСТ переключается на использование в качестве хэша на ГОСТ Р 34.11-2012 и в качестве подписи и проверки подписи на ГОСТ Р 34.10-2012.
- Работа с построением цепочек доверия и проверкой сертификатов на отзыв пока не реализована (TODO).
- Поддерживаются только 256-битные версии алгоритмов 2012 года.
- Используем репозиторий выше
- Устанавливаем плагин (/usr/lib/cpro.so)
- Устанавливаем КриптоПро CSP >= 4.0
- Подключаем плагин в файлах
orderer.yaml
иcore.yaml
в секции BCCSP:
Default: PLUGIN
PLUGIN:
Library: /usr/lib/cpro.so
Config:
Hash: SHA2
Security: 256
FileKeyStore:
KeyStore: /etc/hyperledger/fabric/msp/keystore
- Собираем HyperLedger Fabric:
GOPATH=/go GO_TAGS=pluginsenabled make peer orderer
- Получение тестового сертификата:
/opt/cprocsp/bin/amd64/cryptcp -creatcert -provtype 80 -rdn "CN=fab1,OU=COP" -cont "\\\\.\\HDIMAGE\\fab1" -ku -du -ex -ca http://cryptopro.ru/certsrv
- Экспорт сертификата:
/opt/cprocsp/bin/amd64/certmgr -export -dest fab1.pem -base64
- Расположение сертификатов в
admincerts
иsigncerts
В своих тестах мы используем данный пример: https://github.com/chainforce/native-fabric