gpg/gpgme
GitHub: gpg/gpgme
GPGME 是一个 C 语言高级加密 API 库,旨在简化应用程序对 GnuPG/OpenPGP 和 CMS 加密引擎的调用与集成。
Stars: 134 | Forks: 40
```
GPGME - GnuPG Made Easy
---------------------------
```
版权所有 2001-2026 g10 Code GmbH
本文件是自由软件;作为一项特殊例外,作者授予
无限的复制和/或分发权限,无论是否经过修改,
只要保留本声明即可。
分发本文件是希望它能有用,
但在法律允许的范围内,不提供任何保证;
甚至不提供适销性或特定用途适用性的隐含保证。
## 简介
GnuPG Made Easy (GPGME) 是一个 C 语言库,允许程序添加对密码学的支持。它旨在让应用程序更轻松地访问 GnuPG 或 GpgSM 等公钥加密引擎。GPGME 提供了用于加密、解密、签名、签名验证和密钥管理的高级加密 API。
GPGME 附带了 Common Lisp 的语言绑定。C++、Qt 和 Python 的语言绑定可在单独的代码库中找到。
GPGME 使用 GnuPG 作为其后端,以支持 OpenPGP 和加密消息语法 (CMS)。
有关版权和保证信息,请参阅 COPYING、COPYING.LESSER 文件以及每个文件。AUTHORS 文件中包含了作者列表以及有用的网站和邮件地址。
## 安装
有关通用的安装说明,请参阅 INSTALL 文件。
检查您是否拥有未修改的源代码。有关如何执行此操作的说明,请参阅下文。
不要跳过这一步——这是一个重要的步骤!
要构建 GPGME,您需要安装 libgpg-error (>= 1.36) 和 Libassuan (>= 2.4.2)。
为了支持 OpenPGP 和 CMS 协议,您应该至少使用 2.2.41 或 2.4.3 版本的 GnuPG,可从以下地址获取:
https://gnupg.org/ftp/gcrypt/gnupg/。
有关构建 Git 版本 GPGME 的更多信息,请参阅 README.GIT 文件。
## 如何验证源代码
为了检查您准备安装的 GPGME 版本是原始且未经修改的版本,您可以通过以下方式之一进行验证:
a) 如果您安装了受信任版本的 GnuPG,只需检查提供的签名即可:
```
$ gpg --verify gpgme-x.y.z.tar.gz.sig gpgme-x.y.z.tar.gz
```
这将检查分离签名 gpgme-x.y.z.tar.gz.sig 是否确实是 gpgme-x.y.z.tar.gz 的签名。
用于创建签名的密钥可在 以及已发布的 GnuPG 压缩包中的 g10/distsigkey.gpg 文件中找到。您必须确保这些确实是所需的密钥,而不是伪造的。您可以通过将指纹与所有 GnuPG 相关发布公告中发布的指纹进行比较来做到这一点。
b) 如果您没有上述任何程序,则必须验证 SHA1 校验和:
```
$ sha1sum gpgme-x.y.z.tar.gz
```
这应该会产生_类似_如下的输出:
fd9351b26b3189c1d577f0970f9dcadc3412def1 gpgme-x.y.z.tar.gz
现在检查此校验和是否_完全_等同于通过公告邮件列表(可能还包括 Usenet)发布的校验和。
## 文档
有关如何使用该库的信息,您可以阅读 doc/ 目录中的 info 手册(它同时也是一本参考书)。tests/ 目录中的程序也可能对您有所帮助。
如果您想进行正式的开发工作,请订阅 gnupg-devel@gnupg.org 邮件列表。
如果要参与 GPGME 的开发,请参阅 doc/HACKING。
标签:CVE, C语言库, GPG, SOC Prime, 子域名枚举工具, 客户端加密, 密码学, 开发工具, 手动系统调用, 数字签名, 数据加密