Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
4ee3e6c
selftests/mm temporary fix of hmm infinite loop
PlaidCat Oct 22, 2024
dfb090a
SUSE: patch: crypto-ecdh-implement-FIPS-PCT.patch
jallisonciq Aug 29, 2024
51b76d9
crypto: essiv - Zeroize keys on exit in essiv_aead_setkey()
jason-rodri Sep 30, 2024
49dac74
crypto: jitter - replace LFSR with SHA3-256
jallisonciq Jun 16, 2025
7d4416c
crypto: aead,cipher - zeroize key buffer after use
jallisonciq Sep 4, 2024
a6d1529
crypto: ecdh - explicitly zeroize private_key
jvdsn Mar 28, 2024
854589c
crypto: lib/mpi - Fix unexpected pointer access in mpi_ec_init
uudiin Dec 14, 2023
1e86f73
crypto: Kconfig - Make CRYPTO_FIPS depend on the DRBG being built-in
kerneltoast Jul 22, 2025
03ba7ff
random: Restrict extrng registration to init time
kerneltoast Aug 1, 2025
d850618
crypto: rng - Convert crypto_default_rng_refcnt into an unsigned int
kerneltoast Jun 24, 2025
ac0621f
crypto: drbg - Align buffers to at least a cache line
kerneltoast Jun 11, 2025
975e2ae
crypto: rng - Fix priority inversions due to mutex locks
kerneltoast Jun 24, 2025
18ca002
mm/gup: reintroduce pin_user_pages_fast_only()
kerneltoast Jun 19, 2025
7e3b78b
crypto: rng - Implement fast per-CPU DRBG instances
kerneltoast Aug 19, 2025
0ccfa85
configs: Ensure FIPS settings defined
PlaidCat Jul 29, 2025
78eac31
github actions: Use reusable validate kernel commits workflow
bmastbergen Oct 17, 2025
538c783
github actions: Add kernelCI for rlc-9
roxanan1996 Mar 12, 2026
48a81a0
github actions: Use trigger for kernelCI
roxanan1996 Mar 26, 2026
5c44c52
Revert "xfrm: esp: avoid in-place decrypt on shared skb frags"
PlaidCat May 13, 2026
9372849
tools: hv: Enable debug logs for hv_kvp_daemon
PlaidCat Jun 9, 2025
fc42cbb
crypto: rng - Only allow the DRBG to register as "stdrng" in FIPS mode
kerneltoast Jul 25, 2025
b0b8619
net: mana: Add support for net_shaper_ops
shreeya-patel98 Dec 16, 2025
a327984
net: mana: Add speed support in mana_get_link_ksettings
shreeya-patel98 Dec 16, 2025
f62a293
net: mana: Fix build errors when CONFIG_NET_SHAPER is disabled
shreeya-patel98 Dec 16, 2025
9c4b1a6
xfrm: esp: avoid in-place decrypt on shared skb frags
PlaidCat May 7, 2026
d580e04
rxrpc: Also unshare DATA/RESPONSE packets when paged frags are present
kerneltoast May 8, 2026
9e9719e
crypto: rng - Skip leading zero-length iovec segments
kerneltoast Jun 23, 2026
0684ac3
crypto: rng - Fix spurious EFAULT when the destination PTE is zapped
kerneltoast Jun 23, 2026
4121bf6
Revert "mm/gup: reintroduce pin_user_pages_fast_only()"
kerneltoast Jun 23, 2026
0e0d984
gve: Define config structs for queue allocation
shreeya-patel98 Jul 23, 2026
3108c80
gve: Refactor napi add and remove functions
shreeya-patel98 Aug 17, 2026
b740efd
gve: Switch to config-aware queue allocation
shreeya-patel98 Aug 17, 2026
ae8c3a0
gve: Refactor gve_open and gve_close
shreeya-patel98 Jul 24, 2026
9098a7c
gve: Alloc before freeing when adjusting queues
shreeya-patel98 Jul 24, 2026
a80de13
gve: Alloc before freeing when changing features
shreeya-patel98 Jul 24, 2026
b4cb741
gve: simplify setting decriptor count defaults
shreeya-patel98 Jul 24, 2026
1bb7bfe
gve: make the completion and buffer ring size equal for DQO
shreeya-patel98 Jul 24, 2026
f684833
gve: set page count for RX QPL for GQI and DQO queue formats
shreeya-patel98 Jul 24, 2026
c689629
gve: add support to read ring size ranges from the device
shreeya-patel98 Jul 24, 2026
7445615
gve: add support to change ring size via ethtool
shreeya-patel98 Jul 24, 2026
2a30813
gve: Fix use of netif_carrier_ok()
shreeya-patel98 Aug 17, 2026
fc68457
gve: Remove unused declaration gve_rx_alloc_rings()
shreeya-patel98 Aug 17, 2026
780bb8c
gve: clean XDP queues in gve_tx_stop_ring_gqi
shreeya-patel98 Aug 17, 2026
f9ff964
gve: fix XDP allocation path in edge cases
shreeya-patel98 Aug 17, 2026
ec21e2a
gve: prevent ethtool ops after shutdown
shreeya-patel98 Aug 17, 2026
b82adcd
gve: defer interrupt enabling until NAPI registration
shreeya-patel98 Aug 17, 2026
0c2dfc5
gve: fix incorrect buffer cleanup in gve_tx_clean_pending_packets for…
shreeya-patel98 Aug 17, 2026
da7359d
gve: Update QPL page registration logic
shreeya-patel98 Jul 24, 2026
1387889
gve: Enable reading max ring size from the device in DQO-QPL mode
shreeya-patel98 Jul 24, 2026
532626d
gve: bound DQO-QPL TX buffer count to the s16 free-list range
shreeya-patel98 Aug 11, 2026
8d20f7e
openvswitch: defer tunnel netdev_put to RCU release
bmastbergen Sep 8, 2026
4a9f725
openvswitch: vport: fix self-deadlock on release of tunnel ports
bmastbergen Sep 8, 2026
3a771ed
ip6_tunnel: clear skb2->cb[] in ip6ip6_err()
shreeya-patel98 Sep 8, 2026
364e04c
sctp: stream: fully roll back denied add-stream state
shreeya-patel98 Sep 9, 2026
79946a4
mpls: add seqcount to protect the platform_label{,s} pair
bmastbergen Sep 15, 2026
f1c07b3
exec: Cleanup POSIX timers right after de_thread()
PlaidCat Oct 13, 2026
f87b5d7
netfilter: nfnetlink_queue: unbreak SCTP traffic
bmastbergen Oct 16, 2026
e7a8368
ipv4: validate checksum_start before completing checksum
bmastbergen Oct 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .container_build_image
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
rocky-9-kernel-builder
11 changes: 11 additions & 0 deletions .github/workflows/kernel-build-and-test-multiarch-trigger.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: Trigger Automated kernel build and test (multi-arch)

