Я пишу коммуникационную программу на C, и я ищу лучший способ использовать шифрование GnuPG. Я уже использую симметричные алгоритмы шифрования через библиотеку mcrypt, но хочу включить некоторые возможности с открытым ключом, предпочтительно используя GnuPG, если это возможно. Есть ли доступная библиотека для этого? Было бы лучше попытаться напрямую взаимодействовать с GPG непосредственно через программу, чтобы выполнить это? Любое понимание было бы оценено, поскольку я хотел бы, чтобы эта реализация была максимально чистой. Благодарю.Использование GPG с C?
ответ
К сожалению, GnuPG предназначен для использования в интерактивном режиме, а не как API.
Вы упомянули, что вы хотите использовать некоторые возможности открытого ключа. SSL и TLS являются альтернативой GPG, которые видят гораздо более частое использование.
Если возможности открытого ключа в целом - это то, что вы ищете, GnuTLS - это API для использования в сетевых программах, которые обеспечивают именно то, что вы хотите. Он пользуется большой поддержкой и предоставляет возможности шифрования с открытым ключом SSL и TLS.
Однако, если вы настроены на использование GPG, GPGME - это проект, который существует для обертки API вокруг GPG. Я не использовал его и не могу советовать о его использовании, но подозреваю, что он может быть несколько вынужденным.
GPGme действительно official API for GPG и проста в использовании и хорошо документированы (примеры в тестах/GPG очень полезны)
Вот пример для шифрования для John Smith:
gpgme_data_t clear_text, encrypted_text;
gpgme_key_t recipients[2] = {NULL, NULL};
/* The array must be NULL-terminated */
...
error = gpgme_op_keylist_start(context, "John Smith", 1);
error = gpgme_op_keylist_next(context, &recipients[0]);
...
error = gpgme_op_encrypt(context, recipients,
GPGME_ENCRYPT_ALWAYS_TRUST,
clear_text, encrypted_text);
- 1. GPG использование ошибок: GPG [опции] [имя файла] во время GPG --decrypt
- 2. GPG с помощью PowerShell
- 3. Расшифровка с помощью gpg
- 4. Аутентификация с использованием GPG
- 5. bash: использование ожидается для автоматизации подписи GPG
- 6. Python pexpect с gpg
- 7. Bot с gpg encrypting
- 8. Расшифровка GPG с регулярным выражением
- 9. Perl скрипт использования gpg против CLI gpg?
- 10. Приложение C#, которое запускает команды GPG
- 11. GPG - расшифровка с несколькими получателями
- 12. Шифрование кода с помощью GPG
- 13. gpg шифрование файлов с помощью
- 14. Просмотр содержимого файла .gpg
- 15. Пакетный сценарий GPG-дешифрование
- 16. gpg с powershell - безопасность парольной фразы
- 17. GPG в скрипте cron
- 18. Расшифровка файла gpg с помощью gnupg
- 19. Командная строка GPG-дешифрование с использованием C# - passphrase?
- 20. GPG SECURITY: как проверить открытый ключ электронной почты и GPG?
- 21. GPG Зашифровать файл с несколькими открытыми ключами в сценарии powershell
- 22. Как проверить подпись GPG с OpenSSL
- 23. Как использовать gpg, gpg-agent, особенно для .authinfo.gpg?
- 24. Сертификат отзыва GPG
- 25. Ошибка Msysgit GPG
- 26. Необязательный скрипт командной строки GPG зависает в команде GPG
- 27. gpg --export-secret-keys
- 28. MD5 vs подпись GPG
- 29. git gpg sign all
- 30. gpg - каталог изменений не работает