проверка подписи файла с openssl dgst

Я подписываю пакеты в некотором коде Java, и я хочу проверить подписи на сервере C. Я хочу разветвиться, openssl с этой целью (может всегда использовать библиотечные функции позже..., когда я знаю, что openssl может проверить подписи); однако, этому не удается сделать так:

openssl dgst -verify cert.pem -signature file.sha1 file.data
  • все, что это говорит, "неспособно загрузить файл ключей"

В сертификате говорится:

openssl verify cert.pem 

cert.pem: /C=....
error 20 at 0 depth lookup:unable to get local issuer certificate

Однако я конкретно не забочусь о проверке сертификата, я хочу только проверить подпись для данного файла!

Вывод openssl x509 -in cert.pem -noout -text :

Certificate:
    Data:
        Version: 1 (0x0)
        Serial Number:
            ...
        Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=...
        Validity
            Not Before: Feb  1 15:22:44 2010 GMT
            Not After : Jun 19 15:22:44 2037 GMT
        Subject: C=...
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (2048 bit)
                Modulus (2048 bit):
                    00:cc:cc:f9:c7:3a:00:0f:07:90:55:d9:fb:a9:fe:
                    ...
                    32:cc:ee:7f:f2:01:c7:35:d2:b5:9b:35:dd:69:76:
                    00:a9
                Exponent: 65537 (0x10001)
    Signature Algorithm: sha1WithRSAEncryption
        39:d6:2c:6b:6a:00:74:b5:81:c2:b8:60:d6:6b:54:11:41:8d:
        ...
        8f:3e:3f:5d:b3:f8:dd:5e
39
задан Will 5 March 2010 в 08:32
поделиться

1 ответ

openssl dgst -verify foo.pem ожидает, что foo.pem содержит "сырой" открытый ключ в формате PEM. Необработанный формат является кодировкой структуры SubjectPublicKeyInfo, которую можно найти в сертификате; но openssl dgst не может обработать весь сертификат за один раз.

Вы должны сначала извлечь открытый ключ из сертификата:

openssl x509 -pubkey -noout -in cert.pem > pubkey.pem

затем использовать ключ для проверки подписи:

openssl dgst -verify pubkey.pem -signature sigfile datafile
65
ответ дан 27 November 2019 в 02:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: