kanidm_lib_crypto/
x509_cert.rs

1use crate::Sha256Digest;
2
3pub use ::x509_cert::der;
4pub use ::x509_cert::der::pem;
5pub use ::x509_cert::Certificate;
6
7use ::sha2::{Digest, Sha256};
8
9pub fn x509_public_key_s256(certificate: &Certificate) -> Option<Sha256Digest> {
10    let public_key_bytes = certificate
11        .tbs_certificate
12        .subject_public_key_info
13        .subject_public_key
14        .as_bytes()?;
15
16    let mut hasher = Sha256::new();
17    hasher.update(public_key_bytes);
18    Some(hasher.finalize())
19}