5个版本 (破坏性更新)
| 0.7.0 | 2020年4月18日 |
|---|---|
| 0.6.1 |
|
| 0.5.4 |
|
| 0.5.3 |
|
| 0.2.0 | 2015年7月14日 |
#2102 in 密码学
每月75次下载
用于 3 个crate(2个直接使用)
55KB
1K SLoC
libgcrypt-rs
Libgcrypt 对Rust的绑定。
构建
这些crate需要安装libgcrypt库及其开发文件(例如,头文件、libgcrypt-config)。构建脚本将尝试使用libgcrypt附带的可执行脚本 libgcrypt-config 检测必要的信息。如果由于某种原因无法这样做,也可以通过一个或多个环境变量指定所需信息
LIBGCRYPT_INCLUDE指定可以找到头文件的路径。LIBGCRYPT_LIB_DIR指定可以找到库文件(例如,*.so、*.a、*.dll等)的路径。LIBGCRYPT_LIBS指定所有必需库的名称。LIBGCRYPT_STATIC控制默认情况下是否将库静态链接或动态链接。可以通过在LIBGCRYPT_LIBS中以static=或dynamic=前缀开头来覆盖个别库的链接。LIBGCRYPT_CONFIG指定libgcrypt-config脚本的路径。
每个环境变量,除了 LIBGCRYPT_STATIC 和 LIBGCRYPT_CONFIG 之外,都可以接受由平台路径分隔符分隔的多个值。
注意:这些crate还依赖于gpg-error crate,它有自己的要求。
注意:这些crate的早期版本捆绑了libgcrypt库的源代码,并尝试通过构建脚本构建它们。现在不再支持这种方式。
用法
在首次使用前,该库需要初始化。可以使用函数 init、init_fips 和 init_default 来初始化库。前两个函数传入的闭包用于配置库。对于第三个函数,使用默认配置。有关配置选项的更多信息,请参阅 libgcrypt 的文档。
示例
let token = gcrypt::init(|x| {
x.disable_secmem();
});
如果在调用需要初始化的包装器函数之前没有调用任何初始化函数,将导致包装器尝试通过调用 init_default 来初始化库。
依赖项
~42–280KB