To not limit the flexibility of which key type to use offered by the Enr crate, Enr should be made generic in discv5. The default generic should still be CombinedKey, the key type being used now. This change also requires changing the impl bodies to be extend to work for all types of keys, not just be implemented for the default CombinedKey. This shouldn't be hard because the EnrKey trait is at disposal from the enr crate.
impl<P: ProtocolIdentity, K: EnrKey> Discv5<P, K> { ...