#![forbid(unsafe_code)]
use crate::cipher::CipherAlgorithm;
use crate::digest::DigestAlgorithm;
use crate::keytransport::KeyTransportAlgorithm;
use crate::keywrap::KeyWrapAlgorithm;
use crate::sign::SignatureAlgorithm;
use bergshamra_core::Error;
pub struct AlgorithmRegistry;
impl AlgorithmRegistry {
pub fn digest(uri: &str) -> Result<Box<dyn DigestAlgorithm>, Error> {
crate::digest::from_uri(uri)
}
pub fn signature(uri: &str) -> Result<Box<dyn SignatureAlgorithm>, Error> {
crate::sign::from_uri(uri)
}
pub fn cipher(uri: &str) -> Result<Box<dyn CipherAlgorithm>, Error> {
crate::cipher::from_uri(uri)
}
pub fn key_wrap(uri: &str) -> Result<Box<dyn KeyWrapAlgorithm>, Error> {
crate::keywrap::from_uri(uri)
}
pub fn key_transport(uri: &str) -> Result<Box<dyn KeyTransportAlgorithm>, Error> {
crate::keytransport::from_uri(uri)
}
}