on:
push:
branches:
- '*_rlc-9/**'

jobs:
kernelCI:
uses: ctrliq/kernel-src-tree/.github/workflows/kernel-build-and-test-multiarch-trigger.yml@main
secrets: inherit
10 changes: 10 additions & 0 deletions .github/workflows/validate-kernel-commits.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: Validate Kernel Commits

on:
pull_request:
types: [opened, synchronize, reopened]

jobs:
check:
uses: ctrliq/kernel-src-tree/.github/workflows/validate-kernel-commits.yml@main
secrets: inherit
11 changes: 11 additions & 0 deletions configs/kernel-x86_64-debug-rhel.config
Original file line number Diff line number Diff line change
Expand Up @@ -7359,3 +7359,14 @@ CONFIG_ZSWAP=y
# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set
CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set

CONFIG_X509_CERTIFICATE_PARSER=y
CONFIG_PKCS7_MESSAGE_PARSER=y
CONFIG_FIPS_SIGNATURE_SELFTEST=y
CONFIG_FIPS_SIGNATURE_SELFTEST_RSA=y
CONFIG_FIPS_SIGNATURE_SELFTEST_ECDSA=y
CONFIG_CRYPTO_DRBG=y
CONFIG_CRYPTO_FIPS=y
CONFIG_CRYPTO_FIPS_CUSTOM_VERSION=y
CONFIG_CRYPTO_FIPS_VERSION="rocky9.20250725"
CONFIG_CRYPTO_FIPS_NAME="Rocky Linux 9 Kernel Cryptographic API"
11 changes: 11 additions & 0 deletions configs/kernel-x86_64-rhel.config
Original file line number Diff line number Diff line change
Expand Up @@ -7336,3 +7336,14 @@ CONFIG_ZSWAP=y
# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set
CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set

CONFIG_X509_CERTIFICATE_PARSER=y
CONFIG_PKCS7_MESSAGE_PARSER=y
CONFIG_FIPS_SIGNATURE_SELFTEST=y
CONFIG_FIPS_SIGNATURE_SELFTEST_RSA=y
CONFIG_FIPS_SIGNATURE_SELFTEST_ECDSA=y
CONFIG_CRYPTO_DRBG=y
CONFIG_CRYPTO_FIPS=y
CONFIG_CRYPTO_FIPS_CUSTOM_VERSION=y
CONFIG_CRYPTO_FIPS_VERSION="rocky9.20250725"
CONFIG_CRYPTO_FIPS_NAME="Rocky Linux 9 Kernel Cryptographic API"
7 changes: 4 additions & 3 deletions crypto/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@ if CRYPTO
comment "Crypto core or helper"

config CRYPTO_FIPS
bool "FIPS 200 compliance"
depends on (CRYPTO_ANSI_CPRNG || CRYPTO_DRBG) && !CRYPTO_MANAGER_DISABLE_TESTS
bool "FIPS compliance"
depends on CRYPTO_DRBG=y && !CRYPTO_MANAGER_DISABLE_TESTS
depends on (MODULE_SIG || !MODULES)
help
This option enables the fips boot option which is
required if you want the system to operate in a FIPS 200
required if you want the system to operate in a FIPS
certification. You should say no unless you know what
this is.

