我正在用C编写通信程序,我正在寻找使用GnuPG加密的最佳方法.我已经通过mcrypt库使用对称加密算法,但希望结合一些公钥功能,如果可能的话,最好使用GnuPG.有没有一个好的图书馆可以完成这个?尝试直接通过程序与GPG本身进行交互以实现这一目标会更好吗?任何见解都将受到赞赏,因为我希望尽可能保持这种实施.谢谢.
GPGme 确实是GPG的官方 API,易于使用且文档齐全(tests/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);
Run Code Online (Sandbox Code Playgroud)