@@ -103,32 +103,58 @@ FIXTURE(tls)
103103
104104FIXTURE_VARIANT (tls )
105105{
106- unsigned int tls_version ;
106+ u16 tls_version ;
107+ u16 cipher_type ;
107108};
108109
109- FIXTURE_VARIANT_ADD (tls , 12 )
110+ FIXTURE_VARIANT_ADD (tls , 12 _gcm )
110111{
111112 .tls_version = TLS_1_2_VERSION ,
113+ .cipher_type = TLS_CIPHER_AES_GCM_128 ,
112114};
113115
114- FIXTURE_VARIANT_ADD (tls , 13 )
116+ FIXTURE_VARIANT_ADD (tls , 13 _gcm )
115117{
116118 .tls_version = TLS_1_3_VERSION ,
119+ .cipher_type = TLS_CIPHER_AES_GCM_128 ,
120+ };
121+
122+ FIXTURE_VARIANT_ADD (tls , 12 _chacha )
123+ {
124+ .tls_version = TLS_1_2_VERSION ,
125+ .cipher_type = TLS_CIPHER_CHACHA20_POLY1305 ,
126+ };
127+
128+ FIXTURE_VARIANT_ADD (tls , 13 _chacha )
129+ {
130+ .tls_version = TLS_1_3_VERSION ,
131+ .cipher_type = TLS_CIPHER_CHACHA20_POLY1305 ,
117132};
118133
119134FIXTURE_SETUP (tls )
120135{
121- struct tls12_crypto_info_aes_gcm_128 tls12 ;
136+ union tls_crypto_context tls12 ;
122137 struct sockaddr_in addr ;
123138 socklen_t len ;
124139 int sfd , ret ;
140+ size_t tls12_sz ;
125141
126142 self -> notls = false;
127143 len = sizeof (addr );
128144
129145 memset (& tls12 , 0 , sizeof (tls12 ));
130146 tls12 .info .version = variant -> tls_version ;
131- tls12 .info .cipher_type = TLS_CIPHER_AES_GCM_128 ;
147+ tls12 .info .cipher_type = variant -> cipher_type ;
148+ switch (variant -> cipher_type ) {
149+ case TLS_CIPHER_CHACHA20_POLY1305 :
150+ tls12_sz = sizeof (tls12_crypto_info_chacha20_poly1305 );
151+ break ;
152+ case TLS_CIPHER_AES_GCM_128 :
153+ tls12_sz = sizeof (tls12_crypto_info_aes_gcm_128 );
154+ break ;
155+ default :
156+ tls12_sz = 0 ;
157+ }
132158
133159 addr .sin_family = AF_INET ;
134160 addr .sin_addr .s_addr = htonl (INADDR_ANY );
@@ -156,7 +182,7 @@ FIXTURE_SETUP(tls)
156182
157183 if (!self -> notls ) {
158184 ret = setsockopt (self -> fd , SOL_TLS , TLS_TX , & tls12 ,
159- sizeof ( tls12 ) );
185+ tls12_sz );
160186 ASSERT_EQ (ret , 0 );
161187 }
162188
@@ -169,7 +195,7 @@ FIXTURE_SETUP(tls)
169195 ASSERT_EQ (ret , 0 );
170196
171197 ret = setsockopt (self -> cfd , SOL_TLS , TLS_RX , & tls12 ,
172- sizeof ( tls12 ) );
198+ tls12_sz );
173199 ASSERT_EQ (ret , 0 );
174200 }
175201
0 commit comments