diff options
Diffstat (limited to 'contrib/bearssl/src/ec/ec_prime_i15.c')
-rw-r--r-- | contrib/bearssl/src/ec/ec_prime_i15.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/contrib/bearssl/src/ec/ec_prime_i15.c b/contrib/bearssl/src/ec/ec_prime_i15.c index 0f210f240475..f86dbe6ff0db 100644 --- a/contrib/bearssl/src/ec/ec_prime_i15.c +++ b/contrib/bearssl/src/ec/ec_prime_i15.c @@ -733,11 +733,12 @@ api_mul(unsigned char *G, size_t Glen, jacobian P; cc = id_to_curve(curve); + if (Glen != cc->point_len) { + return 0; + } r = point_decode(&P, G, Glen, cc); point_mul(&P, x, xlen, cc); - if (Glen == cc->point_len) { - point_encode(G, &P, cc); - } + point_encode(G, &P, cc); return r; } @@ -770,6 +771,9 @@ api_muladd(unsigned char *A, const unsigned char *B, size_t len, */ cc = id_to_curve(curve); + if (len != cc->point_len) { + return 0; + } r = point_decode(&P, A, len, cc); if (B == NULL) { size_t Glen; |