pub fn retain_supported_hashes(
hashes: &HashMap<HashAlgorithm, HashValue>,
) -> Vec<(&'static HashAlgorithm, HashValue)>Expand description
Given a map of hash algorithms and their values and retains the supported
hashes. Returns an Err if there is no match.
use std::collections::HashMap;
use tuf::crypto::{retain_supported_hashes, HashValue, HashAlgorithm};
let mut map = HashMap::new();
assert!(retain_supported_hashes(&map).is_empty());
let sha512_value = HashValue::new(vec![0x00, 0x01]);
let _ = map.insert(HashAlgorithm::Sha512, sha512_value.clone());
assert_eq!(
retain_supported_hashes(&map),
vec![
(&HashAlgorithm::Sha512, sha512_value.clone()),
],
);
let sha256_value = HashValue::new(vec![0x02, 0x03]);
let _ = map.insert(HashAlgorithm::Sha256, sha256_value.clone());
assert_eq!(
retain_supported_hashes(&map),
vec![
(&HashAlgorithm::Sha512, sha512_value.clone()),
(&HashAlgorithm::Sha256, sha256_value.clone()),
],
);
let md5_value = HashValue::new(vec![0x04, 0x05]);
let _ = map.insert(HashAlgorithm::Unknown("md5".into()), md5_value);
assert_eq!(
retain_supported_hashes(&map),
vec![
(&HashAlgorithm::Sha512, sha512_value),
(&HashAlgorithm::Sha256, sha256_value),
],
);