12个版本

0.1.11 2023年6月22日
0.1.10 2023年4月7日
0.1.9 2023年3月30日
0.1.4 2023年2月28日

#1257 in 加密学

Download history 2/week @ 2024-03-20 6/week @ 2024-03-27 15/week @ 2024-04-03 152/week @ 2024-04-10 13/week @ 2024-04-17 10/week @ 2024-04-24 2/week @ 2024-05-22 9/week @ 2024-05-29 1/week @ 2024-06-05

142每月下载
用于 3 crates

AGPL-3.0-or-later

110KB
1.5K SLoC

trifid-pki

trifid-pki是一个用于与Nebula PKI系统交互的crate。它被创建出来以避免在Nebula中进行签名操作时需要不断调用CLI。它旨在与原始的Go实现兼容,因此在密钥管理方面有一些特殊之处,以确保兼容性。

此crate尚未接受任何正式的安全审计,然而用于实际加密操作的基础crate(ed25519-dalek和curve25519-dalek)已经过审计,未发现任何重大问题。

示例

有关示例,请参阅文档


lib.rs:

trifid-pki

trifid-pki是一个用于与Nebula PKI系统交互的crate。它被创建出来以避免在Nebula中进行签名操作时需要不断调用CLI。它旨在与原始的Go实现兼容,因此在密钥管理方面有一些特殊之处,以确保兼容性。

此crate尚未接受任何正式的安全审计,然而用于实际加密操作的基础crate(ed25519-dalek和curve25519-dalek)已经过审计,未发现任何重大问题。

示例

从PEM加载证书

use trifid_pki::cert::deserialize_nebula_certificate_from_pem;
let cert_bytes = b"-----BEGIN NEBULA CERTIFICATE-----
CmUKCGNvcmUtdHdyEgmBhMRQgID4/w8orp+/nAYwlIXEqwY6IDBOYnnYci8P2Nlm
+qcK2u7AjEZJ1IZFe7A4viQ3U6dHSiBWhg3tPRS387d8oqBi7l1oPdBrNfh0RtjW
p+kjtqd4PRJA611raI7aDTbpJSGcCY/yeZ5CIHoJP32bfYdYI8oFsuDTp0ndL8nO
yBHtmihl1xxNU8/f0b9+bVBYvZ7NOI3fDQ==
-----END NEBULA CERTIFICATE-----";
let cert = deserialize_nebula_certificate_from_pem(cert_bytes).unwrap();
println!("{}", cert);
// NebulaCertificate {
//  Details {
//      Name: core-twr
//      Ips: [10.17.2.1/15]
//      Subnets: []
//      Gruops: []
//      Not before: SystemTime { tv_sec: 1670369198, tv_nsec: 0 }
//      Not after: SystemTime { tv_sec: 1701905044, tv_nsec: 0 }
//      Is CA: false
//      Issuer: 56860ded3d14b7f3b77ca2a062ee5d683dd06b35f87446d8d6a7e923b6a7783d
//      Public key: 304e6279d8722f0fd8d966faa70adaeec08c4649d486457bb038be243753a747
//  }
//  Fingerprint: c1a723acf8a1c8a438eb1f8efb756eb9e1a3c529d5b93cd143d282ca87e549b4
//  Signature: eb5d6b688eda0d36e925219c098ff2799e42207a093f7d9b7d875823ca05b2e0d3a749dd2fc9cec811ed9a2865d71c4d53cfdfd1bf7e6d5058bd9ecd388ddf0d
// }

依赖项

~3.5–5MB
~103K SLoC