#kerberos #krb5 #bindings #unmaintained #libkrb5

废弃 sys libkrb5-sys

[未维护] MIT Kerberos 5 (libkrb5) 的 FFI 绑定

3 个版本

0.0.3 2022年2月14日
0.0.2 2020年4月7日
0.0.1 2019年9月10日

#6#未维护


用于 libkrb5

MIT/Apache

8KB

[未维护] Rust 的 libkrb5 绑定

该包不再积极维护。API 覆盖范围非常有限,而且我没有进一步开发它的用例。虽然通过遵循该包中已经建立的模式添加更多 FFI 调用的包装应该相对简单,但我没有这样的计划。

如果您需要 Rust 中的 libkrb5 绑定,我建议您查看其他提供此功能的包,或调查是否直接使用类似 GSSAPI 绑定会更适合您的需求。

尽管如此,如果有人真的想接管 libkrb5 和 libkrb5-sys 包的维护,请随时联系。


此存储库包含对 libkrb5 的安全、惯用 Rust 绑定,这是 MIT Kerberos 5 的客户端库,以及由 bindgenlibkrb5-sys 中生成的底层 "不安全" 绑定。

线程安全

根据 libkrb5 文档,自 1.4 版本以来,MIT Kerberos 5 是 线程安全的,除了初始化和销毁上下文函数外,这些函数不应在多个线程上并发执行。因此,对 krb5_init_contextkrb5_init_secure_context 函数以及 krb5_free_contex 的调用是通过全局互斥锁同步的。

注意:使用 LLVM 的 sanitizers 运行此包的测试套件在某些情况下会显示错误。AddressSanitizer 和 LeakSanitizer 没有问题,但 MemorySanitizer 在构建 log 时导致构建失败(所以这与本包无关),ThreadSanitizer 失败 - 似乎是由于 lazy_static 代码中的误报(根据一个 已关闭的问题)。

据我所知,该库遵循有关 libkrb5 线程安全使用的文档(由全局互斥锁保护的上下文初始化和销毁),libkrb5 中的所有其他函数应该是线程安全的。

欢迎贡献

如果您发现一个错误或想扩展 API 覆盖范围,应该很容易查看现有的包装函数并将该代码适配到其他 libkrb5 API。

依赖项

~0–1.8MB
~34K SLoC