@@ -10,9 +10,9 @@ use chrono::{DateTime, TimeZone, Utc};
10
10
use futures:: future:: try_join_all;
11
11
use futures:: { ready, FutureExt , Stream } ;
12
12
use rcgen:: { CertificateParams , DistinguishedName , Error as RcgenError , PKCS_ECDSA_P256_SHA256 } ;
13
- use rustls:: sign:: { any_ecdsa_type, CertifiedKey } ;
14
- use rustls:: Certificate as RustlsCertificate ;
15
- use rustls:: PrivateKey ;
13
+ use rustls:: crypto :: ring :: sign:: any_ecdsa_type;
14
+ use rustls:: pki_types :: { CertificateDer as RustlsCertificate , PrivateKeyDer , PrivatePkcs8KeyDer } ;
15
+ use rustls:: sign :: CertifiedKey ;
16
16
use thiserror:: Error ;
17
17
use tokio:: io:: { AsyncRead , AsyncWrite } ;
18
18
use tokio:: time:: Sleep ;
@@ -31,6 +31,7 @@ pub fn after(d: std::time::Duration) -> Timer {
31
31
Box :: pin ( tokio:: time:: sleep ( d) )
32
32
}
33
33
34
+ #[ allow( clippy:: type_complexity) ]
34
35
pub struct AcmeState < EC : Debug = Infallible , EA : Debug = EC > {
35
36
config : Arc < AcmeConfig < EC , EA > > ,
36
37
resolver : Arc < ResolvesServerCertAcme > ,
@@ -162,15 +163,16 @@ impl<EC: 'static + Debug, EA: 'static + Debug> AcmeState<EC, EA> {
162
163
if pems. len ( ) < 2 {
163
164
return Err ( CertParseError :: TooFewPem ( pems. len ( ) ) ) ;
164
165
}
165
- let pk = match any_ecdsa_type ( & PrivateKey ( pems. remove ( 0 ) . into_contents ( ) ) ) {
166
+ let pk_bytes = pems. remove ( 0 ) . into_contents ( ) ;
167
+ let pk_der: PrivatePkcs8KeyDer = pk_bytes. into ( ) ;
168
+ let pk: PrivateKeyDer = pk_der. into ( ) ;
169
+ let pk = match any_ecdsa_type ( & pk) {
166
170
Ok ( pk) => pk,
167
171
Err ( _) => return Err ( CertParseError :: InvalidPrivateKey ) ,
168
172
} ;
169
- let cert_chain: Vec < RustlsCertificate > = pems
170
- . into_iter ( )
171
- . map ( |p| RustlsCertificate ( p. into_contents ( ) ) )
172
- . collect ( ) ;
173
- let validity = match parse_x509_certificate ( cert_chain[ 0 ] . 0 . as_slice ( ) ) {
173
+ let cert_chain: Vec < RustlsCertificate > =
174
+ pems. into_iter ( ) . map ( |p| p. into_contents ( ) . into ( ) ) . collect ( ) ;
175
+ let validity = match parse_x509_certificate ( cert_chain[ 0 ] . as_ref ( ) ) {
174
176
Ok ( ( _, cert) ) => {
175
177
let validity = cert. validity ( ) ;
176
178
[ validity. not_before , validity. not_after ]
0 commit comments