use std::error::Error;
use base64::{Engine, engine::general_purpose::STANDARD as base64};
use hmac::{Hmac, Mac};
use sha2::Sha256;
pub fn encode_base64(payload: &[u8]) -> Result<String, Box<dyn Error>> {
Ok(base64.encode(payload))
}
pub fn encrypt_hmac_sha_256(secret_key: &str, payload: &str) -> Result<Vec<u8>, Box<dyn Error>> {
let mut mac = Hmac::<Sha256>::new_from_slice(secret_key.as_bytes())?;
mac.update(payload.as_bytes());
Ok(mac.finalize().into_bytes().to_vec())
}