Ho un file binario:Verifica di una firma utilizzando go.crypto/OpenPGP
foo.bin
Questo file è stato firmato con una chiave gpg per creare:
foo.bin.sig
Ho un file che contiene il chiave pubblica che è stata utilizzata per firmare il file binario.
Quello che mi piacerebbe fare è essere in grado di verificare questa firma usando Go.
Stavo leggendo i documenti go.crypto/openpgp e non sono particolarmente utili per questo caso d'uso.
La verifica verrà eseguita su una macchina remota. Idealmente mi piacerebbe evitare di usare il portachiavi sulla macchina che eseguirà questo codice. La chiave pubblica può essere banalmente archiviata nell'eseguibile stesso ... se riesco a capire come ottenere questa verifica.
I passi che penso ho bisogno di fare sono i seguenti:
- Creare un'entità che rappresenta solo la chiave sia il file binario
- Aprire pubblica e la firma e passarlo a qualche funzione di verifica
La domanda è principalmente: come posso scrivere questa funzione di verifica utilizzando solo una chiave pubblica?
Non sono sicuro del tuo fabbisogno. La verifica della chiave gpg può essere sostituita con altri metodi come SHA256/MD5/RSA ...? –
Secondo wikipedia, una firma openpgp è una firma dell'hash del file. La firma viene eseguita usando rsa o dsa e l'hash può essere fatto usando molti algoritmi. Penso che tu abbia bisogno di capire il file '.sig' per verificare la firma. Quindi il pacchetto [crypto] (http://golang.org/pkg/crypto/) dovrebbe avere tutti i metodi necessari. Se si trova la documentazione sulla definizione del file .sig (non l'ho trovata), inserirla qui. Mi piacerebbe vederlo anche io. – user983716