The branch master has been updated via c7a47adca29e1ec761d639dd75336bb36ebf4a9b (commit) via 7876dbffcee9a53ac8a75e90c0443c1193edb580 (commit) from 6c61b2749634246956f8ec7adc9520e5d22dcbf4 (commit)
- Log ----------------------------------------------------------------- commit c7a47adca29e1ec761d639dd75336bb36ebf4a9b Author: Matt Caswell <m...@openssl.org> Date: Tue Feb 20 14:53:40 2018 +0000 Fix no-ec build [extended tests] Reviewed-by: Rich Salz <rs...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5418) commit 7876dbffcee9a53ac8a75e90c0443c1193edb580 Author: Matt Caswell <m...@openssl.org> Date: Tue Feb 20 14:53:06 2018 +0000 Fix some undefined behaviour in the Curve448 code We can't add NULL data into a hash Reviewed-by: Rich Salz <rs...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5418) ----------------------------------------------------------------------- Summary of changes: crypto/ec/curve448/eddsa.c | 9 ++++++--- test/build.info | 6 ++++-- test/recipes/03-test_internal_curve448.t | 3 +++ 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/crypto/ec/curve448/eddsa.c b/crypto/ec/curve448/eddsa.c index 7175715..d318876 100644 --- a/crypto/ec/curve448/eddsa.c +++ b/crypto/ec/curve448/eddsa.c @@ -63,7 +63,8 @@ static c448_error_t hash_init_with_dom(EVP_MD_CTX *hashctx, uint8_t prehashed, if (!EVP_DigestInit_ex(hashctx, EVP_shake256(), NULL) || !EVP_DigestUpdate(hashctx, dom_s, strlen(dom_s)) || !EVP_DigestUpdate(hashctx, dom, sizeof(dom)) - || !EVP_DigestUpdate(hashctx, context, context_len)) + || (context_len > 0 + && !EVP_DigestUpdate(hashctx, context, context_len))) return C448_FAILURE; return C448_SUCCESS; @@ -160,7 +161,8 @@ c448_error_t c448_ed448_sign( || !EVP_DigestUpdate(hashctx, expanded + EDDSA_448_PRIVATE_BYTES, EDDSA_448_PRIVATE_BYTES) - || !EVP_DigestUpdate(hashctx, message, message_len)) { + || (message_len > 0 + && !EVP_DigestUpdate(hashctx, message, message_len))) { OPENSSL_cleanse(expanded, sizeof(expanded)); goto err; } @@ -200,7 +202,8 @@ c448_error_t c448_ed448_sign( if (!hash_init_with_dom(hashctx, prehashed, 0, context, context_len) || !EVP_DigestUpdate(hashctx, nonce_point, sizeof(nonce_point)) || !EVP_DigestUpdate(hashctx, pubkey, EDDSA_448_PUBLIC_BYTES) - || !EVP_DigestUpdate(hashctx, message, message_len) + || (message_len > 0 + && !EVP_DigestUpdate(hashctx, message, message_len)) || !EVP_DigestFinalXOF(hashctx, challenge, sizeof(challenge))) goto err; diff --git a/test/build.info b/test/build.info index d8ea2f2..38fcf84 100644 --- a/test/build.info +++ b/test/build.info @@ -400,8 +400,7 @@ INCLUDE_MAIN___test_libtestutil_OLB = /INCLUDE=MAIN # names with the DLL import libraries. IF[{- $disabled{shared} || $target{build_scheme}->[1] ne 'windows' -}] PROGRAMS_NO_INST=asn1_internal_test modes_internal_test x509_internal_test \ - tls13encryptiontest wpackettest ctype_internal_test \ - curve448_internal_test + tls13encryptiontest wpackettest ctype_internal_test IF[{- !$disabled{poly1305} -}] PROGRAMS_NO_INST=poly1305_internal_test ENDIF @@ -414,6 +413,9 @@ INCLUDE_MAIN___test_libtestutil_OLB = /INCLUDE=MAIN IF[{- !$disabled{sm4} -}] PROGRAMS_NO_INST=sm4_internal_test ENDIF + IF[{- !$disabled{ec} -}] + PROGRAMS_NO_INST=curve448_internal_test + ENDIF SOURCE[poly1305_internal_test]=poly1305_internal_test.c INCLUDE[poly1305_internal_test]=.. ../include ../crypto/include diff --git a/test/recipes/03-test_internal_curve448.t b/test/recipes/03-test_internal_curve448.t index 1099d9e..44bac02 100644 --- a/test/recipes/03-test_internal_curve448.t +++ b/test/recipes/03-test_internal_curve448.t @@ -16,4 +16,7 @@ setup("test_internal_curve448"); plan skip_all => "This test is unsupported in a shared library build on Windows" if $^O eq 'MSWin32' && !disabled("shared"); +plan skip_all => "This test is unsupported in a no-ec build" + if disabled("ec"); + simple_test("test_internal_curve448", "curve448_internal_test"); _____ openssl-commits mailing list To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-commits