mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2025-01-09 03:15:40 +00:00
Merge pull request #3820 from shelib01/regularize_k_restore
Restore tinycrypt implementation of regularize_k()
This commit is contained in:
commit
938d4d3fa3
|
@ -1610,10 +1610,20 @@ static void EccPoint_mult(uECC_word_t * result, const uECC_word_t * point,
|
||||||
static uECC_word_t regularize_k(const uECC_word_t * const k, uECC_word_t *k0,
|
static uECC_word_t regularize_k(const uECC_word_t * const k, uECC_word_t *k0,
|
||||||
uECC_word_t *k1)
|
uECC_word_t *k1)
|
||||||
{
|
{
|
||||||
|
wordcount_t num_n_words = NUM_ECC_WORDS;
|
||||||
bitcount_t num_n_bits = NUM_ECC_BITS;
|
bitcount_t num_n_bits = NUM_ECC_BITS;
|
||||||
|
|
||||||
|
/* With our constant NUM_ECC_BITS and NUM_ECC_WORDS the
|
||||||
|
* check (num_n_bits < ((bitcount_t)num_n_words * uECC_WORD_SIZE * 8) always would have "false" result (256 < 256),
|
||||||
|
* therefore Coverity warning may be detected. Removing of this line without changing the entire check will cause to
|
||||||
|
* array overrun.
|
||||||
|
* The entire check is not changed on purpose to be aligned with original tinycrypt
|
||||||
|
* implementation and to allow upstreaming to other curves if required.
|
||||||
|
* Coverity specific annotation may be added to silence warning if exists.
|
||||||
|
*/
|
||||||
uECC_word_t carry = uECC_vli_add(k0, k, curve_n) ||
|
uECC_word_t carry = uECC_vli_add(k0, k, curve_n) ||
|
||||||
uECC_vli_testBit(k0, num_n_bits);
|
(num_n_bits < ((bitcount_t)num_n_words * uECC_WORD_SIZE * 8) &&
|
||||||
|
uECC_vli_testBit(k0, num_n_bits));
|
||||||
|
|
||||||
uECC_vli_add(k1, k0, curve_n);
|
uECC_vli_add(k1, k0, curve_n);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue