5个版本 (破坏性更新)

0.7.0 2020年4月18日
0.6.1 2018年6月14日
0.5.4 2017年9月8日
0.5.3 2017年7月22日
0.2.0 2015年7月14日

#2102 in 密码学

Download history 38/week @ 2024-03-30 7/week @ 2024-04-06 3/week @ 2024-05-18

每月75次下载
用于 3 个crate(2个直接使用)

LGPL-2.1

55KB
1K SLoC

libgcrypt-rs

Build Status crates.io version LGPL-2.1 licensed downloads

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_STATICLIBGCRYPT_CONFIG 之外,都可以接受由平台路径分隔符分隔的多个值。

注意:这些crate还依赖于gpg-error crate,它有自己的要求

注意:这些crate的早期版本捆绑了libgcrypt库的源代码,并尝试通过构建脚本构建它们。现在不再支持这种方式。

用法

在首次使用前,该库需要初始化。可以使用函数 initinit_fipsinit_default 来初始化库。前两个函数传入的闭包用于配置库。对于第三个函数,使用默认配置。有关配置选项的更多信息,请参阅 libgcrypt 的文档

示例

let token = gcrypt::init(|x| {
    x.disable_secmem();
});

如果在调用需要初始化的包装器函数之前没有调用任何初始化函数,将导致包装器尝试通过调用 init_default 来初始化库。

依赖项

~42–280KB