@@ -67,32 +67,6 @@ impl From<signature::Error> for Error {
67
67
68
68
type Result < T > = core:: result:: Result < T , Error > ;
69
69
70
- /// UniqueIds holds the optional attributes `issuerUniqueID` and `subjectUniqueID`
71
- /// to be filled in the TBSCertificate if version v2 or v3.
72
- ///
73
- /// See X.509 `TbsCertificate` as defined in [RFC 5280 Section 4.1]
74
- pub struct UniqueIds {
75
- /// ```text
76
- /// issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
77
- /// -- If present, version MUST be v2 or v3
78
- /// ```
79
- pub issuer_unique_id : Option < BitString > ,
80
- /// ```text
81
- /// subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
82
- /// -- If present, version MUST be v2 or v3
83
- /// ```
84
- pub subject_unique_id : Option < BitString > ,
85
- }
86
-
87
- impl UniqueIds {
88
- fn get_unique_ids ( & self ) -> ( Option < BitString > , Option < BitString > ) {
89
- (
90
- self . issuer_unique_id . clone ( ) ,
91
- self . subject_unique_id . clone ( ) ,
92
- )
93
- }
94
- }
95
-
96
70
/// The type of certificate to build
97
71
#[ derive( Clone , Debug , Eq , PartialEq ) ]
98
72
pub enum Profile {
@@ -229,34 +203,13 @@ impl Profile {
229
203
}
230
204
}
231
205
232
- /// The version of the Certificate to build.
233
- /// All newly built certificate should use `CertificateVersion::V3`
234
- pub enum CertificateVersion {
235
- /// Generate a X509 version 1
236
- V1 ,
237
- /// Generate a X509 version 2
238
- V2 ( UniqueIds ) ,
239
- /// Generate a X509 version 3
240
- V3 ( UniqueIds ) ,
241
- }
242
-
243
- impl From < CertificateVersion > for Version {
244
- fn from ( cv : CertificateVersion ) -> Version {
245
- use CertificateVersion :: * ;
246
- match cv {
247
- V1 => Version :: V1 ,
248
- V2 ( _) => Version :: V2 ,
249
- V3 ( _) => Version :: V3 ,
250
- }
251
- }
252
- }
253
-
254
206
/// X509 Certificate builder
255
207
///
256
208
/// ```
257
209
/// use der::Decode;
258
210
/// use x509_cert::spki::SubjectPublicKeyInfoOwned;
259
- /// use x509_cert::builder::{CertificateBuilder, CertificateVersion, Profile, UniqueIds};
211
+ /// use x509_cert::certificate::Version;
212
+ /// use x509_cert::builder::{CertificateBuilder, Profile};
260
213
/// use x509_cert::name::Name;
261
214
/// use x509_cert::serial_number::SerialNumber;
262
215
/// use x509_cert::time::Validity;
@@ -274,11 +227,6 @@ impl From<CertificateVersion> for Version {
274
227
/// # signing_key
275
228
/// # }
276
229
///
277
- /// let uids = UniqueIds {
278
- /// issuer_unique_id: None,
279
- /// subject_unique_id: None,
280
- /// };
281
- ///
282
230
/// let serial_number = SerialNumber::from(42u32);
283
231
/// let validity = Validity::from_now(Duration::new(5, 0)).unwrap();
284
232
/// let profile = Profile::Root;
@@ -289,7 +237,7 @@ impl From<CertificateVersion> for Version {
289
237
/// let mut signer = rsa_signer();
290
238
/// let mut builder = CertificateBuilder::new(
291
239
/// profile,
292
- /// CertificateVersion ::V3(uids) ,
240
+ /// Version ::V3,
293
241
/// serial_number,
294
242
/// validity,
295
243
/// subject,
@@ -312,7 +260,7 @@ where
312
260
/// Creates a new certificate builder
313
261
pub fn new < Signature > (
314
262
profile : Profile ,
315
- version : CertificateVersion ,
263
+ version : Version ,
316
264
serial_number : SerialNumber ,
317
265
mut validity : Validity ,
318
266
subject : Name ,
@@ -333,12 +281,6 @@ where
333
281
validity. not_before . rfc5280_adjust_utc_time ( ) ?;
334
282
validity. not_after . rfc5280_adjust_utc_time ( ) ?;
335
283
336
- let ( version, ( issuer_unique_id, subject_unique_id) ) = match version {
337
- CertificateVersion :: V1 => ( Version :: V1 , ( None , None ) ) ,
338
- CertificateVersion :: V2 ( uids) => ( Version :: V2 , uids. get_unique_ids ( ) ) ,
339
- CertificateVersion :: V3 ( uids) => ( Version :: V3 , uids. get_unique_ids ( ) ) ,
340
- } ;
341
-
342
284
let mut tbs = TbsCertificate {
343
285
version,
344
286
serial_number,
@@ -347,9 +289,15 @@ where
347
289
validity,
348
290
subject,
349
291
subject_public_key_info,
350
- issuer_unique_id,
351
- subject_unique_id,
352
292
extensions : None ,
293
+
294
+ // We will not generate unique identifier because as per RFC5280 Section 4.1.2.8:
295
+ // CAs conforming to this profile MUST NOT generate
296
+ // certificates with unique identifiers.
297
+ //
298
+ // https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.8
299
+ issuer_unique_id : None ,
300
+ subject_unique_id : None ,
353
301
} ;
354
302
355
303
if tbs. version == Version :: V3 {
0 commit comments