use std::collections::HashMap;
use crate::dkim_sign::DkimSignConfig;
pub fn usable_selectors(cfg: &DkimSignConfig) -> HashMap<String, String> {
let mut out = HashMap::new();
match cfg.rsa_key() {
Ok(_) => {
out.insert(cfg.domain.to_ascii_lowercase(), cfg.selector.clone());
}
Err(e) => tracing::error!(domain = %cfg.domain, error = %e, "DKIM: default key unusable"),
}
for (domain, key) in &cfg.extra_keys {
match key.rsa_key() {
Ok(_) => {
out.insert(domain.clone(), key.selector.clone());
}
Err(e) => {
tracing::error!(%domain, error = %e, "DKIM: MAILRS_DKIM_KEYS key unusable");
out.remove(domain);
}
}
}
out
}