TLS selftests were broken also because of use of structure that
was not exported to UAPI. Fix by defining the union in tests.

Fixes: 3502bd9b5762 (selftests/tls: fix selftests after adding 
ChaCha20-Poly1305)
Fixes: 4f336e88a870 (selftests/tls: add CHACHA20-POLY1305 to tls selftests)
Reported-by: Rong Chen <rong.a.c...@intel.com>
Signed-off-by: Vadim Fedorenko <vfedore...@novek.ru>
---
 tools/testing/selftests/net/tls.c | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/tools/testing/selftests/net/tls.c 
b/tools/testing/selftests/net/tls.c
index e0088c2..426d078 100644
--- a/tools/testing/selftests/net/tls.c
+++ b/tools/testing/selftests/net/tls.c
@@ -133,7 +133,10 @@
 
 FIXTURE_SETUP(tls)
 {
-       union tls_crypto_context tls12;
+       union {
+               struct tls12_crypto_info_aes_gcm_128 aes128;
+               struct tls12_crypto_info_chacha20_poly1305 chacha20;
+       } tls12;
        struct sockaddr_in addr;
        socklen_t len;
        int sfd, ret;
@@ -143,14 +146,16 @@
        len = sizeof(addr);
 
        memset(&tls12, 0, sizeof(tls12));
-       tls12.info.version = variant->tls_version;
-       tls12.info.cipher_type = variant->cipher_type;
        switch (variant->cipher_type) {
        case TLS_CIPHER_CHACHA20_POLY1305:
-               tls12_sz = sizeof(tls12_crypto_info_chacha20_poly1305);
+               tls12_sz = sizeof(struct tls12_crypto_info_chacha20_poly1305);
+               tls12.chacha20.info.version = variant->tls_version;
+               tls12.chacha20.info.cipher_type = variant->cipher_type;
                break;
        case TLS_CIPHER_AES_GCM_128:
-               tls12_sz = sizeof(tls12_crypto_info_aes_gcm_128);
+               tls12_sz = sizeof(struct tls12_crypto_info_aes_gcm_128);
+               tls12.aes128.info.version = variant->tls_version;
+               tls12.aes128.info.cipher_type = variant->cipher_type;
                break;
        default:
                tls12_sz = 0;
-- 
1.8.3.1

Reply via email to