@@ -11,8 +11,6 @@ use crate::{
11
11
} ;
12
12
#[ cfg( feature = "x509-parser" ) ]
13
13
use crate :: { CustomExtension , DistinguishedName , SanType } ;
14
- #[ cfg( feature = "x509-parser" ) ]
15
- use x509_parser:: asn1_rs:: Oid ;
16
14
17
15
/// A public key, extracted from a CSR
18
16
#[ derive( Debug , PartialEq , Eq , Hash ) ]
@@ -97,7 +95,7 @@ impl CertificateSigningRequestParams {
97
95
#[ cfg( all( feature = "pem" , feature = "x509-parser" ) ) ]
98
96
pub fn from_pem_validated < F > ( pem_str : & str , valid_fn : F ) -> Result < Self , Error >
99
97
where
100
- F : FnMut ( & Oid , & [ u8 ] ) -> Result < ( ) , Error > ,
98
+ F : FnMut ( & x509_parser :: extensions :: UnsupportedExtension ) -> Result < ( ) , Error > ,
101
99
{
102
100
let csr = pem:: parse ( pem_str) . or ( Err ( Error :: CouldNotParseCertificationRequest ) ) ?;
103
101
Self :: from_der_validated ( & csr. contents ( ) . into ( ) , valid_fn)
@@ -115,7 +113,7 @@ impl CertificateSigningRequestParams {
115
113
/// [`rustls_pemfile::csr()`]: https://docs.rs/rustls-pemfile/latest/rustls_pemfile/fn.csr.html
116
114
#[ cfg( feature = "x509-parser" ) ]
117
115
pub fn from_der ( csr : & CertificateSigningRequestDer < ' _ > ) -> Result < Self , Error > {
118
- Self :: from_der_validated ( csr, |_, _ | Ok ( ( ) ) )
116
+ Self :: from_der_validated ( csr, |_| Ok ( ( ) ) )
119
117
}
120
118
121
119
/// Parse a certificate signing request from DER-encoded bytes using the provided
@@ -131,7 +129,7 @@ impl CertificateSigningRequestParams {
131
129
mut valid_fn : F ,
132
130
) -> Result < Self , Error >
133
131
where
134
- F : FnMut ( & Oid , & [ u8 ] ) -> Result < ( ) , Error > ,
132
+ F : FnMut ( & x509_parser :: extensions :: UnsupportedExtension ) -> Result < ( ) , Error > ,
135
133
{
136
134
use crate :: KeyUsagePurpose ;
137
135
use x509_parser:: prelude:: FromDer ;
@@ -208,20 +206,17 @@ impl CertificateSigningRequestParams {
208
206
return Err ( Error :: UnsupportedExtension ) ;
209
207
}
210
208
} ,
211
- x509_parser:: extensions:: ParsedExtension :: UnsupportedExtension {
212
- oid,
213
- value,
214
- } => {
215
- valid_fn ( oid, value) ?;
216
- let oid: Vec < u64 > = match oid. iter ( ) {
209
+ x509_parser:: extensions:: ParsedExtension :: UnsupportedExtension ( val) => {
210
+ valid_fn ( val) ?;
211
+ let oid: Vec < u64 > = match val. oid . iter ( ) {
217
212
Some ( iter) => iter. collect ( ) ,
218
213
None => return Err ( Error :: UnsupportedExtension ) ,
219
214
} ;
220
- let ext = CustomExtension :: from_oid_content ( & oid, value. to_vec ( ) ) ;
215
+ let mut ext = CustomExtension :: from_oid_content ( & oid, val. value . to_vec ( ) ) ;
216
+ ext. set_criticality ( val. critical ) ;
221
217
params. custom_extensions . push ( ext) ;
222
218
} ,
223
219
other => {
224
- dbg ! ( & other) ;
225
220
return Err ( Error :: UnsupportedExtension ) ;
226
221
} ,
227
222
}
0 commit comments