summaryrefslogtreecommitdiff
path: root/crates/tor-cert
diff options
context:
space:
mode:
Diffstat (limited to 'crates/tor-cert')
-rw-r--r--crates/tor-cert/Cargo.toml1
-rw-r--r--crates/tor-cert/src/encode.rs4
-rw-r--r--crates/tor-cert/src/lib.rs11
-rw-r--r--crates/tor-cert/src/rsa/encode.rs5
4 files changed, 12 insertions, 9 deletions
diff --git a/crates/tor-cert/Cargo.toml b/crates/tor-cert/Cargo.toml
index b4e92cb0c..26fa6c909 100644
--- a/crates/tor-cert/Cargo.toml
+++ b/crates/tor-cert/Cargo.toml
@@ -49,6 +49,7 @@ tor-cert-x509 = { path = "../tor-cert-x509", version = "0.40.0", optional = true
tor-checkable = { path = "../tor-checkable", version = "0.40.0" }
tor-error = { path = "../tor-error", version = "0.40.0" }
tor-llcrypto = { path = "../tor-llcrypto", version = "0.40.0" }
+web-time-compat = { path = "../web-time-compat", version = "0.1.0" }
[dev-dependencies]
base64ct = "1.5.1"
diff --git a/crates/tor-cert/src/encode.rs b/crates/tor-cert/src/encode.rs
index de05a8122..ebf7394bb 100644
--- a/crates/tor-cert/src/encode.rs
+++ b/crates/tor-cert/src/encode.rs
@@ -220,14 +220,14 @@ mod test {
//! <!-- @@ end test lint list maintained by maint/add_warning @@ -->
use super::*;
use crate::CertifiedKey;
- use std::time::Duration;
use tor_checkable::{SelfSigned, Timebound};
+ use web_time_compat::{Duration, SystemTimeExt};
#[test]
fn signed_cert_without_key() {
let mut rng = rand::rng();
let keypair = ed25519::Keypair::generate(&mut rng);
- let now = SystemTime::now();
+ let now = SystemTime::get();
let day = Duration::from_secs(86400);
let encoded = Ed25519Cert::constructor()
.expiration(now + day * 30)
diff --git a/crates/tor-cert/src/lib.rs b/crates/tor-cert/src/lib.rs
index 69638af59..07c2f2643 100644
--- a/crates/tor-cert/src/lib.rs
+++ b/crates/tor-cert/src/lib.rs
@@ -57,7 +57,7 @@ use tor_bytes::{Error as BytesError, Result as BytesResult};
use tor_bytes::{Readable, Reader};
use tor_llcrypto::pk::*;
-use std::time;
+use web_time_compat as time;
pub use err::CertError;
@@ -625,7 +625,7 @@ struct ExpiryHours(u32);
/// The number of seconds in an hour.
const SEC_PER_HOUR: u64 = 3600;
-impl From<ExpiryHours> for std::time::SystemTime {
+impl From<ExpiryHours> for time::SystemTime {
fn from(value: ExpiryHours) -> Self {
// TODO MSRV 1.91; use from_hours.
let d = std::time::Duration::from_secs(u64::from(value.0) * SEC_PER_HOUR);
@@ -636,9 +636,9 @@ impl From<ExpiryHours> for std::time::SystemTime {
#[cfg(feature = "encode")]
impl ExpiryHours {
/// Return the earliest possible `ExpiryHours` that is no earlier than `expiry`.
- fn try_from_systemtime_ceil(expiry: std::time::SystemTime) -> Result<Self, CertEncodeError> {
+ fn try_from_systemtime_ceil(expiry: time::SystemTime) -> Result<Self, CertEncodeError> {
let d = expiry
- .duration_since(std::time::SystemTime::UNIX_EPOCH)
+ .duration_since(time::SystemTime::UNIX_EPOCH)
.map_err(|_| CertEncodeError::InvalidExpiration)?;
let sec_ceil = d.as_secs() + if d.subsec_nanos() > 0 { 1 } else { 0 };
let hours = sec_ceil
@@ -684,6 +684,7 @@ mod test {
//! <!-- @@ end test lint list maintained by maint/add_warning @@ -->
use super::*;
use hex_literal::hex;
+ use web_time_compat::SystemTimeExt;
#[test]
fn parse_unrecognized_ext() -> BytesResult<()> {
@@ -736,7 +737,7 @@ mod test {
fn expiry_hours_ceil() {
use std::time::{Duration, SystemTime};
- let now = SystemTime::now();
+ let now = SystemTime::get();
let mut exp = now + Duration::from_secs(24 * 60 * 60);
for _ in 0..=3600 {
let eh = ExpiryHours::try_from_systemtime_ceil(exp).unwrap();
diff --git a/crates/tor-cert/src/rsa/encode.rs b/crates/tor-cert/src/rsa/encode.rs
index 858146ce0..de09f54c3 100644
--- a/crates/tor-cert/src/rsa/encode.rs
+++ b/crates/tor-cert/src/rsa/encode.rs
@@ -1,6 +1,6 @@
//! RSA cross-cert generation
-use std::time::SystemTime;
+use web_time_compat::SystemTime;
use derive_more::{AsRef, Deref, Into};
use tor_bytes::Writer as _;
@@ -81,6 +81,7 @@ mod test {
use tor_basic_utils::test_rng::testing_rng;
use tor_checkable::{ExternallySigned, Timebound};
+ use web_time_compat::SystemTimeExt;
use crate::SEC_PER_HOUR;
use crate::rsa::RsaCrosscert;
@@ -95,7 +96,7 @@ mod test {
ed25519::Ed25519Identity::from_base64("dGhhdW1hdHVyZ3kgaXMgc3RvcmVkIGluIHRoZSBvcmI")
.unwrap();
- let now = SystemTime::now();
+ let now = SystemTime::get();
let expiry = now + Duration::from_secs(24 * SEC_PER_HOUR);
let cert = EncodedRsaCrosscert::encode_and_sign(&keypair, &ed_id, expiry).unwrap();