2016-12-06 2 views
0

Я использую OpenSSL для выполнения проверки.Как использовать openssl для проверки без создания файлов в python?

openssl dgst -sha256 -verify public.pem -signature sign_file origin_file 

Что мне нужно сделать, это то, что, если я знаю, что содержание sign_file и origin_file, как я могу сделать то проверить работу в питона без создания файлов?

ответ

1

я найти решение на вопрос: How do you verify an RSA SHA1 signature in Python?

Ниже демонстрационная сделать проверить работу:

import base64 

from M2Crypto import BIO, RSA, EVP 

ori = "content of origin string" 
sig = "content of signature string" 

with open("./public.pem") as f: 
    pem = f.read() 
    bio = BIO.MemoryBuffer(pem) 
    rsa = RSA.load_pub_key_bio(bio) 

    pubkey = EVP.PKey() 
    pubkey.assign_rsa(rsa) 
    pubkey.reset_context(md="sha256") 
    pubkey.verify_init() 
    pubkey.verify_update(ori) 
    print pubkey.verify_final(base64.b64decode(sig)) # 1 means verify OK 
1

Вы попробовали pyopenssl?

OpenSSL.crypto.verify(certificate, signature, data, digest) 
+0

Первый сертификат параметр является экземпляром X509, соответствующий закрытому ключу, который генерировал подпись, как я могу сгенерировать экземпляр X509, если у меня есть только открытый ключ? –

Смежные вопросы