Pull to refresh

Экспорт ключа SignalCom в OpenSSL

Reading time2 min
Views4.6K

У вас стоит задача интегрироваться с удалённым сервисом, который работает по ГОСТу и "только через КРИПТО-КОМ", а вы хотите использовать OpenSSL с gost? На форуме "Сигнал-КОМ" вы видите кучи сообщений, что "ключи из формата КРИПТО-КОМ нельзя конвертировать в формат OpenSSL-гост-совместимых"? На самом деле конвертация возможна.


tl;dr: http://gostcrypto.com/demo-sc-keys.html


Как сконвертировать уже имеющиеся ключи из проприетарного в ортодоксальный формат?


Я не параноик


Идёте на http://gostcrypto.com/demo-sc-keys.html и указав файлы контейнера типа "mk.db3", "masks.db3", "kek.opq", "rand.opq" и файл приватного ключа по типу "Keys\00000001.key", нажмите кнопку "Export PrivateKey".


В текущей версии gostcrypto.com ключ будет не совсем PEM-совместимым, т.к. используется длина более 64 символов:


-----BEGIN PRIVATE KEY-----
MEYCAQAwHQYGKoUDAgITMBMGByqFAwICIwEGCCqFAwcBAQICBCIEIG0GEmE3dhrHzm1KfFDpKBWEmMydwcmP0hNKvXXbEbLO
-----END PRIVATE KEY-----

Чтобы сделать его PEM-совместимым просто добавьте новую строку после 64 символа:


-----BEGIN PRIVATE KEY-----
MEYCAQAwHQYGKoUDAgITMBMGByqFAwICIwEGCCqFAwcBAQICBCIEIG0GEmE3dhrH
zm1KfFDpKBWEmMydwcmP0hNKvXXbEbLO
-----END PRIVATE KEY-----

Я параноик или хочу cli-версию


На момент публикации этой статьи gostcrypto не node-фицирована и есть попытка её node-фикации в пул-реквесте. Там же cli-утилита для экспорта в PEM-compatible формат.


Ставим её и пробуем экспортировать ключ:


sudo npm install -g https://github.com/garex/nodejs-gost-crypto/archive/nodefy.tar.gz
cd /tmp
wget https://www.contact-sys.com/files/redactor/files/TestContactKey.zip
unzip TestContactKey.zip -d TestContactKey
gost-export-signalcom-key --pse TestContactKey --key Keys/00000001.key

В результате мы получаем в STDOUT:


-----BEGIN PRIVATE KEY-----
MEYCAQAwHQYGKoUDAgITMBMGByqFAwICIwEGCCqFAwcBAQICBCIEIG0GEmE3dhrH
zm1KfFDpKBWEmMydwcmP0hNKvXXbEbLO
-----END PRIVATE KEY-----

И в STDERR:


OK: Private SignalCom key successfully exported in STDOUT in "PEM" format.
Tags:
Hubs:
Total votes 13: ↑12 and ↓1+11
Comments1

Articles