Mam plik binarny:Weryfikacja podpisu używając go.crypto/OpenPGP
foo.bin
Ten plik został podpisany przy użyciu klucza gpg utworzyć:
foo.bin.sig
Mam plik zawierający klucz publiczny, który został użyty do podpisania pliku binarnego.
Chciałbym móc zweryfikować ten podpis za pomocą polecenia Go.
Czytałem dokumentację go.crypto/openpgp i nie są one szczególnie pomocne w tym przypadku użycia.
Weryfikacja zostanie przeprowadzona na zdalnym komputerze. Idealnie chciałbym uniknąć użycia keyring na komputerze, który uruchomi ten kod. Klucz publiczny może być banalnie przechowywany w samym pliku wykonywalnym ... jeśli mogę się dowiedzieć, jak wykonać tę weryfikację.
Kroki, które myślę, że trzeba zrobić to w następujący sposób:
- Tworzenie podmiotu, który reprezentuje tylko kluczową
- otwarty zarówno plik binarny publicznego oraz podpis i przekazać go do jakiejś funkcji weryfikacyjnej
Pytanie przede wszystkim brzmi: w jaki sposób mogę napisać tę funkcję weryfikacji za pomocą tylko klucza publicznego?
Nie mam jasności co do Twojego wymagania. Czy weryfikację klucza gpg można zastąpić innymi metodami, takimi jak SHA256/MD5/RSA ...? –
Zgodnie z wikipedia, podpis openpgp jest sygnaturą skrótu pliku. Podpis jest wykonywany przy użyciu rsa lub dsa, a hash można wykonać za pomocą wielu algorytmów. Myślę, że musisz zrozumieć plik '.sig', aby zweryfikować podpis. Wtedy pakiet [crypto] (http://golang.org/pkg/crypto/) powinien mieć wszystkie potrzebne metody. Jeśli znajdziesz dokumentację dotyczącą definicji pliku .sig (nie znalazłem tego), umieść go tutaj. Też chciałbym to zobaczyć. – user983716