#kerberos #krb5 #api-bindings

已废弃 libkrb5

[未维护] MIT Kerberos 5 的 Rust 绑定

2 个版本

0.0.3 2022年2月14日
0.0.1 2019年9月10日

#7 in #krb5

MIT/Apache

29KB
498

[未维护] Rust 的 libkrb5 绑定

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

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

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


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

线程安全

根据 libkrb5 文档,截至版本 1.4,MIT Kerberos 5 是 线程安全的,除了初始化和销毁上下文函数,这些函数预计不会在不同的线程上并发运行。因此,对 krb5_init_contextkrb5_init_secure_context 函数以及 krb5_free_contex 的调用通过全局 Mutex 进行同步。

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

据我所知,此库遵循关于 libkrb5 线程安全使用的文档(通过全局 Mutex 保护上下文初始化和拆除),libkrb5 中的所有其他函数应该是线程安全的。

欢迎贡献

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

依赖关系

~0–1.8MB
~34K SLoC