Files
SolarEnergy/central_backend/src/crypto/openssl_utils.rs
2024-06-28 19:19:17 +02:00

25 lines
688 B
Rust

use openssl::asn1::{Asn1Time, Asn1TimeRef};
/// Clone Asn1 time
pub fn clone_asn1_time(time: &Asn1TimeRef) -> anyhow::Result<Asn1Time> {
let diff = time.diff(Asn1Time::from_unix(0)?.as_ref())?;
let days = diff.days.abs();
let secs = diff.secs.abs();
Ok(Asn1Time::from_unix((days * 3600 * 24 + secs) as i64)?)
}
#[cfg(test)]
mod test {
use crate::crypto::openssl_utils::clone_asn1_time;
use openssl::asn1::Asn1Time;
use std::cmp::Ordering;
#[test]
fn test_clone_asn1_time() {
let a = Asn1Time::from_unix(10).unwrap();
let b = clone_asn1_time(a.as_ref()).unwrap();
assert_eq!(a.compare(&b).unwrap(), Ordering::Equal);
}
}