mirror of
https://salsa.debian.org/gnuk-team/gnuk/gnuk.git
synced 2024-09-21 03:10:08 +00:00
fix API for const qualifier and add modp256_shift
This commit is contained in:
parent
41272c2ab7
commit
89bc2ed0a3
@ -63,7 +63,7 @@ modp256_add (bn256 *X, const bn256 *A, const bn256 *B)
|
|||||||
* @brief X = (A - B) mod p256
|
* @brief X = (A - B) mod p256
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
modp256_sub (bn256 *X, bn256 *A, bn256 *B)
|
modp256_sub (bn256 *X, const bn256 *A, const bn256 *B)
|
||||||
{
|
{
|
||||||
int borrow;
|
int borrow;
|
||||||
|
|
||||||
@ -76,7 +76,7 @@ modp256_sub (bn256 *X, bn256 *A, bn256 *B)
|
|||||||
* @brief X = A mod p256
|
* @brief X = A mod p256
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
modp256_reduce (bn256 *X, bn512 *A)
|
modp256_reduce (bn256 *X, const bn512 *A)
|
||||||
{
|
{
|
||||||
bn256 tmp[1];
|
bn256 tmp[1];
|
||||||
|
|
||||||
@ -189,7 +189,7 @@ modp256_reduce (bn256 *X, bn512 *A)
|
|||||||
* @brief X = (A * B) mod p256
|
* @brief X = (A * B) mod p256
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
modp256_mul (bn256 *X, bn256 *A, bn256 *B)
|
modp256_mul (bn256 *X, const bn256 *A, const bn256 *B)
|
||||||
{
|
{
|
||||||
bn512 AB[1];
|
bn512 AB[1];
|
||||||
|
|
||||||
@ -201,7 +201,7 @@ modp256_mul (bn256 *X, bn256 *A, bn256 *B)
|
|||||||
* @brief X = A * A mod p256
|
* @brief X = A * A mod p256
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
modp256_sqr (bn256 *X, bn256 *A)
|
modp256_sqr (bn256 *X, const bn256 *A)
|
||||||
{
|
{
|
||||||
bn512 AA[1];
|
bn512 AA[1];
|
||||||
|
|
||||||
@ -266,3 +266,28 @@ modp256_inv (bn256 *C, const bn256 *a)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief X = (A << shift) mod p256
|
||||||
|
* @note shift <= 32
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
modp256_shift (bn256 *X, const bn256 *A, int shift)
|
||||||
|
{
|
||||||
|
int carry;
|
||||||
|
|
||||||
|
carry = bn256_shift (X, A, shift);
|
||||||
|
if (shift < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
while (carry)
|
||||||
|
{
|
||||||
|
int borrow;
|
||||||
|
|
||||||
|
borrow = bn256_sub (X, X, P256);
|
||||||
|
carry -= borrow;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bn256_is_ge (X, P256))
|
||||||
|
bn256_sub (X, X, P256);
|
||||||
|
}
|
||||||
|
@ -2,8 +2,9 @@ extern bn256 p256;
|
|||||||
#define P256 (&p256)
|
#define P256 (&p256)
|
||||||
|
|
||||||
void modp256_add (bn256 *X, const bn256 *A, const bn256 *B);
|
void modp256_add (bn256 *X, const bn256 *A, const bn256 *B);
|
||||||
void modp256_sub (bn256 *X, bn256 *A, bn256 *B);
|
void modp256_sub (bn256 *X, const bn256 *A, const bn256 *B);
|
||||||
void modp256_reduce (bn256 *X, bn512 *A);
|
void modp256_reduce (bn256 *X, const bn512 *A);
|
||||||
void modp256_mul (bn256 *X, bn256 *A, bn256 *B);
|
void modp256_mul (bn256 *X, const bn256 *A, const bn256 *B);
|
||||||
void modp256_sqr (bn256 *X, bn256 *A);
|
void modp256_sqr (bn256 *X, const bn256 *A);
|
||||||
void modp256_inv (bn256 *C, const bn256 *a);
|
void modp256_inv (bn256 *C, const bn256 *a);
|
||||||
|
void modp256_shift (bn256 *X, const bn256 *A, int shift);
|
||||||
|
Loading…
Reference in New Issue
Block a user