Проверка подписи GPG с использованием определенного открытого ключа с помощью GPGME в C / Stack Overflow

У меня есть программа на C ++, которая должна проверять подпись файла, подписанного с помощью GPG, с использованием определенного закрытого ключа. Используя GPGME, я успешно написал программу, которая проверяет, что данный файл был правильно подписан с помощью закрытого ключа, соответствующего одному из открытых ключей в связке ключей GPG.

Теперь я хотел бы, чтобы моя программа проверяла файл, используя открытый ключ, который жестко запрограммирован в моей программе, вместо того, чтобы просто проверять подпись, используя один из открытых ключей, доступных в связке ключей GPG.

Я хочу, чтобы моя программа (которая будет установлена ​​на чужом компьютере) могла проверить, что файл действительно исходит от меня. Если он выполняет операцию проверки с использованием списка открытых ключей в кольце ключей GPG компьютера пользователя, кажется, что пользователь может просто оставить свой файл с помощью своего личного ключа, и моя программа проверит подпись файла, даже если я этого не сделал. не подписывайте это.

Есть ли способ достичь этого с помощью GPGME? Любая помощь с благодарностью.

2

Решение

Хотя это не совсем решение моей проблемы, я решил эту проблему, проверив отпечаток открытого ключа, который использовался для проверки подписанного файла. Я могу жестко закодировать отпечаток моего открытого ключа в моей программе и использовать GPGME для импорта моего открытого ключа в GPG, если его там еще нет.

В GPGME отпечаток пальца можно получить от gpgme_signature_t получил gpgme_op_verify_result(...) позвонить (см. документация).

GPG может отобразить отпечаток вашего открытого ключа с помощью следующей команды: gpg --fingerprint

1

Другие решения


По вопросам рекламы [email protected]