use crate::error::Error;
use hmac_sha256::HMAC;
pub fn compute_hmac_sha256(key: &[u8], data: &[u8]) -> Vec<u8> {
HMAC::mac(data, key).to_vec()
}
pub fn verify_hmac_sha256(key: &[u8], data: &[u8], signature: &[u8]) -> Result<(), Error> {
let computed_mac = HMAC::mac(data, key);
if ct_codecs::verify(&computed_mac, signature) {
Ok(())
} else {
Err(Error::SignatureVerification)
}
}
pub fn current_timestamp() -> u64 {
use std::time::{SystemTime, UNIX_EPOCH};
SystemTime::now()
.duration_since(UNIX_EPOCH)
.expect("Time went backwards")
.as_secs()
}