All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Biggers <ebiggers@kernel.org>
To: "Stephan Müller" <smueller@chronox.de>
Cc: Herbert Xu <herbert@gondor.apana.org.au>,
	James Bottomley <James.Bottomley@hansenpartnership.com>,
	Andy Lutomirski <luto@amacapital.net>,
	"Lee, Chun-Yi" <joeyli.kernel@gmail.com>,
	"Rafael J . Wysocki" <rjw@rjwysocki.net>,
	Pavel Machek <pavel@ucw.cz>,
	linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org,
	keyrings@vger.kernel.org,
	"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
	Chen Yu <yu.c.chen@intel.com>, Oliver Neukum <oneukum@suse.com>,
	Ryan Chen <yu.chen.surf@gmail.com>,
	David Howells <dhowells@redhat.com>,
	Giovanni Gherdovich <ggherdovich@suse.cz>,
	Randy Dunlap <rdunlap@infradead.org>,
	Jann Horn <jannh@google.com>, Andy Lutomirski <luto@kernel.org>,
	linux-crypto@vger.kernel.org
Subject: Re: [PATCH 5/6] crypto: hkdf - add known answer tests
Date: Mon, 14 Jan 2019 09:44:16 -0800	[thread overview]
Message-ID: <20190114174415.GA7644@gmail.com> (raw)
In-Reply-To: <2750733.sbdFDJOICv@positron.chronox.de>

