File: 0004-update-to-asn1-0.19-and-use-X509GeneralizedTime.patch

package info (click to toggle)
python-cryptography 43.0.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 5,400 kB
  • sloc: python: 49,159; java: 319; makefile: 161
file content (182 lines) | stat: -rw-r--r-- 8,710 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
From: Paul Kehrer <paul.l.kehrer@gmail.com>
Date: Sun, 17 Nov 2024 07:28:04 -0800
Subject: update to asn1 0.19 and use X509GeneralizedTime

---
 src/rust/cryptography-x509-verification/src/policy/mod.rs | 10 +++++-----
 src/rust/cryptography-x509/src/common.rs                  |  2 +-
 src/rust/cryptography-x509/src/ocsp_resp.rs               |  8 ++++----
 src/rust/src/x509/certificate.rs                          |  6 +++---
 src/rust/src/x509/extensions.rs                           |  4 +++-
 src/rust/src/x509/ocsp_resp.rs                            |  9 +++++----
 6 files changed, 21 insertions(+), 18 deletions(-)

diff --git a/src/rust/cryptography-x509-verification/src/policy/mod.rs b/src/rust/cryptography-x509-verification/src/policy/mod.rs
index 5616a83..a67eaf9 100644
--- a/src/rust/cryptography-x509-verification/src/policy/mod.rs
+++ b/src/rust/cryptography-x509-verification/src/policy/mod.rs
@@ -769,7 +769,7 @@ mod tests {
             let generalized_dt = utc_dt.clone();
             let utc_validity = Time::UtcTime(asn1::UtcTime::new(utc_dt).unwrap());
             let generalized_validity =
-                Time::GeneralizedTime(asn1::GeneralizedTime::new(generalized_dt).unwrap());
+                Time::GeneralizedTime(asn1::X509GeneralizedTime::new(generalized_dt).unwrap());
             assert!(permits_validity_date(&utc_validity).is_ok());
             assert!(permits_validity_date(&generalized_validity).is_err());
         }
@@ -779,7 +779,7 @@ mod tests {
             let generalized_dt = utc_dt.clone();
             let utc_validity = Time::UtcTime(asn1::UtcTime::new(utc_dt).unwrap());
             let generalized_validity =
-                Time::GeneralizedTime(asn1::GeneralizedTime::new(generalized_dt).unwrap());
+                Time::GeneralizedTime(asn1::X509GeneralizedTime::new(generalized_dt).unwrap());
             assert!(permits_validity_date(&utc_validity).is_ok());
             assert!(permits_validity_date(&generalized_validity).is_err());
         }
