use std::borrow::Cow;
use crate::{crypto::signer::JwsSigner, jwk::PublicJwk, platform::MaybeSendSync};
pub mod boxed;
pub trait AsymmetricJwsSignerSelector: std::fmt::Debug + Clone + MaybeSendSync {
type AsymmetricSigner: AsymmetricJwsSigner;
fn select_asymmetric_signer(&self) -> Self::AsymmetricSigner;
fn select_asymmetric_signer_by_thumbprint(
&self,
thumbprint: &str,
) -> Option<Self::AsymmetricSigner>;
}
pub trait AsymmetricJwsSigner: JwsSigner {
fn public_key_jwk(&self) -> Cow<'_, PublicJwk>;
}