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