Commit Message

According to SP800-56A section 5.6.2.1, the public key to be processed
for the ECDH operation shall be checked for appropriateness. When the
public key is considered to be an ephemeral key, the partial validation
test as defined in SP800-56A section 5.6.2.3.4 can be applied.
The partial verification test requires the presence of the field
elements of a and b. For the implemented NIST curves, b is defined in
FIPS 186-4 appendix D.1.2. The element a is implicitly given with the
Weierstrass equation given in D.1.2 where a = p - 3.
Without the test, the NIST ACVP testing fails. After adding this check,
the NIST ACVP testing passes.
Signed-off-by: Stephan Mueller <smueller@chronox.de>
---
crypto/ecc.c | 42 +++++++++++++++++++++++++++++++++++++----
crypto/ecc_curve_defs.h | 22 +++++++++++++++++----
2 files changed, 56 insertions(+), 8 deletions(-)

Comments

On Mon, Jun 25, 2018 at 12:00:18PM +0200, Stephan Müller wrote:
> According to SP800-56A section 5.6.2.1, the public key to be processed> for the ECDH operation shall be checked for appropriateness. When the> public key is considered to be an ephemeral key, the partial validation> test as defined in SP800-56A section 5.6.2.3.4 can be applied.> > The partial verification test requires the presence of the field> elements of a and b. For the implemented NIST curves, b is defined in> FIPS 186-4 appendix D.1.2. The element a is implicitly given with the> Weierstrass equation given in D.1.2 where a = p - 3.> > Without the test, the NIST ACVP testing fails. After adding this check,> the NIST ACVP testing passes.> > Signed-off-by: Stephan Mueller <smueller@chronox.de>
Patch applied. Thanks.