Я должен проверить подпись в файле (signatureFile.txt), который был подписан с помощью закрытого ключа. У меня есть доступ только к сертификату publi c (.cer), сгенерированному из закрытого ключа, если я не ошибаюсь. Я использую Poweshell, но для упрощения я публикую его с помощью команд cmd и openssl.
Использование тезисов в качестве руководства x509 Сертификат Руководство Проверка подписи и RSA подписать и проверить с помощью Openssl: За кулисами
Используя cmd я передаю .cer файл в .pem
openssl x509 -inform DER -outform PEM -in myCert.cer -pubkey -out myCertPem.pem
После этого я получил ключ publi c от сертификата, используя следующую команду:
openssl x509 -in myCertPem.pem -noout -pubkey > myPubKey.pem
Я получил
publi c ключ
Использование этой записи Я вычеркнул алгоритм подписи из сертификата
openssl x509 -in certPEMSAT.pem -text -noout -certopt ca_default -certopt no_validity -certopt no_serial -certopt no_subject -certopt no_extensions -certopt no_signame > sign.txt.sha256
Алгоритм подписи
Наконец, просто нужно использовать следующую команду:
openssl dgst -sha256 -verify myPubKey.key -signature sign.txt.sha256 signedFile.txt
Я знаю, что мне нужно преобразовать шестнадцатеричная подпись в двоичную подпись до проверки согласно этой странице , но это где я Я застрял.