1个不稳定版本
0.10.1 | 2023年9月25日 |
---|
#478 in 身份验证
在smb3_client中使用
1MB
16K SLoC
sspi-rs
sspi-rs是安全支持提供者接口(SSPI)的Rust实现。它提供了平台无关的安全支持提供者(SSP)实现,并在Windows下运行时能够使用原生Microsoft库。
sspi-rs的目的是清理原始接口的杂乱,并为用户在*nix或其他能够编译Rust的平台下执行提供Rust友好的SSP。
概述
sspi-rs遵循MSDN文档。目前,已实现并可用NT LAN Manager (NTLM),并可在平台无关的情况下执行。还可以通过实现SspiImpl
特质来创建自己的SSP。更多详情请参阅文档。
易用性
一些SSPI函数可能较为繁琐,因此sspi-rs允许通过利用构建器以方便的方式使用SSPI。示例可在示例、示例部分和文档中找到。
使用
sspi-rs在Cargo.toml中如下所示
[dependencies]
sspi = "0.1.0"
之后您可以使用
所需的类型。
文档
文档将为您提供对crate的全面概述。对于简单用例的示例,请访问示例文件夹。
示例
使用SSP的方法就像创建安全提供者的实例并调用其函数一样简单。
以下是一个获取凭据句柄及其有效时间戳的示例
use sspi::{Ntlm, Sspi, CredentialUse};
fn main() {
let mut ntlm = Ntlm::new();
let (cred_handle, timestamp) = ntlm
.acquire_credentials_handle()
.with_credential_use(CredentialUse::Inbound)
.execute()
.unwrap();
}
获取由Windows提供的SSP的示例
let mut negotiate = SecurityPackage::from_package_type(
SecurityPackageType::Other(String::from("Negotiate"))
);
使用sspi-rs的项目
许可
sspi-rs遵循MIT许可证。
依赖项
~14–64MB
~1M SLoC