On Mon, Jan 14, 2019 at 10:25:16AM +0100, Stephan Müller wrote:
> Am Samstag, 12. Januar 2019, 06:19:15 CET schrieb Eric Biggers:
> 
> Hi Eric,
> 
> [...]
> > 
> > > +			}
> > > +		}
> > > +	}, {
> > > +		.alg = "hkdf(hmac(sha224))",
> > > +		.test = alg_test_null,
> > > +		.fips_allowed = 1,
> > 
> > I think it is dumb to add algorithms to the testmgr with no tests just so
> > the 'fips_allowed' flag can be set. 
> 
> Currently it is the only way. But I agree that it could be done better.
> 
> > And doesn't FIPS sometimes require
> > tests anyway?  I don't think the "null test" should count as a test :-)
> 
> Yes, it DOES count as a test (as strange as it may sound)! :-)
> 
> The FIPS requirements are as follows:
> 
> - raw ciphers must be subject to a FIPS test with one block chaining mode to 
> cover that cipher with all block chaining modes (e.g. you can test ecb(aes) to 
> cover AES with *all* existing block chaining modes).
> 
> - for compound crypto algorithm (like RSA with respect to hashes, KDF with 
> respect to the keyed message digest, HMAC with respect to hashes), the 
> wrapping crypto algorithm needs to be tested with *one* wrapped cipher at 
> least (but also not more. E.g. if you have a self test for, say, all SHA-1 and 
> SHA-2, you only need one HMAC SHA test or one KDF HMAC SHA test.
> 
> - in some circumstances, it is even permissible to test wrapping crypto 
> algorithms where the underlying algo is implicitly tested. E.g. if you have a 
> HMAC SHA-256 test, you do not need an individual SHA-256 test.
> 
> 
> > 
> > Perhaps just include sha256 and sha512, and have tests for them?
> 
> Do you happen to have an official SHA-512 HKDF test vector? RFC5869 only has 
> SHA-1 and SHA-256 tests.
> > 
> 

No, I don't know of any official HKDF-SHA512 test vectors.

> [...]
> > > 
> > > +/* Test vectors from RFC 5869 appendix A */
> > > +static struct kdf_testvec hkdf_hmac_sha256_tv_template[] = {
> > 
> > const
> > 
> > Likewise for all other kdf_testvecs.
> 
> const does not work with __VECS :-(
> 
> I leave it without const at the moment. I think the __VECS should be updated 
> along with all test vectors.
> 
> [...]

I don't see why.  kdf_testvec just needs to be made const everywhere.

- Eric

WARNING: multiple messages have this Message-ID (diff)
From: Eric Biggers <ebiggers@kernel.org>
To: "Stephan Müller" <smueller@chronox.de>
Cc: Herbert Xu <herbert@gondor.apana.org.au>,
	James Bottomley <James.Bottomley@hansenpartnership.com>,
	Andy Lutomirski <luto@amacapital.net>,
	"Lee, Chun-Yi" <joeyli.kernel@gmail.com>,
	"Rafael J . Wysocki" <rjw@rjwysocki.net>,
	Pavel Machek <pavel@ucw.cz>,
	linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org,
	keyrings@vger.kernel.org,
	"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
	Chen Yu <yu.c.chen@intel.com>, Oliver Neukum <oneukum@suse.com>,
	Ryan Chen <yu.chen.surf@gmail.com>,
	David Howells <dhowells@redhat.com>,
	Giovanni Gherdovich <ggherdovich@suse.cz>,
	Randy Dunlap <rdunlap@infradead.org>,
	Jann Horn <jannh@google.com>, Andy Lutomirski <luto@kernel.org>,
	linux-crypto@vger.kernel.org
Subject: Re: [PATCH 5/6] crypto: hkdf - add known answer tests
Date: Mon, 14 Jan 2019 17:44:16 +0000	[thread overview]
Message-ID: <20190114174415.GA7644@gmail.com> (raw)
In-Reply-To: <2750733.sbdFDJOICv@positron.chronox.de>

On Mon, Jan 14, 2019 at 10:25:16AM +0100, Stephan Müller wrote:
> Am Samstag, 12. Januar 2019, 06:19:15 CET schrieb Eric Biggers:
> 
> Hi Eric,
> 
> [...]
> > 
> > > +			}
> > > +		}
> > > +	}, {
> > > +		.alg = "hkdf(hmac(sha224))",
> > > +		.test = alg_test_null,
> > > +		.fips_allowed = 1,
> > 
> > I think it is dumb to add algorithms to the testmgr with no tests just so
> > the 'fips_allowed' flag can be set. 
> 
> Currently it is the only way. But I agree that it could be done better.
> 
> > And doesn't FIPS sometimes require
> > tests anyway?  I don't think the "null test" should count as a test :-)
> 
> Yes, it DOES count as a test (as strange as it may sound)! :-)
> 
> The FIPS requirements are as follows:
> 
> - raw ciphers must be subject to a FIPS test with one block chaining mode to 
> cover that cipher with all block chaining modes (e.g. you can test ecb(aes) to 
> cover AES with *all* existing block chaining modes).
> 
> - for compound crypto algorithm (like RSA with respect to hashes, KDF with 
> respect to the keyed message digest, HMAC with respect to hashes), the 
> wrapping crypto algorithm needs to be tested with *one* wrapped cipher at 
> least (but also not more. E.g. if you have a self test for, say, all SHA-1 and 
> SHA-2, you only need one HMAC SHA test or one KDF HMAC SHA test.
> 
> - in some circumstances, it is even permissible to test wrapping crypto 
> algorithms where the underlying algo is implicitly tested. E.g. if you have a 
> HMAC SHA-256 test, you do not need an individual SHA-256 test.
> 
> 
> > 
> > Perhaps just include sha256 and sha512, and have tests for them?
> 
> Do you happen to have an official SHA-512 HKDF test vector? RFC5869 only has 
> SHA-1 and SHA-256 tests.
> > 
> 

No, I don't know of any official HKDF-SHA512 test vectors.

> [...]
> > > 
> > > +/* Test vectors from RFC 5869 appendix A */
> > > +static struct kdf_testvec hkdf_hmac_sha256_tv_template[] = {
> > 
> > const
> > 
> > Likewise for all other kdf_testvecs.
> 
> const does not work with __VECS :-(
> 
> I leave it without const at the moment. I think the __VECS should be updated 
> along with all test vectors.
> 
> [...]

I don't see why.  kdf_testvec just needs to be made const everywhere.

- Eric

  reply	other threads:[~2019-01-14 17:44 UTC|newest]

Thread overview: 181+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-03 14:32 [PATCH 0/5 v2][RFC] Encryption and authentication for hibernate snapshot image Lee, Chun-Yi
2019-01-03 14:32 ` Lee, Chun-Yi
2019-01-03 14:32 ` [PATCH 1/5 v2] PM / hibernate: Create snapshot keys handler Lee, Chun-Yi
2019-01-03 14:32   ` Lee, Chun-Yi
2019-01-06  8:01   ` Stephan Mueller
2019-01-06  8:01     ` Stephan Mueller
2019-01-06  8:25     ` Stephan Mueller
2019-01-06  8:25       ` Stephan Mueller
2019-01-07 15:33     ` joeyli
2019-01-07 15:33       ` joeyli
2019-01-07 15:52       ` Stephan Mueller
2019-01-07 15:52         ` Stephan Mueller
2019-01-08  5:03         ` Herbert Xu
2019-01-08  5:03           ` Herbert Xu
2019-01-08  7:09           ` Stephan Mueller
2019-01-08  7:09             ` Stephan Mueller
2019-01-08 23:54             ` Andy Lutomirski
2019-01-08 23:54               ` Andy Lutomirski
2019-01-09  0:44               ` James Bottomley
2019-01-09  0:44                 ` James Bottomley
2019-01-09  0:44                 ` James Bottomley
2019-01-09  1:43                 ` Andy Lutomirski
2019-01-09  1:43                   ` Andy Lutomirski
2019-01-09  6:49                   ` James Bottomley
2019-01-09  6:49                     ` James Bottomley
2019-01-09 18:11                     ` joeyli
2019-01-09 18:11                       ` joeyli
2019-01-11 15:53                       ` Jarkko Sakkinen
2019-01-11 15:53                         ` Jarkko Sakkinen
2019-01-09 18:34                     ` Andy Lutomirski
2019-01-09 18:34                       ` Andy Lutomirski
2019-01-09 19:46                       ` James Bottomley
2019-01-09 19:46                         ` James Bottomley
2019-01-09 20:12                         ` Andy Lutomirski
2019-01-09 20:12                           ` Andy Lutomirski
2019-01-09 21:43                           ` James Bottomley
2019-01-09 21:43                             ` James Bottomley
2019-01-09 22:19                             ` Pavel Machek
2019-01-09 22:19                               ` Pavel Machek
2019-01-11 16:04                       ` Jarkko Sakkinen
2019-01-11 16:04                         ` Jarkko Sakkinen
2019-01-11 14:02                   ` Jarkko Sakkinen
2019-01-11 14:02                     ` Jarkko Sakkinen
2019-01-11 15:28                     ` James Bottomley
2019-01-11 15:28                       ` James Bottomley
2019-01-18 14:33                       ` Jarkko Sakkinen
2019-01-18 14:33                         ` Jarkko Sakkinen
2019-01-18 20:59                         ` James Bottomley
2019-01-18 20:59                           ` James Bottomley
2019-01-20 16:02                           ` Jarkko Sakkinen
2019-01-20 16:02                             ` Jarkko Sakkinen
2019-01-09  6:45                 ` Stephan Mueller
2019-01-09  6:45                   ` Stephan Mueller
2019-01-09  6:58                   ` James Bottomley
2019-01-09  6:58                     ` James Bottomley
2019-01-09  7:05                     ` Stephan Mueller
2019-01-09  7:05                       ` Stephan Mueller
2019-01-09  8:21                       ` Eric Biggers
2019-01-09  8:21                         ` Eric Biggers
2019-01-09 10:17                         ` Stephan Mueller
2019-01-09 10:17                           ` Stephan Mueller
2019-01-09 17:34                           ` Eric Biggers
2019-01-09 17:34                             ` Eric Biggers
2019-01-09 18:18                             ` Stephan Mueller
2019-01-09 18:18                               ` Stephan Mueller
2019-01-11 19:08                         ` [PATCH 0/6] General Key Derivation Function Support Stephan Müller
2019-01-11 19:08                           ` Stephan Müller
2019-01-11 19:09                           ` [PATCH 1/6] crypto: add template handling for RNGs Stephan Müller
2019-01-11 19:09                             ` Stephan Müller
2019-01-11 19:10                           ` [PATCH 2/6] crypto: kdf - SP800-108 Key Derivation Function Stephan Müller
2019-01-11 19:10                             ` Stephan Müller
2019-01-12  5:27                             ` Eric Biggers
2019-01-12  5:27                               ` Eric Biggers
2019-01-14  9:31                               ` Stephan Müller
2019-01-14  9:31                                 ` Stephan Müller
2019-01-11 19:10                           ` [PATCH 3/6] crypto: kdf - add known answer tests Stephan Müller
2019-01-11 19:10                             ` Stephan Müller
2019-01-12  5:26                             ` Eric Biggers
2019-01-12  5:26                               ` Eric Biggers
2019-01-14  9:26                               ` Stephan Müller
2019-01-14  9:26                                 ` Stephan Müller
2019-01-11 19:10                           ` [PATCH 4/6] crypto: hkdf - RFC5869 Key Derivation Function Stephan Müller
2019-01-11 19:10                             ` Stephan Müller
2019-01-12  5:12                             ` Eric Biggers
2019-01-12  5:12                               ` Eric Biggers
2019-01-12  9:55                               ` Herbert Xu
2019-01-12  9:55                                 ` Herbert Xu
2019-01-13  7:56                                 ` Stephan Müller
2019-01-13  7:56                                   ` Stephan Müller
2019-01-13 16:52                                   ` James Bottomley
2019-01-13 16:52                                     ` James Bottomley
2019-01-14  9:30                               ` Stephan Müller
2019-01-14  9:30                                 ` Stephan Müller
2019-01-14 17:53                                 ` Eric Biggers
2019-01-14 17:53                                   ` Eric Biggers
2019-01-14 18:44                                   ` Stephan Mueller
2019-01-14 18:44                                     ` Stephan Mueller
2019-01-11 19:10                           ` [PATCH 5/6] crypto: hkdf - add known answer tests Stephan Müller
2019-01-11 19:10                             ` Stephan Müller
2019-01-12  5:19                             ` Eric Biggers
2019-01-12  5:19                               ` Eric Biggers
2019-01-14  9:25                               ` Stephan Müller
2019-01-14  9:25                                 ` Stephan Müller
2019-01-14 17:44                                 ` Eric Biggers [this message]
2019-01-14 17:44                                   ` Eric Biggers
2019-01-11 19:11                           ` [PATCH 6/6] crypto: tcrypt - add KDF test invocation Stephan Müller
2019-01-11 19:11                             ` Stephan Müller
2019-01-16 11:06                           ` [PATCH v2 0/6] General Key Derivation Function Support Stephan Müller
2019-01-16 11:06                             ` Stephan Müller
2019-01-16 11:07                             ` [PATCH v2 1/6] crypto: add template handling for RNGs Stephan Müller
2019-01-16 11:07                               ` Stephan Müller
2019-01-16 11:08                             ` [PATCH v2 2/6] crypto: kdf - SP800-108 Key Derivation Function Stephan Müller
2019-01-16 11:08                               ` Stephan Müller
2019-01-16 11:08                             ` [PATCH v2 3/6] crypto: kdf - add known answer tests Stephan Müller
2019-01-16 11:08                               ` Stephan Müller
2019-01-16 11:08                             ` [PATCH v2 4/6] crypto: hkdf - HMAC-based Extract-and-Expand KDF Stephan Müller
2019-01-16 11:08                               ` Stephan Müller
2019-01-16 11:09                             ` [PATCH v2 5/6] crypto: hkdf - add known answer tests Stephan Müller
2019-01-16 11:09                               ` Stephan Müller
2019-01-16 11:09                             ` [PATCH v2 6/6] crypto: tcrypt - add KDF test invocation Stephan Müller
2019-01-16 11:09                               ` Stephan Müller
2019-01-28 10:07                             ` [PATCH v2 0/6] General Key Derivation Function Support Stephan Mueller
2019-01-28 10:07                               ` Stephan Mueller
2019-01-30 10:08                               ` Herbert Xu
2019-01-30 10:08                                 ` Herbert Xu
2019-01-30 14:39                                 ` Stephan Mueller
2019-01-30 14:39                                   ` Stephan Mueller
2019-02-08  7:45                                   ` Herbert Xu
2019-02-08  7:45                                     ` Herbert Xu
2019-02-08  8:00                                     ` Stephan Mueller
2019-02-08  8:00                                       ` Stephan Mueller
2019-02-08  8:05                                       ` Herbert Xu
2019-02-08  8:05                                         ` Herbert Xu
2019-02-08  8:17                                         ` Stephan Mueller
2019-02-08  8:17                                           ` Stephan Mueller
2019-02-19  5:44                                           ` Herbert Xu
2019-02-19  5:44                                             ` Herbert Xu
2019-01-09 15:34                       ` [PATCH 1/5 v2] PM / hibernate: Create snapshot keys handler James Bottomley
2019-01-09 15:34                         ` James Bottomley
2019-01-09  6:27               ` Stephan Mueller
2019-01-09  6:27                 ` Stephan Mueller
2019-01-03 14:32 ` [PATCH 2/5] PM / hibernate: Generate and verify signature for snapshot image Lee, Chun-Yi
2019-01-03 14:32   ` Lee, Chun-Yi
2019-01-06  8:09   ` Stephan Mueller
2019-01-06  8:09     ` Stephan Mueller
2019-01-07 18:58   ` Dan Carpenter
2019-01-07 18:58     ` Dan Carpenter
2019-01-03 14:32 ` [PATCH 3/5] PM / hibernate: Encrypt " Lee, Chun-Yi
2019-01-03 14:32   ` Lee, Chun-Yi
2019-01-06  8:23   ` Stephan Mueller
2019-01-06  8:23     ` Stephan Mueller
2019-01-03 14:32 ` [PATCH 4/5 v2] PM / hibernate: Erase the snapshot master key in snapshot pages Lee, Chun-Yi
2019-01-03 14:32   ` Lee, Chun-Yi
2019-01-03 14:32 ` [PATCH 5/5 v2] PM / hibernate: An option to request that snapshot image must be authenticated Lee, Chun-Yi
2019-01-03 14:32   ` Lee, Chun-Yi
2019-01-06 18:10 ` [PATCH 0/5 v2][RFC] Encryption and authentication for hibernate snapshot image Pavel Machek
2019-01-06 18:10   ` Pavel Machek
2019-01-07 17:37   ` joeyli
2019-01-07 17:37     ` joeyli
2019-01-07 18:07     ` Pavel Machek
2019-01-07 18:07       ` Pavel Machek
2019-01-08 21:41     ` Andy Lutomirski
2019-01-08 21:41       ` Andy Lutomirski
2019-01-08 23:42       ` Pavel Machek
2019-01-08 23:42         ` Pavel Machek
2019-01-09 16:39       ` joeyli
2019-01-09 16:39         ` joeyli
2019-01-09 16:47         ` Stephan Mueller
2019-01-09 16:47           ` Stephan Mueller
2019-01-11 14:29           ` joeyli
2019-01-11 14:29             ` joeyli
2019-01-09 16:51         ` joeyli
2019-01-09 16:51           ` joeyli
2019-01-09 18:47         ` Andy Lutomirski
2019-01-09 18:47           ` Andy Lutomirski
2019-01-10 15:12           ` joeyli
2019-01-10 15:12             ` joeyli
2019-01-11  1:09             ` Andy Lutomirski
2019-01-11  1:09               ` Andy Lutomirski
2019-01-11 14:59               ` joeyli
2019-01-11 14:59                 ` joeyli

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=20190114174415.GA7644@gmail.com \
    --to=ebiggers@kernel.org \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=dhowells@redhat.com \
    --cc=ggherdovich@suse.cz \
    --cc=herbert@gondor.apana.org.au \
    --cc=jannh@google.com \
    --cc=joeyli.kernel@gmail.com \
    --cc=keyrings@vger.kernel.org \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=luto@kernel.org \
    --cc=oneukum@suse.com \
    --cc=pavel@ucw.cz \
    --cc=rafael.j.wysocki@intel.com \
    --cc=rdunlap@infradead.org \
    --cc=rjw@rjwysocki.net \
    --cc=smueller@chronox.de \
    --cc=yu.c.chen@intel.com \
    --cc=yu.chen.surf@gmail.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.