From patchwork Thu Apr 4 18:16:09 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Juliusz Sosinowicz X-Patchwork-Id: 1919902 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=Suy59Hoe; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=wolfssl-com.20230601.gappssmtp.com header.i=@wolfssl-com.20230601.gappssmtp.com header.a=rsa-sha256 header.s=20230601 header.b=TN6YGRCu; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=patchwork.ozlabs.org) Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4V9VG14XP8z23v3 for ; Fri, 5 Apr 2024 05:17:27 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=pl6wens1iPCYl2eKVijPg1qXyDKj48c4ODrEzJOfCFY=; b=Suy59HoecnUiY3 o2ADtKZZuDwACAPb3V2qVjPJKMhtQEIVKpnjrIknYvodHVeWVGZucknrFHcjUo5iji1a9oidZh3qM aEIZPTv2Oe2ScRuplbBN2FUziBiHp0fkhp6o0wcuyNIlrJNsE+wV8qMDxl/JLtOisGNDKND0z5/0S ni5zCWplfPo38jOCR9diDODg//m9mClaRakofui1Umy+LiI+IdVfweASMGww7lR0UjM2kbn0V7bYK 8rVZBQKV7Qc3IyW4TPpd98AogeeMK+riS1xe1nUpRJO4kMFbX+s3Tajxmj6YmN4qlMDwPGJdMWqw1 rgmPVnz68I/R/BoUlh5A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rsRe2-00000003mfL-0cdJ; Thu, 04 Apr 2024 18:17:02 +0000 Received: from mail-ed1-x52c.google.com ([2a00:1450:4864:20::52c]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rsRdz-00000003mds-2RKg for hostap@lists.infradead.org; Thu, 04 Apr 2024 18:17:00 +0000 Received: by mail-ed1-x52c.google.com with SMTP id 4fb4d7f45d1cf-56c1a65275bso645387a12.1 for ; Thu, 04 Apr 2024 11:16:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wolfssl-com.20230601.gappssmtp.com; s=20230601; t=1712254618; x=1712859418; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=xklGj+O+/l1gKdsh/D64i2uvnysgd+OJMYnnf1bfWHE=; b=TN6YGRCuJsXEt+qEfJDSjKGTM+qgf/d3yj8Q1LS5u5QWDEanQdsf9nOxwTop17lsjU KR2cYNXGO3ExzL8xdZW0SmM3U6ko6VthhGO8aeZ/6QmHzc9mKWwxviX2hpV6AEArWNOO kBQP0DbU36wC9dCFhczqC0Ex7C8NQCg43dk248wTDzVruXG0+eQIhIcLnZ3GtKx0n/6O QjTMueS3NpoyYd5sjzvjm9qQh3A73bwP9izqquPyahvBmnLsST1q3QL22dmi3eoN8V+A fWQqgrJN3ZEq5p9QRBJ538otr/hSSkEzl7v3k77de3GYYnCyRIN4kMsVRZUxsGlMzfL9 0Zmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712254618; x=1712859418; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xklGj+O+/l1gKdsh/D64i2uvnysgd+OJMYnnf1bfWHE=; b=RzZW/hh8w3ICMiRv8jwG7qZSO2bwGdXGrEcpREi0A96PwMMy0ft+aLt6hqJampKPdP TFQnSK++ok+yx0TFaUejW1L7fOG8bTkwT/y5KAPzrnyQ0W3kWK6o8nRag99XWkj1NIKS 2KK4AeXdl20ceXRCaSXlNb9vOGfIPuJzqCCFNCfFY1mnr0W7jxEPY1/dF3xWhwBAD7Gi xdt38dgyaMeNVcRO8mQw3M6U97E6xuwu3Qm+A0QaolBDzrPHNFJLH+EX4fFkVlFr3m/b POm9yiVKMxFPgDL85is1rkk+kUMiBAwknXDgCiM0b8Z25SwuwjLeytgF6R+ap2+bibul 8KHQ== X-Gm-Message-State: AOJu0YyceZy+6SRtXmiCqI6KiIQ2Yl3nBK69GO2D2O/zSdoPJuYEI8bI aBOkiEtFBJn8vhmLVkoJ5vuvTvwMpssC+D00IZNuhzCMYsFsG9fW6UI/UYLJNHlUmfx5lE8LC/+ 49QU= X-Google-Smtp-Source: AGHT+IFUUc2AJ+WhUHBNBh0H/LUWTwug2+WV0rqWR9vWSPSjhTB2Dn9Y7ePYOj+Ko+tgO35bA0xyGA== X-Received: by 2002:a50:9516:0:b0:56e:2bf4:fe02 with SMTP id u22-20020a509516000000b0056e2bf4fe02mr233409eda.11.1712254617889; Thu, 04 Apr 2024 11:16:57 -0700 (PDT) Received: from localhost.localdomain ([82.118.30.15]) by smtp.gmail.com with ESMTPSA id dh26-20020a0564021d3a00b0056e0b358e86sm1976349edb.97.2024.04.04.11.16.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Apr 2024 11:16:57 -0700 (PDT) From: Juliusz Sosinowicz To: hostap@lists.infradead.org Cc: Juliusz Sosinowicz Subject: [PATCH 03/24] wolfssl: use defines for ex_data access Date: Thu, 4 Apr 2024 20:16:09 +0200 Message-Id: <20240404181630.2431991-3-juliusz@wolfssl.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240404181630.2431991-1-juliusz@wolfssl.com> References: <20240404181630.2431991-1-juliusz@wolfssl.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240404_111659_652565_C5351487 X-CRM114-Status: GOOD ( 14.30 ) X-Spam-Score: 0.0 (/) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Signed-off-by: Juliusz Sosinowicz --- src/crypto/tls_wolfssl.c | 28 ++++++++++++++++ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/crypto/tls_wolfssl.c b/src/crypto/tls_wolfssl.c index 25616f2c7a..26832ed430 100644 --- a/src/crypto/tls_wolfssl.c +++ b/src/crypto/tls_wolfssl.c @@ -42,7 +42,9 @@ Content analysis details: (0.0 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:52c listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid X-BeenThere: hostap@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Hostap" Errors-To: hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Signed-off-by: Juliusz Sosinowicz --- src/crypto/tls_wolfssl.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/crypto/tls_wolfssl.c b/src/crypto/tls_wolfssl.c index 25616f2c7a..26832ed430 100644 --- a/src/crypto/tls_wolfssl.c +++ b/src/crypto/tls_wolfssl.c @@ -42,7 +42,9 @@ static int tls_ref_count = 0; -static int tls_ex_idx_session = 0; +#define TLS_SESSION_EX_IDX (0) +#define TLS_SSL_CTX_CTX_EX_IDX (0) +#define TLS_SSL_CON_EX_IDX (0) /* tls input data for wolfSSL Read Callback */ @@ -184,7 +186,7 @@ static void remove_session_cb(WOLFSSL_CTX *ctx, WOLFSSL_SESSION *sess) { struct wpabuf *buf; - buf = wolfSSL_SESSION_get_ex_data(sess, tls_ex_idx_session); + buf = wolfSSL_SESSION_get_ex_data(sess, TLS_SESSION_EX_IDX); if (!buf) return; wpa_printf(MSG_DEBUG, @@ -192,7 +194,7 @@ static void remove_session_cb(WOLFSSL_CTX *ctx, WOLFSSL_SESSION *sess) buf, sess); wpabuf_free(buf); - wolfSSL_SESSION_set_ex_data(sess, tls_ex_idx_session, NULL); + wolfSSL_SESSION_set_ex_data(sess, TLS_SESSION_EX_IDX, NULL); } @@ -380,7 +382,7 @@ void * tls_init(const struct tls_config *conf) wolfSSL_SetIORecv(ssl_ctx, wolfssl_receive_cb); wolfSSL_SetIOSend(ssl_ctx, wolfssl_send_cb); context->tls_session_lifetime = conf->tls_session_lifetime; - wolfSSL_CTX_set_ex_data(ssl_ctx, 0, context); + wolfSSL_CTX_set_ex_data(ssl_ctx, TLS_SSL_CTX_CTX_EX_IDX, context); if (conf->tls_session_lifetime > 0) { wolfSSL_CTX_set_session_id_context(ssl_ctx, @@ -410,7 +412,8 @@ void * tls_init(const struct tls_config *conf) void tls_deinit(void *ssl_ctx) { - struct tls_context *context = wolfSSL_CTX_get_ex_data(ssl_ctx, 0); + struct tls_context *context = wolfSSL_CTX_get_ex_data(ssl_ctx, + TLS_SSL_CTX_CTX_EX_IDX); if (context != tls_global) os_free(context); @@ -462,8 +465,8 @@ struct tls_connection * tls_connection_init(void *tls_ctx) wolfSSL_SetIOReadCtx(conn->ssl, &conn->input); wolfSSL_SetIOWriteCtx(conn->ssl, &conn->output); - wolfSSL_set_ex_data(conn->ssl, 0, conn); - conn->context = wolfSSL_CTX_get_ex_data(ssl_ctx, 0); + wolfSSL_set_ex_data(conn->ssl, TLS_SSL_CON_EX_IDX, conn); + conn->context = wolfSSL_CTX_get_ex_data(ssl_ctx, TLS_SSL_CTX_CTX_EX_IDX); /* Need randoms post-hanshake for EAP-FAST, export key and deriving * session ID in EAP methods. */ @@ -1109,7 +1112,7 @@ static int tls_verify_cb(int preverify_ok, WOLFSSL_X509_STORE_CTX *x509_ctx) wolfSSL_X509_NAME_oneline(wolfSSL_X509_get_subject_name(err_cert), buf, sizeof(buf)); - conn = wolfSSL_get_ex_data(ssl, 0); + conn = wolfSSL_get_ex_data(ssl, TLS_SSL_CON_EX_IDX); if (!conn) { wpa_printf(MSG_DEBUG, "wolfSSL: No ex_data"); return 0; @@ -1733,7 +1736,8 @@ int tls_connection_set_verify(void *ssl_ctx, struct tls_connection *conn, wolfSSL_set_accept_state(conn->ssl); - context = wolfSSL_CTX_get_ex_data((WOLFSSL_CTX *) ssl_ctx, 0); + context = wolfSSL_CTX_get_ex_data((WOLFSSL_CTX *) ssl_ctx, + TLS_SSL_CTX_CTX_EX_IDX); if (context && context->tls_session_lifetime == 0) { /* * Set session id context to a unique value to make sure @@ -2361,13 +2365,13 @@ void tls_connection_set_success_data(struct tls_connection *conn, goto fail; } - old = wolfSSL_SESSION_get_ex_data(sess, tls_ex_idx_session); + old = wolfSSL_SESSION_get_ex_data(sess, TLS_SESSION_EX_IDX); if (old) { wpa_printf(MSG_DEBUG, "wolfSSL: Replacing old success data %p", old); wpabuf_free(old); } - if (wolfSSL_SESSION_set_ex_data(sess, tls_ex_idx_session, data) != 1) + if (wolfSSL_SESSION_set_ex_data(sess, TLS_SESSION_EX_IDX, data) != 1) goto fail; wpa_printf(MSG_DEBUG, "wolfSSL: Stored success data %p", data); @@ -2390,7 +2394,7 @@ tls_connection_get_success_data(struct tls_connection *conn) sess = wolfSSL_get_session(conn->ssl); if (!sess) return NULL; - return wolfSSL_SESSION_get_ex_data(sess, tls_ex_idx_session); + return wolfSSL_SESSION_get_ex_data(sess, TLS_SESSION_EX_IDX); }