У меня есть двоичный файл:Проверка подписи с использованием go.crypto/OpenPGP
foo.bin
Этот файл был подписан с помощью ключа GPG для создания:
foo.bin.sig
У меня есть файл, содержащий открытый ключ, который использовался для подписи двоичного файла.
Что я хотел бы сделать, так это проверить эту подпись, используя Go.
Я читал документы go.crypto/openpgp, и они не особенно полезны для этого варианта использования.
Проверка будет выполнена на удаленной машине. В идеале я бы хотел избежать использования брелка на машине, которая будет запускать этот код. Открытый ключ может тривиально храниться в самом исполняемом файле ... если я смогу решить, как выполнить эту проверку.
шаги, которые я думаю, что мне нужно сделать это следующим образом:
- создать объект, который представляет только открытый ключ
- Открыть как двоичный файл и подпись и передать его в какой-то функции проверки
Вопрос в первую очередь заключается в следующем: как написать эту функцию проверки, используя только открытый ключ?
Я не совсем понимаю ваши требования. Можно ли заменить проверку gpg другими методами, такими как SHA256/MD5/RSA ...? –
Согласно википедии, подпись openpgp является сигнатурой хэша файла. Подпись выполняется с использованием rsa или dsa, и хеш может быть выполнен с использованием многих алгоритмов. Я думаю, вам нужно понять файл '.sig', чтобы проверить подпись. Затем пакет [crypto] (http://golang.org/pkg/crypto/) должен иметь все необходимые методы. Если вы нашли документацию об определении файла .sig (я не нашел его), разместите его здесь. Я тоже хотел бы это увидеть. – user983716