use bergshamra_enc::{encrypt::encrypt, EncContext};
use bergshamra_keys::KeysManager;
use crate::crypto::error::CryptoError;
pub struct SamlEncryptor {
keys_manager: KeysManager,
}
impl SamlEncryptor {
pub fn new(keys_manager: KeysManager) -> Self {
Self { keys_manager }
}
pub fn encrypt(&self, template_xml: &str, plaintext: &[u8]) -> Result<String, CryptoError> {
let ctx = EncContext::new(self.keys_manager.clone());
let encrypted = encrypt(&ctx, template_xml, plaintext)?;
Ok(encrypted)
}
pub fn keys_manager(&self) -> &KeysManager {
&self.keys_manager
}
}