Come firmare digitalmente un messaggio con M2Crypto utilizzando le chiavi all'interno di un certificato in formato DER

StackOverflow https://stackoverflow.com/questions/2401397

Domanda

Sto lavorando a un progetto per implementare le firme digitali dei messaggi in uscita e ho deciso di utilizzare M2Crypto per questo.

Ho un certificato (in formato DER) da cui estraggo le chiavi per firmare il messaggio.Per qualche motivo continuo a ricevere un brutto errore di segmentazione quando chiamo il metodo "sign_update".

Considerati gli esempi precedenti che ho letto qui, chiaramente mi manca qualcosa.

Ecco l'esempio su cui sto lavorando:

from M2Crypto.X509 import *

cert = load_cert( 'certificate.cer', format=1 )
Pub_key = cert.get_pubkey()
Pub_key.reset_context(md='sha1')
Pub_key.sign_init()
Pub_key.sign_update( "This should be good." )

print Pub_key.sign_final()

Grazie in anticipo per l'aiuto,

Pablo

È stato utile?

Soluzione

Una cosa ovvia mi salta all'occhio:dici che il tuo certificato è in formato DER, ma stai passando format=0 A load_cert() che significa PEM.Vedere Variabili del modulo X509.Forse non è la causa del tuo problema (mi aspetterei che otterresti un'eccezione se mescoli il tipo di certificato).

Aggiornamento Dopo averci pensato ancora un po', penso che tu stia cercando di fare la cosa sbagliata, ed è per questo che si sta bloccando (anche se ovviamente non dovrebbe bloccarsi ma sollevare un'eccezione).Non è possibile firmare un messaggio utilizzando la chiave pubblica di un certificato.Sarebbe come fare una falsificazione digitale.

Pensare in questo modo.Riceverai il mio certificato, che contiene la mia chiave pubblica.Puoi usare la chiave pubblica per crittografare un messaggio per me.Solo io potrò decrittografare utilizzando la mia chiave privata.Puoi firmare il messaggio utilizzando la tua chiave privata, e posso usare la tua chiave pubblica per verificare la tua firma

Altri suggerimenti

Non c'è file della chiave privata, ecco perché si blocca e non posso firmare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top