@@ -789,7 +789,7 @@ mod tests {
             let generalized_dt = utc_dt.clone();
             assert!(asn1::UtcTime::new(utc_dt).is_err());
             let generalized_validity =
-                Time::GeneralizedTime(asn1::GeneralizedTime::new(generalized_dt).unwrap());
+                Time::GeneralizedTime(asn1::X509GeneralizedTime::new(generalized_dt).unwrap());
             assert!(permits_validity_date(&generalized_validity).is_ok());
         }
         {
@@ -799,7 +799,7 @@ mod tests {
             // The `asn1::UtcTime` constructor prevents this.
             assert!(asn1::UtcTime::new(utc_dt).is_err());
             let generalized_validity =
-                Time::GeneralizedTime(asn1::GeneralizedTime::new(generalized_dt).unwrap());
+                Time::GeneralizedTime(asn1::X509GeneralizedTime::new(generalized_dt).unwrap());
             assert!(permits_validity_date(&generalized_validity).is_ok());
         }
         {
@@ -809,7 +809,7 @@ mod tests {
             // The `asn1::UtcTime` constructor prevents this.
             assert!(asn1::UtcTime::new(utc_dt).is_err());
             let generalized_validity =
-                Time::GeneralizedTime(asn1::GeneralizedTime::new(generalized_dt).unwrap());
+                Time::GeneralizedTime(asn1::X509GeneralizedTime::new(generalized_dt).unwrap());
             assert!(permits_validity_date(&generalized_validity).is_ok());
         }
     }
diff --git a/src/rust/cryptography-x509/src/common.rs b/src/rust/cryptography-x509/src/common.rs
index 0b95553..2957eeb 100644
--- a/src/rust/cryptography-x509/src/common.rs
+++ b/src/rust/cryptography-x509/src/common.rs
@@ -207,7 +207,7 @@ impl<'a> asn1::Asn1Writable for RawTlv<'a> {
 #[derive(asn1::Asn1Read, asn1::Asn1Write, PartialEq, Eq, Hash, Clone)]
 pub enum Time {
     UtcTime(asn1::UtcTime),
-    GeneralizedTime(asn1::GeneralizedTime),
+    GeneralizedTime(asn1::X509GeneralizedTime),
 }
 
 impl Time {
diff --git a/src/rust/cryptography-x509/src/ocsp_resp.rs b/src/rust/cryptography-x509/src/ocsp_resp.rs
index f40707e..5b0338b 100644
--- a/src/rust/cryptography-x509/src/ocsp_resp.rs
+++ b/src/rust/cryptography-x509/src/ocsp_resp.rs
@@ -39,7 +39,7 @@ pub struct ResponseData<'a> {
     #[default(0)]
     pub version: u8,
     pub responder_id: ResponderId<'a>,
-    pub produced_at: asn1::GeneralizedTime,
+    pub produced_at: asn1::X509GeneralizedTime,
     pub responses: common::Asn1ReadableOrWritable<
         asn1::SequenceOf<'a, SingleResponse<'a>>,
         asn1::SequenceOfWriter<'a, SingleResponse<'a>, Vec<SingleResponse<'a>>>,
@@ -60,9 +60,9 @@ pub enum ResponderId<'a> {
 pub struct SingleResponse<'a> {
     pub cert_id: ocsp_req::CertID<'a>,
     pub cert_status: CertStatus,
-    pub this_update: asn1::GeneralizedTime,
+    pub this_update: asn1::X509GeneralizedTime,
     #[explicit(0)]
-    pub next_update: Option<asn1::GeneralizedTime>,
+    pub next_update: Option<asn1::X509GeneralizedTime>,
     #[explicit(1)]
     pub raw_single_extensions: Option<extensions::RawExtensions<'a>>,
 }
@@ -79,7 +79,7 @@ pub enum CertStatus {
 
 #[derive(asn1::Asn1Read, asn1::Asn1Write)]
 pub struct RevokedInfo {
-    pub revocation_time: asn1::GeneralizedTime,
+    pub revocation_time: asn1::X509GeneralizedTime,
     #[explicit(0)]
     pub revocation_reason: Option<crl::CRLReason>,
 }
diff --git a/src/rust/src/x509/certificate.rs b/src/rust/src/x509/certificate.rs
index 810d7aa..246c15f 100644
--- a/src/rust/src/x509/certificate.rs
+++ b/src/rust/src/x509/certificate.rs
@@ -877,9 +877,9 @@ pub(crate) fn time_from_py(
 
 pub(crate) fn time_from_datetime(dt: asn1::DateTime) -> CryptographyResult<common::Time> {
     if dt.year() >= 2050 {
-        Ok(common::Time::GeneralizedTime(asn1::GeneralizedTime::new(
-            dt,
-        )?))
+        Ok(common::Time::GeneralizedTime(
+            asn1::X509GeneralizedTime::new(dt)?,
+        ))
     } else {
         Ok(common::Time::UtcTime(asn1::UtcTime::new(dt).unwrap()))
     }
diff --git a/src/rust/src/x509/extensions.rs b/src/rust/src/x509/extensions.rs
index 9bd9425..d3396ff 100644
--- a/src/rust/src/x509/extensions.rs
+++ b/src/rust/src/x509/extensions.rs
@@ -532,7 +532,9 @@ pub(crate) fn encode_extension(
         &oid::INVALIDITY_DATE_OID => {
             let py_dt = ext.getattr(pyo3::intern!(py, "invalidity_date_utc"))?;
             let dt = x509::py_to_datetime(py, py_dt)?;
-            Ok(Some(asn1::write_single(&asn1::GeneralizedTime::new(dt)?)?))
+            Ok(Some(asn1::write_single(&asn1::X509GeneralizedTime::new(
+                dt,
+            )?)?))
         }
         &oid::CRL_NUMBER_OID | &oid::DELTA_CRL_INDICATOR_OID => {
             let intval = ext
diff --git a/src/rust/src/x509/ocsp_resp.rs b/src/rust/src/x509/ocsp_resp.rs
index 955bf35..1a24188 100644
--- a/src/rust/src/x509/ocsp_resp.rs
+++ b/src/rust/src/x509/ocsp_resp.rs
@@ -746,7 +746,8 @@ pub(crate) fn create_ocsp_response(
         };
         // REVOKED
         let py_revocation_time = py_single_resp.getattr(pyo3::intern!(py, "_revocation_time"))?;
-        let revocation_time = asn1::GeneralizedTime::new(py_to_datetime(py, py_revocation_time)?)?;
+        let revocation_time =
+            asn1::X509GeneralizedTime::new(py_to_datetime(py, py_revocation_time)?)?;
         ocsp_resp::CertStatus::Revoked(ocsp_resp::RevokedInfo {
             revocation_time,
             revocation_reason,
@@ -757,7 +758,7 @@ pub(crate) fn create_ocsp_response(
         .is_none()
     {
         let py_next_update = py_single_resp.getattr(pyo3::intern!(py, "_next_update"))?;
-        Some(asn1::GeneralizedTime::new(py_to_datetime(
+        Some(asn1::X509GeneralizedTime::new(py_to_datetime(
             py,
             py_next_update,
         )?)?)
@@ -765,7 +766,7 @@ pub(crate) fn create_ocsp_response(
         None
     };
     let py_this_update = py_single_resp.getattr(pyo3::intern!(py, "_this_update"))?;
-    let this_update = asn1::GeneralizedTime::new(py_to_datetime(py, py_this_update)?)?;
+    let this_update = asn1::X509GeneralizedTime::new(py_to_datetime(py, py_this_update)?)?;
 
     let ka_vec = cryptography_keepalive::KeepAlive::new();
     let ka_bytes = cryptography_keepalive::KeepAlive::new();
@@ -807,7 +808,7 @@ pub(crate) fn create_ocsp_response(
 
     let tbs_response_data = ocsp_resp::ResponseData {
         version: 0,
-        produced_at: asn1::GeneralizedTime::new(x509::common::datetime_now(py)?)?,
+        produced_at: asn1::X509GeneralizedTime::new(x509::common::datetime_now(py)?)?,
         responder_id,
         responses: common::Asn1ReadableOrWritable::new_write(asn1::SequenceOfWriter::new(
             responses,