@@ -13,7 +13,7 @@ use tokio_rustls::rustls::{
1313
1414use crate :: {
1515 attestation:: measurements:: { CvmImageMeasurements , Measurements , PlatformMeasurements } ,
16- MEASUREMENT_HEADER ,
16+ MEASUREMENT_HEADER , SUPPORTED_ALPN_PROTOCOL_VERSIONS ,
1717} ;
1818
1919/// Helper to generate a self-signed certificate for testing
@@ -42,18 +42,27 @@ pub fn generate_tls_config(
4242 certificate_chain : Vec < CertificateDer < ' static > > ,
4343 key : PrivateKeyDer < ' static > ,
4444) -> ( Arc < ServerConfig > , Arc < ClientConfig > ) {
45- let server_config = ServerConfig :: builder ( )
45+ let supported_protocols: Vec < _ > = SUPPORTED_ALPN_PROTOCOL_VERSIONS
46+ . into_iter ( )
47+ . map ( |p| p. to_vec ( ) )
48+ . collect ( ) ;
49+
50+ let mut server_config = ServerConfig :: builder ( )
4651 . with_no_client_auth ( )
4752 . with_single_cert ( certificate_chain. clone ( ) , key)
4853 . expect ( "Failed to create rustls server config" ) ;
4954
55+ server_config. alpn_protocols = supported_protocols. clone ( ) ;
56+
5057 let mut root_store = RootCertStore :: empty ( ) ;
5158 root_store. add ( certificate_chain[ 0 ] . clone ( ) ) . unwrap ( ) ;
5259
53- let client_config = ClientConfig :: builder ( )
60+ let mut client_config = ClientConfig :: builder ( )
5461 . with_root_certificates ( root_store)
5562 . with_no_client_auth ( ) ;
5663
64+ client_config. alpn_protocols = supported_protocols;
65+
5766 ( Arc :: new ( server_config) , Arc :: new ( client_config) )
5867}
5968
@@ -67,32 +76,44 @@ pub fn generate_tls_config_with_client_auth(
6776 ( Arc < ServerConfig > , Arc < ClientConfig > ) ,
6877 ( Arc < ServerConfig > , Arc < ClientConfig > ) ,
6978) {
79+ let supported_protocols: Vec < _ > = SUPPORTED_ALPN_PROTOCOL_VERSIONS
80+ . into_iter ( )
81+ . map ( |p| p. to_vec ( ) )
82+ . collect ( ) ;
83+
7084 let ( alice_client_verifier, alice_root_store) =
7185 client_verifier_from_remote_cert ( bob_certificate_chain[ 0 ] . clone ( ) ) ;
7286
73- let alice_server_config = ServerConfig :: builder ( )
87+ let mut alice_server_config = ServerConfig :: builder ( )
7488 . with_client_cert_verifier ( alice_client_verifier)
7589 . with_single_cert ( alice_certificate_chain. clone ( ) , alice_key. clone_key ( ) )
7690 . expect ( "Failed to create rustls server config" ) ;
7791
78- let alice_client_config = ClientConfig :: builder ( )
92+ alice_server_config. alpn_protocols = supported_protocols. clone ( ) ;
93+
94+ let mut alice_client_config = ClientConfig :: builder ( )
7995 . with_root_certificates ( alice_root_store)
8096 . with_client_auth_cert ( alice_certificate_chain. clone ( ) , alice_key)
8197 . unwrap ( ) ;
8298
99+ alice_client_config. alpn_protocols = supported_protocols. clone ( ) ;
100+
83101 let ( bob_client_verifier, bob_root_store) =
84102 client_verifier_from_remote_cert ( alice_certificate_chain[ 0 ] . clone ( ) ) ;
85103
86- let bob_server_config = ServerConfig :: builder ( )
104+ let mut bob_server_config = ServerConfig :: builder ( )
87105 . with_client_cert_verifier ( bob_client_verifier)
88106 . with_single_cert ( bob_certificate_chain. clone ( ) , bob_key. clone_key ( ) )
89107 . expect ( "Failed to create rustls server config" ) ;
90108
91- let bob_client_config = ClientConfig :: builder ( )
109+ bob_server_config. alpn_protocols = supported_protocols. clone ( ) ;
110+
111+ let mut bob_client_config = ClientConfig :: builder ( )
92112 . with_root_certificates ( bob_root_store)
93113 . with_client_auth_cert ( bob_certificate_chain, bob_key)
94114 . unwrap ( ) ;
95115
116+ bob_client_config. alpn_protocols = supported_protocols;
96117 (
97118 ( Arc :: new ( alice_server_config) , Arc :: new ( alice_client_config) ) ,
98119 ( Arc :: new ( bob_server_config) , Arc :: new ( bob_client_config) ) ,
0 commit comments