Expand Down Expand Up @@ -2037,6 +2037,7 @@ config CRYPTO_ANSI_CPRNG
tristate "Pseudo Random Number Generation for Cryptographic modules"
select CRYPTO_AES
select CRYPTO_RNG
select CRYPTO_SHA3
help
This option enables the generic pseudo random number generator
for cryptographic modules. Uses the Algorithm specified in
Expand Down
3 changes: 1 addition & 2 deletions crypto/aead.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,7 @@ static int setkey_unaligned(struct crypto_aead *tfm, const u8 *key,
alignbuffer = (u8 *)ALIGN((unsigned long)buffer, alignmask + 1);
memcpy(alignbuffer, key, keylen);
ret = crypto_aead_alg(tfm)->setkey(tfm, alignbuffer, keylen);
memset(alignbuffer, 0, keylen);
kfree(buffer);
kfree_sensitive(buffer);
return ret;
}

Expand Down
3 changes: 1 addition & 2 deletions crypto/cipher.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,7 @@ static int setkey_unaligned(struct crypto_cipher *tfm, const u8 *key,
alignbuffer = (u8 *)ALIGN((unsigned long)buffer, alignmask + 1);
memcpy(alignbuffer, key, keylen);
ret = cia->cia_setkey(crypto_cipher_tfm(tfm), alignbuffer, keylen);
memset(alignbuffer, 0, keylen);
kfree(buffer);
kfree_sensitive(buffer);
return ret;

}
Expand Down
6 changes: 6 additions & 0 deletions crypto/drbg.c
Original file line number Diff line number Diff line change
Expand Up @@ -1283,6 +1283,12 @@ static inline int drbg_alloc_state(struct drbg_state *drbg)
if (ret < 0)
goto err;

/*
* Align to at least a cache line for better performance. This also
* prevents false sharing of cache lines between different instances.
*/
ret = max(ret, L1_CACHE_BYTES - 1);

drbg->Vbuf = kmalloc(drbg_statelen(drbg) + ret, GFP_KERNEL);
if (!drbg->Vbuf) {
ret = -ENOMEM;
Expand Down
33 changes: 33 additions & 0 deletions crypto/ecdh.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#include <crypto/kpp.h>
#include <crypto/ecdh.h>
#include <linux/scatterlist.h>
#include <linux/fips.h>
#include "ecc.h"

struct ecdh_ctx {
Expand All @@ -33,6 +34,8 @@ static int ecdh_set_secret(struct crypto_kpp *tfm, const void *buf,
params.key_size > sizeof(u64) * ctx->ndigits)
return -EINVAL;

memset(ctx->private_key, 0, sizeof(ctx->private_key));

if (!params.key || !params.key_size)
return ecc_gen_privkey(ctx->curve_id, ctx->ndigits,
ctx->private_key);
Expand Down Expand Up @@ -94,6 +97,36 @@ static int ecdh_compute_value(struct kpp_request *req)
ctx->private_key, public_key);
buf = public_key;
nbytes = public_key_sz;

/*
* SP800-56Arev3, 5.6.2.1.4: ("Owner Assurance of
* Pair-wise Consistency"): recompute the public key
* and check if the results match.
*/
if (fips_enabled) {
u64 *public_key_pct;

if (ret < 0)
goto free_all;

public_key_pct = kmalloc(public_key_sz, GFP_KERNEL);
if (!public_key_pct) {
ret = -ENOMEM;
goto free_all;
}

ret = ecc_make_pub_key(ctx->curve_id, ctx->ndigits,
ctx->private_key,
public_key_pct);
if (ret < 0) {
kfree(public_key_pct);
goto free_all;
}

if (memcmp(public_key, public_key_pct, public_key_sz))
panic("ECDH PCT failed in FIPS mode");
kfree(public_key_pct);
}
}

if (ret < 0)
Expand Down
9 changes: 6 additions & 3 deletions crypto/essiv.c
Original file line number Diff line number Diff line change
Expand Up @@ -114,13 +114,16 @@ static int essiv_aead_setkey(struct crypto_aead *tfm, const u8 *key,
crypto_shash_update(desc, keys.enckey, keys.enckeylen) ?:
crypto_shash_finup(desc, keys.authkey, keys.authkeylen, salt);
if (err)
return err;
goto out;

crypto_cipher_clear_flags(tctx->essiv_cipher, CRYPTO_TFM_REQ_MASK);
crypto_cipher_set_flags(tctx->essiv_cipher, crypto_aead_get_flags(tfm) &
CRYPTO_TFM_REQ_MASK);
return crypto_cipher_setkey(tctx->essiv_cipher, salt,
crypto_shash_digestsize(tctx->hash));
err = crypto_cipher_setkey(tctx->essiv_cipher, salt,
crypto_shash_digestsize(tctx->hash));
out:
memzero_explicit(&keys, sizeof(keys));
return err;
}

static int essiv_aead_setauthsize(struct crypto_aead *tfm,
Expand Down
Loading
Loading