99 lines
3.8 KiB
Diff
99 lines
3.8 KiB
Diff
From 1e130c0596fe0bf55d2a9731cae85af4a6417986 Mon Sep 17 00:00:00 2001
|
|
From: Patrick Yavitz <pyavitz@gmail.com>
|
|
Date: Fri, 5 Dec 2025 16:31:44 -0500
|
|
Subject: [PATCH] Fixup rtl8852bs sha256
|
|
|
|
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
|
|
---
|
|
.../net/wireless/realtek/rtl8852bs/core/crypto/sha256-prf.c | 4 ++++
|
|
drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256.c | 4 ++++
|
|
drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256.h | 4 ++++
|
|
3 files changed, 12 insertions(+)
|
|
|
|
diff --git a/drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256-prf.c b/drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256-prf.c
|
|
index 642b38ff618c..df92ab3c27e8 100644
|
|
--- a/drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256-prf.c
|
|
+++ b/drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256-prf.c
|
|
@@ -28,12 +28,14 @@
|
|
* This function is used to derive new, cryptographically separate keys from a
|
|
* given key.
|
|
*/
|
|
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0))
|
|
int sha256_prf(const u8 *key, size_t key_len, const char *label,
|
|
const u8 *data, size_t data_len, u8 *buf, size_t buf_len)
|
|
{
|
|
return sha256_prf_bits(key, key_len, label, data, data_len, buf,
|
|
buf_len * 8);
|
|
}
|
|
+#endif
|
|
|
|
|
|
/**
|
|
@@ -52,6 +54,7 @@ int sha256_prf(const u8 *key, size_t key_len, const char *label,
|
|
* significant 1-7 bits of the last octet in the output are not part of the
|
|
* requested output.
|
|
*/
|
|
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0))
|
|
int sha256_prf_bits(const u8 *key, size_t key_len, const char *label,
|
|
const u8 *data, size_t data_len, u8 *buf,
|
|
size_t buf_len_bits)
|
|
@@ -107,3 +110,4 @@ int sha256_prf_bits(const u8 *key, size_t key_len, const char *label,
|
|
|
|
return 0;
|
|
}
|
|
+#endif
|
|
\ No newline at end of file
|
|
diff --git a/drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256.c b/drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256.c
|
|
index ea5d9e3f2dd6..5f1c1441f2a4 100644
|
|
--- a/drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256.c
|
|
+++ b/drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256.c
|
|
@@ -23,6 +23,7 @@
|
|
* @mac: Buffer for the hash (32 bytes)
|
|
* Returns: 0 on success, -1 on failure
|
|
*/
|
|
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0))
|
|
int hmac_sha256_vector(const u8 *key, size_t key_len, size_t num_elem,
|
|
const u8 *addr[], const size_t *len, u8 *mac)
|
|
{
|
|
@@ -86,6 +87,7 @@ int hmac_sha256_vector(const u8 *key, size_t key_len, size_t num_elem,
|
|
_len[1] = SHA256_MAC_LEN;
|
|
return sha256_vector(2, _addr, _len, mac);
|
|
}
|
|
+#endif
|
|
|
|
|
|
/**
|
|
@@ -97,8 +99,10 @@ int hmac_sha256_vector(const u8 *key, size_t key_len, size_t num_elem,
|
|
* @mac: Buffer for the hash (32 bytes)
|
|
* Returns: 0 on success, -1 on failure
|
|
*/
|
|
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0))
|
|
int hmac_sha256(const u8 *key, size_t key_len, const u8 *data,
|
|
size_t data_len, u8 *mac)
|
|
{
|
|
return hmac_sha256_vector(key, key_len, 1, &data, &data_len, mac);
|
|
}
|
|
+#endif
|
|
diff --git a/drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256.h b/drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256.h
|
|
index 5219022edd7d..a086c8b4739d 100644
|
|
--- a/drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256.h
|
|
+++ b/drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256.h
|
|
@@ -11,10 +11,14 @@
|
|
|
|
#define SHA256_MAC_LEN 32
|
|
|
|
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0))
|
|
int hmac_sha256_vector(const u8 *key, size_t key_len, size_t num_elem,
|
|
const u8 *addr[], const size_t *len, u8 *mac);
|
|
+#endif
|
|
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(6, 18, 0))
|
|
int hmac_sha256(const u8 *key, size_t key_len, const u8 *data,
|
|
size_t data_len, u8 *mac);
|
|
+#endif
|
|
int sha256_prf(const u8 *key, size_t key_len, const char *label,
|
|
const u8 *data, size_t data_len, u8 *buf, size_t buf_len);
|
|
int sha256_prf_bits(const u8 *key, size_t key_len, const char *label,
|
|
--
|
|
2.47.3
|
|
|