Remove less-safe mult function from public API
This doesn't change code size, but makes it easier to remove unneeded parameters later (less possible entry points).
This commit is contained in:
parent
ef238283d5
commit
27926d63b7
2 changed files with 2 additions and 29 deletions
|
@ -282,33 +282,6 @@ int uECC_compute_public_key(const uint8_t *private_key,
|
||||||
uECC_word_t EccPoint_compute_public_key(uECC_word_t *result,
|
uECC_word_t EccPoint_compute_public_key(uECC_word_t *result,
|
||||||
uECC_word_t *private_key, uECC_Curve curve);
|
uECC_word_t *private_key, uECC_Curve curve);
|
||||||
|
|
||||||
/*
|
|
||||||
* @brief Regularize the bitcount for the private key so that attackers cannot
|
|
||||||
* use a side channel attack to learn the number of leading zeros.
|
|
||||||
* @return Regularized k
|
|
||||||
* @param k IN -- private-key
|
|
||||||
* @param k0 IN/OUT -- regularized k
|
|
||||||
* @param k1 IN/OUT -- regularized k
|
|
||||||
* @param curve IN -- elliptic curve
|
|
||||||
*/
|
|
||||||
uECC_word_t regularize_k(const uECC_word_t * const k, uECC_word_t *k0,
|
|
||||||
uECC_word_t *k1, uECC_Curve curve);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @brief Point multiplication algorithm using Montgomery's ladder with co-Z
|
|
||||||
* coordinates. See http://eprint.iacr.org/2011/338.pdf.
|
|
||||||
* @note Result may overlap point.
|
|
||||||
* @param result OUT -- returns scalar*point
|
|
||||||
* @param point IN -- elliptic curve point
|
|
||||||
* @param scalar IN -- scalar
|
|
||||||
* @param initial_Z IN -- initial value for z
|
|
||||||
* @param num_bits IN -- number of bits in scalar
|
|
||||||
* @param curve IN -- elliptic curve
|
|
||||||
*/
|
|
||||||
void EccPoint_mult(uECC_word_t * result, const uECC_word_t * point,
|
|
||||||
const uECC_word_t * scalar, const uECC_word_t * initial_Z,
|
|
||||||
bitcount_t num_bits, uECC_Curve curve);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @brief Point multiplication algorithm using Montgomery's ladder with co-Z
|
* @brief Point multiplication algorithm using Montgomery's ladder with co-Z
|
||||||
* coordinates. See http://eprint.iacr.org/2011/338.pdf.
|
* coordinates. See http://eprint.iacr.org/2011/338.pdf.
|
||||||
|
|
|
@ -871,7 +871,7 @@ static void XYcZ_addC_rnd(uECC_word_t * X1, uECC_word_t * Y1,
|
||||||
uECC_vli_set(X1, t7, num_words);
|
uECC_vli_set(X1, t7, num_words);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EccPoint_mult(uECC_word_t * result, const uECC_word_t * point,
|
static void EccPoint_mult(uECC_word_t * result, const uECC_word_t * point,
|
||||||
const uECC_word_t * scalar,
|
const uECC_word_t * scalar,
|
||||||
const uECC_word_t * initial_Z,
|
const uECC_word_t * initial_Z,
|
||||||
bitcount_t num_bits, uECC_Curve curve)
|
bitcount_t num_bits, uECC_Curve curve)
|
||||||
|
@ -920,7 +920,7 @@ void EccPoint_mult(uECC_word_t * result, const uECC_word_t * point,
|
||||||
uECC_vli_set(result + num_words, Ry[0], num_words);
|
uECC_vli_set(result + num_words, Ry[0], num_words);
|
||||||
}
|
}
|
||||||
|
|
||||||
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_Curve curve)
|
uECC_word_t *k1, uECC_Curve curve)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue