Пн | Вт | Ср | Чт | Пт | Сб | Вс |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Сухая выдержка без мата “ЧТО ДЕЛАТЬ”.
Предполагается, что вы уже получили папку (например, “MySite.001”), содержающую файлы header.key, masks.key, masks2.key, name.key, primary.key, primary2.key.
Все это делаем под Windows 10.
docker run --rm -v `pwd`:`pwd` -w `pwd` -it rnix/openssl-gost openssl pkcs12 -in p12.pfx -nocerts -out key.pem -nodes
docker run --rm -v `pwd`:`pwd` -w `pwd` -it rnix/openssl-gost openssl pkcs12 -in p12.pfx -nokeys -out cert.pem
docker run --rm -v `pwd`:`pwd` -w `pwd` rnix/openssl-gost openssl x509 -pubkey -noout -in cert.pem > pubkey.pem
Для проверки используйте следующий код.
Подпись
Создайте файл с любым текстовым содержимым, например file.txt
:
Some Data
Далее необходимо подписать файл (выходом будет бинарный формат, поэтому делаем base64):
docker run --rm -v `pwd`:`pwd` -w `pwd` rnix/openssl-gost openssl dgst -md_gost12_256 -sign key.pem file.txt | base64 > signed.txt
Проверяйте, что файл появился и у него есть содержимое.
Проверка
Далее, раскодируем из base64 в бинарный формат:
base64 -D -in signed.txt > signed.bin
или
base64 -d signed.txt > signed.bin
И проверяем подпись, сравнивая с исходным файлом и подписью:
docker run --rm -v `pwd`:`pwd` -w `pwd` rnix/openssl-gost openssl dgst -md_gost12_256 -verify pubkey.pem -signature signed.bin file.txt
////////////////
Также обратите внимание на этот репозиторий (сделал REST-сервис для подписи и проверки подписи): https://github.com/crusat/openssl-gost-rest
////////////////
Источник: боль, кровь и мои слезы.
Ссылка на оригинал — Чиним вход через ЕСИА с ГОСТ-2012 — crusat
сохранено на всякий случай — хорошая инструкция )
Напишите нам, скорее всего мы придумаем для Вас решение или совет. Если есть идея - тем более! Сотрудничество мы тоже приветствуем.
"Лучше попробовать и пожалеть, чем жалеть, что никогда не пробовал".
POWERED BY
Навигация