mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-03-28 08:37:25 +00:00
modp521: apply naming conventions
Apply the usual parameter name and align the local variables and comments. This naming diverges from the standard notation, but this is beneficial as our variable meanings diverge as well and the difference can help avoiding confusion. Signed-off-by: Janos Follath <janos.follath@arm.com> Signed-off-by: Gabor Mezei <gabor.mezei@arm.com>
This commit is contained in:
parent
755ff0e685
commit
666673e83f
@ -5211,36 +5211,39 @@ cleanup:
|
||||
}
|
||||
|
||||
MBEDTLS_STATIC_TESTABLE
|
||||
int mbedtls_ecp_mod_p521_raw(mbedtls_mpi_uint *N_p, size_t N_n)
|
||||
int mbedtls_ecp_mod_p521_raw(mbedtls_mpi_uint *X, size_t X_limbs)
|
||||
{
|
||||
mbedtls_mpi_uint carry = 0;
|
||||
|
||||
if (N_n > 2 * P521_WIDTH - 1) {
|
||||
N_n = 2 * P521_WIDTH - 1;
|
||||
if (X_limbs > 2 * P521_WIDTH - 1) {
|
||||
X_limbs = 2 * P521_WIDTH - 1;
|
||||
}
|
||||
if (N_n < P521_WIDTH) {
|
||||
if (X_limbs < P521_WIDTH) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (N_n > P521_WIDTH) {
|
||||
/* Helper references for top part of N */
|
||||
mbedtls_mpi_uint *NT_p = N_p + P521_WIDTH;
|
||||
size_t NT_n = N_n - P521_WIDTH;
|
||||
if (X_limbs > P521_WIDTH) {
|
||||
/* Helper references for bottom part of X */
|
||||
mbedtls_mpi_uint *X0 = X;
|
||||
size_t X0_limbs = P521_WIDTH;
|
||||
/* Helper references for top part of X */
|
||||
mbedtls_mpi_uint *X1 = X + X0_limbs;
|
||||
size_t X1_limbs = X_limbs - X0_limbs;
|
||||
|
||||
/* Split N as A0 + 2^(512 + biL) A1 and compute A0 + 2^(biL - 9) * A1.
|
||||
/* Split X as X0 + 2^(512 + biL) X1 and compute X0 + 2^(biL - 9) * X1.
|
||||
* This can be done in place. */
|
||||
mbedtls_mpi_uint shift = ((mbedtls_mpi_uint) 1u) << (biL - 9);
|
||||
carry = mbedtls_mpi_core_mla(N_p, P521_WIDTH, NT_p, NT_n, shift);
|
||||
carry = mbedtls_mpi_core_mla(X0, X0_limbs, X1, X1_limbs, shift);
|
||||
|
||||
/* Clear top part */
|
||||
memset(NT_p, 0, sizeof(mbedtls_mpi_uint) * NT_n);
|
||||
memset(X1, 0, X1_limbs * sizeof(mbedtls_mpi_uint));
|
||||
}
|
||||
|
||||
mbedtls_mpi_uint remainder[P521_WIDTH] = { 0 };
|
||||
remainder[0] = carry << (biL - 9);
|
||||
remainder[0] += (N_p[P521_WIDTH - 1] >> 9);
|
||||
N_p[P521_WIDTH - 1] &= P521_MASK;
|
||||
(void) mbedtls_mpi_core_add(N_p, N_p, remainder, P521_WIDTH);
|
||||
mbedtls_mpi_uint addend[P521_WIDTH] = { 0 };
|
||||
addend[0] = carry << (biL - 9);
|
||||
addend[0] += (X[P521_WIDTH - 1] >> 9);
|
||||
X[P521_WIDTH - 1] &= P521_MASK;
|
||||
(void) mbedtls_mpi_core_add(X, X, addend, P521_WIDTH);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user