use crate;
use cratePublicKey;
use crateError;
/// Pair of public and private keys capable of signing.
///
/// A key pair is required whenever signing operations are performed, and the trait allows swapping
/// implementations depending on the use case. The private portion of the pair doesn't have to be
/// stored on the local system. For example, it's possible and recommended for implementations of
/// [`KeyPair`] to rely on a Hardware Security Module.