use sha2::{Digest, Sha256};
pub fn kid_from_key(key: Vec<u8>) -> String {
let mut hasher = Sha256::new();
hasher.update(key);
hex::encode(hasher.finalize())
.to_uppercase()
.as_bytes()
.chunks(4)
.map(std::str::from_utf8)
.collect::<Result<Vec<&str>, _>>()
.unwrap()
.join(":")
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn nil_kid() {
assert_eq!(
&kid_from_key([0u8; 32].to_vec()),
"6668:7AAD:F862:BD77:6C8F:C18B:8E9F:8E20:0897:1485:6EE2:33B3:902A:591D:0D5F:2925"
);
}
}