Skip to content

Commit de5d5fe

Browse files
authored
cms: simplify create_signing_time (#1968)
This reuses the logic already implemented in `x509_cert::time::Time` instead of duplicating it.
1 parent a4f4cb9 commit de5d5fe

File tree

1 file changed

+7
-18
lines changed

1 file changed

+7
-18
lines changed

cms/src/builder.rs

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ use core::fmt;
2828
use core::marker::PhantomData;
2929
use der::asn1::{BitString, Null, OctetString, OctetStringRef, SetOfVec};
3030
use der::oid::db::DB;
31-
use der::{Any, AnyRef, DateTime, Decode, Encode, ErrorKind, Tag};
31+
use der::{Any, AnyRef, Decode, Encode, ErrorKind, Tag};
3232
use digest::Digest;
3333
use rsa::Pkcs1v15Encrypt;
3434
use sha2::digest;
@@ -39,10 +39,12 @@ use spki::{
3939
AlgorithmIdentifierOwned, DynSignatureAlgorithmIdentifier, EncodePublicKey,
4040
SignatureBitStringEncoding,
4141
};
42-
use std::time::SystemTime;
4342
use std::vec;
44-
use x509_cert::attr::{Attribute, AttributeValue, Attributes};
45-
use x509_cert::builder::{self, AsyncBuilder, Builder};
43+
use x509_cert::{
44+
attr::{Attribute, AttributeValue, Attributes},
45+
builder::{self, AsyncBuilder, Builder},
46+
time::Time,
47+
};
4648
use zeroize::Zeroize;
4749

4850
// Modules
@@ -1261,20 +1263,7 @@ pub fn create_message_digest_attribute(message_digest: &[u8]) -> Result<Attribut
12611263
/// encoded as UTCTime. Any dates with year values before 1950 or after
12621264
/// 2049 MUST be encoded as GeneralizedTime.
12631265
pub fn create_signing_time_attribute() -> Result<Attribute> {
1264-
let now = DateTime::from_system_time(SystemTime::now())?;
1265-
let tag = if now.year() < 1950 || now.year() > 2049 {
1266-
Tag::GeneralizedTime
1267-
} else {
1268-
Tag::UtcTime
1269-
};
1270-
// let mut signing_time_buf = Vec::new();
1271-
let time_der = if tag == Tag::GeneralizedTime {
1272-
// der::asn1::GeneralizedTime::from_date_time(now).encode_to_vec(&mut signing_time_buf)?;
1273-
der::asn1::GeneralizedTime::from_date_time(now).to_der()?
1274-
} else {
1275-
// der::asn1::UtcTime::from_date_time(now)?.encode_to_vec(&mut signing_time_buf)?;
1276-
der::asn1::UtcTime::from_date_time(now)?.to_der()?
1277-
};
1266+
let time_der = Time::now()?.to_der()?;
12781267
let signing_time_attribute_value = AttributeValue::from_der(&time_der)?;
12791268
let mut values = SetOfVec::<AttributeValue>::new();
12801269
values.insert(signing_time_attribute_value)?;

0 commit comments

Comments
 (0)