in tuftool/src/root.rs [240:262]
fn remove_key(path: &Path, key_id: &Decoded<Hex>, role: Option<RoleType>) -> Result<()> {
let mut root: Signed<Root> = load_file(path)?;
if let Some(role) = role {
if let Some(role_keys) = root.signed.roles.get_mut(&role) {
role_keys
.keyids
.iter()
.position(|k| k.eq(key_id))
.map(|pos| role_keys.keyids.remove(pos));
}
} else {
for role_keys in root.signed.roles.values_mut() {
role_keys
.keyids
.iter()
.position(|k| k.eq(key_id))
.map(|pos| role_keys.keyids.remove(pos));
}
root.signed.keys.remove(key_id);
}
clear_sigs(&mut root);
write_file(path, &root)
}