X-Git-Url: https://www.bearssl.org/gitweb//home/git/?p=BearSSL;a=blobdiff_plain;f=test%2Ftest_crypto.c;h=69b6f7d2b000c415710a5f0929e96b84eb0dc2fc;hp=b62ed3f3b7d72d836f4fabf3a144ca4f8331dc7b;hb=44c79c1add4cd4a217b1dd77c8421c1d3a08dcef;hpb=21743ae69e609ec7ec157eaf0b54cfe4866b7ef2 diff --git a/test/test_crypto.c b/test/test_crypto.c index b62ed3f..69b6f7d 100644 --- a/test/test_crypto.c +++ b/test/test_crypto.c @@ -4790,6 +4790,20 @@ test_EC_inner(const char *sk, const char *sU, exit(EXIT_FAILURE); } + /* + * Also recomputed D = z*G with mulgen(). This must + * again match. + */ + memset(eD, 0, ulen); + if (impl->mulgen(eD, bz, nlen, cd->curve) != ulen) { + fprintf(stderr, "mulgen() failed: wrong length\n"); + exit(EXIT_FAILURE); + } + if (memcmp(eC, eD, nlen) != 0) { + fprintf(stderr, "mulgen() / muladd() mismatch\n"); + exit(EXIT_FAILURE); + } + /* * Check with x*A = y*B. We do so by setting b = x and y = a. */