6 个版本 (重大更改)

0.5.0 2023 年 10 月 9 日
0.4.0 2023 年 2 月 6 日
0.3.0 2022 年 2 月 4 日
0.2.0 2021 年 6 月 17 日
0.1.1 2021 年 3 月 25 日

#913 in 密码学

Download history 1421/week @ 2024-04-15 1204/week @ 2024-04-22 1685/week @ 2024-04-29 1992/week @ 2024-05-06 1774/week @ 2024-05-13 1522/week @ 2024-05-20 1617/week @ 2024-05-27 1980/week @ 2024-06-03 3583/week @ 2024-06-10 2670/week @ 2024-06-17 3330/week @ 2024-06-24 2538/week @ 2024-07-01 2896/week @ 2024-07-08 3111/week @ 2024-07-15 2266/week @ 2024-07-22 2986/week @ 2024-07-29

11,320 下载量/每月
用于 15 个包 (直接使用 2 个)

Apache-2.0

2.5MB
83K SLoC

TPM2 软件堆栈 Rust 包装器

Crates.io Code documentation

这是较低级别的包装器,它向 Rust 提供了一个最小、低级别的 C 接口,以 TSS

依赖关系

此包公开了 TSS 增强系统 API 的接口,因此链接到公开此接口的库。为了允许正确使用 ESAPI,此 FFI 层包含对 TCTI 和 MU 头文件的绑定,因此必须在构建时链接到所有这些库。

使用 pkg-config 发现库的路径 - 确保它们以这种方式在您的系统上可被发现。我们的构建脚本查找 tss2-esystss2-tctildrtss2-mu。所有这些都需要至少 2.3.3 版本。

如果已将开源实现库安装到 /usr/local/lib(默认位置),则可能会发生 pkg-config 无法找到它们的情况。如果发生这种情况,请运行以下命令

$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

此包提供的 FFI 绑定可以是存储在包下 src/bindings 中的那些,或者是在构建时从系统上找到的库头文件动态生成的。为了在构建时生成绑定,请启用 generate-bindings 功能,因为它默认未启用。然后构建脚本将使用 pkg-config 识别头文件并从中生成新的绑定。

注意:只有有限数量的绑定被提交,并且它们的目标三元组包含在文件名中——如果所需的版本不可用,请随时发起Pull Request添加它或使用构建时生成绑定。所有提交的绑定必须从位于vendor子模块下的库版本生成。

交叉编译

只要在您的构建系统中编译了目标系统的TSS库,就可以进行交叉编译。我们依赖于pkg-config来识别我们链接的库。安装tpm2-tss会产生可以用于此目的的.pc文件,但根据确切的构建环境配置,tpm2-tss的配置和编译可能需要一些特殊调整。

我们将交叉编译构建包含在Github Actions的夜间检查中——您可以在此找到示例步骤。有关交叉编译时使用pkg-config的更多信息,请参阅此处。我们围绕pkg-config的包装脚本可以在此处找到。

请注意,在某些情况下,可能需要在.cargo/config中手动设置链接器。

版权所有 2021 Parsec项目的贡献者。

依赖关系