@@ -11,7 +11,7 @@ mod client {
1111 } ;
1212
1313 use rustls:: {
14- CertificateType , ClientConfig , ClientConnection , RootCertStore , Stream ,
14+ CertificateType , ClientConfig , ClientConnection , PeerIdentity , RootCertStore , Stream ,
1515 client:: { ClientCredentialResolver , CredentialRequest } ,
1616 sign:: { CertifiedKey , CertifiedSigner } ,
1717 } ;
@@ -43,8 +43,11 @@ mod client {
4343 impl ClientCredentialResolver for ClientCertResolver {
4444 fn resolve ( & self , server_hello : & CredentialRequest ) -> Option < CertifiedSigner > {
4545 let ( chain, signing_key) = get_chain ( & self . 0 , & self . 1 ) . ok ( ) ?;
46- CertifiedKey :: new_unchecked ( chain. into ( ) , Box :: new ( signing_key) )
47- . signer ( server_hello. signature_schemes ( ) )
46+ CertifiedKey :: new_unchecked (
47+ Arc :: new ( PeerIdentity :: from_cert_chain ( chain) . ok ( ) ?) ,
48+ Box :: new ( signing_key) ,
49+ )
50+ . signer ( server_hello. signature_schemes ( ) )
4851 }
4952
5053 fn supported_certificate_types ( & self ) -> & ' static [ CertificateType ] {
@@ -95,7 +98,7 @@ mod server {
9598 } ;
9699
97100 use rustls:: {
98- RootCertStore , ServerConfig , ServerConnection , Stream ,
101+ PeerIdentity , RootCertStore , ServerConfig , ServerConnection , Stream ,
99102 server:: { ClientHello , ServerCredentialResolver , WebPkiClientVerifier } ,
100103 sign:: { CertifiedKey , CertifiedSigner } ,
101104 } ;
@@ -128,9 +131,12 @@ mod server {
128131 . map_err ( |_| rustls:: Error :: NoSuitableCertificate ) ?;
129132 let certs = chain. into_iter ( ) . map ( Into :: into) . collect ( ) ;
130133
131- CertifiedKey :: new_unchecked ( certs, Box :: new ( key) )
132- . signer ( client_hello. signature_schemes ( ) )
133- . ok_or_else ( || rustls:: Error :: General ( "No common schemes" . to_owned ( ) ) )
134+ CertifiedKey :: new_unchecked (
135+ Arc :: new ( PeerIdentity :: from_cert_chain ( certs) ?) ,
136+ Box :: new ( key) ,
137+ )
138+ . signer ( client_hello. signature_schemes ( ) )
139+ . ok_or_else ( || rustls:: Error :: General ( "No common schemes" . to_owned ( ) ) )
134140 }
135141 }
136142
0 commit comments