Я пытаюсь получить мой контент timestamped, поэтому я знаю, когда он был изменен. Сначала я использовал сценарий оболочки, но я хочу реализовать его в своей программе python. сценарий оболочки отлично работает, но я не могу заставить версию python работать для меня. Это работает оболочки версияpython rfc3161 проверка не удалась, но проверка openssl в порядке
in_file='test_content'
out_file="${in_file}.tsr"
ts_server='http://time.certum.pl/'
openssl ts -query -data "$in_file" -sha1 -cert | curl -o "$out_file" -sSH 'Content-Type: application/timestamp-query' --data-binary @- "$ts_server"
openssl ts -verify -data "$in_file" -in "$out_file" -CAfile "/usr/lib/ssl/certs/Certum_Trusted_Network_CA.pem"
openssl ts -reply -in "$out_file" -text
Я пытался имитировать это с rfc3161 package, но проверка не будет, как и ожидалось. Это код питона
import rfc3161
cert = file('/usr/lib/ssl/certs/Certum_Trusted_Network_CA.pem').read()
rt = rfc3161.RemoteTimestamper('http://time.certum.pl/', certificate=cert)
data_to_sign = file('test_content').read()
print rt.timestamp(data=data_to_sign)
>>> (False, 'Bad signature')
Я не знаю, что это неправильно, поскольку оба скрипта должны делать то же самое. Может ли кто-нибудь дать мне понять, что не так с версией python?
Вы правы. Мне нужно сначала проверить сертификат, а затем проверить ответ TSA. Я добавлю его в исходное сообщение. благодаря – melanholly