#kerberos #algorithm #key #client #user #host

himmelblau_kerberos_crypto

Kerberos 加密算法

2 个版本

0.4.1 2024年7月3日
0.4.0 2024年6月21日

#809加密

Download history 125/week @ 2024-06-17 15/week @ 2024-06-24 137/week @ 2024-07-01 10/week @ 2024-07-08

147 每月下载
用于 2 crates

AGPL-3.0

140KB
3.5K SLoC

Kerbeiros

Kerberos 客户端

概念

  • KDC (密钥分发中心):分发票据的服务。提供此服务器的主机也称为 KDC。
  • TGS (票据授予服务器):用于对指定服务进行用户身份验证的票据。
  • TGT (票据授予票据):用于从 KDC 获取 TGS 的票据。

示例

请求 TGT

use kerbeiros::*;
use ascii::AsciiString;
use std::net::*;

// Prepare the arguments
let realm = AsciiString::from_ascii("CONTOSO.COM").unwrap();
let kdc_address = IpAddr::V4(Ipv4Addr::new(192, 168, 0, 1));
let username = AsciiString::from_ascii("Bob").unwrap();
let user_key = Key::Password("S3cr3t".to_string());

// Request the TGT
let tgt_requester = TgtRequester::new(realm, kdc_address);
let credential = tgt_requester.request(&username, Some(&user_key)).unwrap();

// Save the ticket into a Windows format file
credential.save_into_krb_cred_file("bob_tgt.krb").unwrap();

// Save the ticket into a Linux format file
credential.save_into_ccache_file("bob_tgt.ccache").unwrap();

开发

代码风格

遵循 rustfmt 代码风格。

格式化代码

cargo fmt

测试

运行测试

cargo test

参考


lib.rs:

Kerberos 加密

实现 Kerberos 协议中涉及的加密算法的库。

该库提供了不同的加密。加密是实现了不同算法的类。所有这些都实现了 KerberosCipher 特性。

支持算法

  • RC4-HMAC
  • AES128-CTS-HMAC-SHA1-96
  • AES256-CTS-HMAC-SHA1-96

依赖

~2.5–3.5MB
~65K SLoC