mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Joachim Vandersmissen <git@jvdsn.com>
To: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Jeff Barnes <jeffbarnes@linux.microsoft.com>,
	"David S. Miller" <davem@davemloft.net>,
	linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org,
	Jeff Barnes <jeffbarnes@microsoft.com>
Subject: Re: [PATCH] crypto: aead: add service indicator flag for RFC4106 AES-GCM
Date: Sun, 1 Mar 2026 14:41:28 -0600	[thread overview]
Message-ID: <a73a2556-3fa3-45fc-bf06-a62e8367e953@jvdsn.com> (raw)
In-Reply-To: <aaKtujHwV0zDFWxi@gondor.apana.org.au>

Hi Herbert,

On 2/28/26 2:56 AM, Herbert Xu wrote:
> On Tue, Feb 17, 2026 at 03:59:41PM -0500, Jeff Barnes wrote:
>> I don't know how to accomplish that.
>>
>> SP800-38D provides two frameworks for constructing a gcm IV. (https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf)
>>
>> The first construction, described in Sec. 8.2.1, relies on deterministic
>> elements to achieve the uniqueness requirement in Sec. 8; the second
>> construction, described in Sec. 8.2.2, relies on a sufficiently long output
>> string from an approved RBG with a sufficient security strength. My patch
>> checks for an implementation of 8.2.1 via rfc4106(gcm(aes)). I don't know
>> how a patch could check for 8.2.1 or 8.2.2 from an externally generated iv.
>>
>> Suggestions welcome.
> Rather than setting the FIPS_COMPLIANCE flag, why not simply ban the
> non-compliant cases from being used in FIPS mode?
>
> Sure that would mean banning gcm(aes) in FIPS mode, and only
> allowing seqiv(gcm(aes)) but that's OK because we have the
> FIPS_INTERNAL flag to deal with this by only allowing gcm(aes)
> to be used to construct something like seqiv(gcm(aes)).

Like you said, this could work for seqiv(gcm(aes)), if there are truly 
no usecases for gcm(aes) when the kernel is in FIPS mode.

However, Cryptographic Module Validation Program has also recently made 
it clear that xxhash64 cannot be FIPS approved the way it is currently 
implemented in the kernel. Even though the designers of xxhash publicly 
state that it is a non-cryptographic hash, the kernel offers it as part 
of the shash interface, the same interface as the approved algorithms. 
The interface / API also has "crypto" in the name, which according to 
CMVP implies security. CMVP feels that there could be confusion with the 
approved hash algorithms, so there needs to be some indication that 
xxhash64 is not FIPS approved. I think blocking xxhash64 in FIPS mode 
would break btrfs, where it is used for checksumming.

Kind regards,
Joachim

> Of course this would need to be tested since FIPS_INTERNAL was
> introduced for something else but I see no reason why it can't
> be used for gcm too.
>
> Cheers,

  reply	other threads:[~2026-03-01 20:51 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-29 21:04 jeffbarnes
2026-01-30  5:10 ` Herbert Xu
2026-02-17 20:59   ` Jeff Barnes
2026-02-28  8:56     ` Herbert Xu
2026-03-01 20:41       ` Joachim Vandersmissen [this message]
2026-03-02 12:26         ` Herbert Xu
2026-03-02 21:34           ` Jeff Barnes
2026-03-02 21:51         ` Jeff Barnes
2026-03-03  3:37           ` Herbert Xu
2026-03-12 14:00             ` Jeff Barnes
2026-03-14 19:37               ` Eric Biggers
2026-03-03 15:14           ` Christoph Hellwig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a73a2556-3fa3-45fc-bf06-a62e8367e953@jvdsn.com \
    --to=git@jvdsn.com \
    --cc=davem@davemloft.net \
    --cc=herbert@gondor.apana.org.au \
    --cc=jeffbarnes@linux.microsoft.com \
    --cc=jeffbarnes@microsoft.com \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®