#sodium #crypto

未维护 rust_sodium

为 Rust 提供的快速加密库(libsodium 的绑定)

14 个版本 (9 个重大更改)

0.10.2 2019年1月28日
0.10.1 2018年10月24日
0.10.0 2018年8月24日
0.9.0 2018年5月7日
0.1.2 2016年9月27日

#14 in #cryptographic

Download history 1487/week @ 2024-04-02 224/week @ 2024-04-09 62/week @ 2024-04-16 132/week @ 2024-04-23 66/week @ 2024-04-30 45/week @ 2024-05-07 68/week @ 2024-05-14 123/week @ 2024-05-21 107/week @ 2024-05-28 83/week @ 2024-06-04 104/week @ 2024-06-11 122/week @ 2024-06-18 81/week @ 2024-06-25 501/week @ 2024-07-02 78/week @ 2024-07-09 240/week @ 2024-07-16

935 每月下载量
15 包中使用 15 次(直接使用11次)

MIT/Apache

2MB
9K SLoC

rust_sodium

Rust 到 libsodium 的绑定。

该项目主要基于 sodiumoxide。一些主要区别包括

  • 默认构建或下载 libsodium,偏好静态构建、固定版本的本地库
  • 提供使用伪随机数生成器初始化 libsodium 的能力,允许生成可重现的数据,这在测试环境中可能很有用
  • 实现一个测试,以确保 FFI 绑定与本地库的接口匹配
  • 在 Windows(AppVeyor)、OS X 和 Linux(Travis)上运行 CI 测试
文档 Linux/OS X Windows 问题
Documentation Build Status Build status Stories in Ready
MaidSafe 网站 SAFE 开发论坛 SAFE 网络论坛

关于在 Linux 上构建的说明

某些情况可能需要构建配置为 --disable-pie 的 libsodium。要启用此功能,请在构建时设置环境变量 RUST_SODIUM_DISABLE_PIE,例如:

RUST_SODIUM_DISABLE_PIE=1 cargo build

使用自己的 libsodium 复制

如果您已经拥有 libsodium 的副本,可以选择将其链接到项目中而不是让 rust_sodium 为您下载和构建 libsodium。您应确保其版本与 [我们的 build.rs](https://github.com/maidsafe/rust_sodium/blob/master/rust_sodium-sys/build.rs) 文件中指定的版本相同。

将环境变量 RUST_SODIUM_LIB_DIR 设置为包含 libsodium 的文件夹。如果没有同时设置 RUST_SODIUM_SHARED,将优先选择静态版本的 libsodium。

或者,如果适用,您可以使用 pkgconfig 来定位 libsodium,将 RUST_SODIUM_USE_PKG_CONFIG 设置为任何值。在这种情况下,RUST_SODIUM_SHARED 没有影响,通常将使用共享版本的 libsodium。

交叉编译

为 ARM 交叉编译

  1. 安装依赖项和工具链

    sudo apt update
    sudo apt install build-essential gcc-arm-linux-gnueabihf libc6-armhf-cross libc6-dev-armhf-cross -y
    rustup target add armv7-unknown-linux-gnueabihf
    
  2. 将以下内容添加到 .cargo/config 文件

    [target.armv7-unknown-linux-gnueabihf]
    linker = "arm-linux-gnueabihf-gcc"
    
  3. 通过运行以下命令进行构建:

    cargo build --release --target armv7-unknown-linux-gnueabihf
    

为 32 位 Linux 交叉编译

  1. 安装依赖项和工具链

    sudo apt update
    sudo apt install build-essential gcc-multilib -y
    rustup target add i686-unknown-linux-gnu
    
  2. 通过运行以下命令进行构建:

    cargo build --release --target i686-unknown-linux-gnu
    

许可证

在以下许可证之一下发布:

由您选择。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交并包含在作品中的任何贡献,应如上所述双重许可,不附加任何额外条款或条件。

依赖项