6个版本
0.2.2 | 2024年4月20日 |
---|---|
0.2.1 | 2023年8月10日 |
0.2.0 | 2023年7月30日 |
0.1.2 | 2022年7月9日 |
0.1.0 | 2022年5月30日 |
#1266 in 密码学
26KB
588 代码行
Rust的PKI工具
该项目包含用于生成和验证证书链等PKI相关任务的Rust库。它可以用于轻松创建用于测试的证书链。
请参阅tests/test_gen_chain.rs
和examples/tls-server.rs
以获取详细示例。
服务器示例(native-tls)
fn main() -> Result<(), Box<dyn std::error::Error>> {
let key_store = pki::util::create_easy_server_chain(HOSTNAME)?;
let pkcs8 = key_store.to_pkcs8()?;
let identity = Identity::from_pkcs8(&pkcs8, &pkcs8)?;
let acceptor = TlsAcceptor::builder(identity).build()?;
let server = TcpListener::bind(format!("{}:{}", HOSTNAME, PORT))?;
for stream in server.incoming() {
let mut stream = acceptor.accept(stream?)?;
}
}
客户端示例(native-tls)
fn client(key_store: &KeyStore) -> Result<(), Box<dyn std::error::Error>> {
let client = TcpStream::connect(format!("{}:{}", HOSTNAME, PORT))?;
let connector = TlsConnector::builder()
.add_root_certificate(Certificate::from_der(
&key_store.certs().last().unwrap().to_der()?,
)?)
.build()?;
let mut client = connector.connect(HOSTNAME, client)?;
}
许可证
MIT或Apache许可证下授权(LICENSE-MIT或LICENSE-APACHE)
依赖项
~1.8–3MB
~70K SLoC