pub trait AsymmetricPrivateKeyProxyInterface: Send + Sync {
type GetKeyOriginResponseFut: Future<Output = Result<KeyGetKeyOriginResult, Error>> + Send;
type GetKeyProviderResponseFut: Future<Output = Result<KeyGetKeyProviderResult, Error>> + Send;
type SignResponseFut: Future<Output = Result<AsymmetricPrivateKeySignResult, Error>> + Send;
type GetPublicKeyResponseFut: Future<Output = Result<AsymmetricPrivateKeyGetPublicKeyResult, Error>> + Send;
type GetKeyAlgorithmResponseFut: Future<Output = Result<AsymmetricPrivateKeyGetKeyAlgorithmResult, Error>> + Send;
// Required methods
fn get_key_origin(&self) -> Self::GetKeyOriginResponseFut;
fn get_key_provider(&self) -> Self::GetKeyProviderResponseFut;
fn sign(&self, data: Buffer) -> Self::SignResponseFut;
fn get_public_key(&self) -> Self::GetPublicKeyResponseFut;
fn get_key_algorithm(&self) -> Self::GetKeyAlgorithmResponseFut;
}