net/tls: Move TLS protocol elements to a separate header
authorChuck Lever <chuck.lever@oracle.com>
Thu, 27 Jul 2023 17:35:23 +0000 (13:35 -0400)
committerJakub Kicinski <kuba@kernel.org>
Fri, 28 Jul 2023 21:07:59 +0000 (14:07 -0700)
Kernel TLS consumers will need definitions of various parts of the
TLS protocol, but often do not need the function declarations and
other infrastructure provided in <net/tls.h>.

Break out existing standardized protocol elements into a separate
header, and make room for a few more elements in subsequent patches.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Link: https://lore.kernel.org/r/169047931374.5241.7713175865185969309.stgit@oracle-102.nfsv4bat.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls.h
include/net/tls.h
include/net/tls_prot.h [new file with mode: 0644]
net/sunrpc/svcsock.c
net/sunrpc/xprtsock.c
net/tls/tls.h

index 68562a8..62f62bf 100644 (file)
@@ -22,6 +22,7 @@
 #include <crypto/internal/hash.h>
 #include <linux/tls.h>
 #include <net/tls.h>
+#include <net/tls_prot.h>
 #include <net/tls_toe.h>
 
 #include "t4fw_api.h"
index 5e71dd3..06fca91 100644 (file)
@@ -69,10 +69,6 @@ extern const struct tls_cipher_size_desc tls_cipher_size_desc[];
 
 #define TLS_CRYPTO_INFO_READY(info)    ((info)->cipher_type)
 
-#define TLS_RECORD_TYPE_ALERT          0x15
-#define TLS_RECORD_TYPE_HANDSHAKE      0x16
-#define TLS_RECORD_TYPE_DATA           0x17
-
 #define TLS_AAD_SPACE_SIZE             13
 
 #define MAX_IV_SIZE                    16
diff --git a/include/net/tls_prot.h b/include/net/tls_prot.h
new file mode 100644 (file)
index 0000000..47d6cfd
--- /dev/null
@@ -0,0 +1,26 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/*
+ * Copyright (c) 2023, Oracle and/or its affiliates.
+ *
+ * TLS Protocol definitions
+ *
+ * From https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml
+ */
+
+#ifndef _TLS_PROT_H
+#define _TLS_PROT_H
+
+/*
+ * TLS Record protocol: ContentType
+ */
+enum {
+       TLS_RECORD_TYPE_CHANGE_CIPHER_SPEC = 20,
+       TLS_RECORD_TYPE_ALERT = 21,
+       TLS_RECORD_TYPE_HANDSHAKE = 22,
+       TLS_RECORD_TYPE_DATA = 23,
+       TLS_RECORD_TYPE_HEARTBEAT = 24,
+       TLS_RECORD_TYPE_TLS12_CID = 25,
+       TLS_RECORD_TYPE_ACK = 26,
+};
+
+#endif /* _TLS_PROT_H */
index e43f263..449df8c 100644 (file)
@@ -44,6 +44,7 @@
 #include <net/tcp.h>
 #include <net/tcp_states.h>
 #include <net/tls.h>
+#include <net/tls_prot.h>
 #include <net/handshake.h>
 #include <linux/uaccess.h>
 #include <linux/highmem.h>
index 9f01036..9457ebf 100644 (file)
@@ -48,6 +48,7 @@
 #include <net/udp.h>
 #include <net/tcp.h>
 #include <net/tls.h>
+#include <net/tls_prot.h>
 #include <net/handshake.h>
 
 #include <linux/bvec.h>
index 86cef1c..26a0358 100644 (file)
@@ -39,6 +39,7 @@
 #include <linux/types.h>
 #include <linux/skmsg.h>
 #include <net/tls.h>
+#include <net/tls_prot.h>
 
 #define TLS_PAGE_ORDER (min_t(unsigned int, PAGE_ALLOC_COSTLY_ORDER,   \
                               TLS_MAX_PAYLOAD_SIZE >> PAGE_SHIFT))