Curve448 elliptic curve (constant-time implementation) More...
Go to the source code of this file.
Macros | |
#define | TRACE_LEVEL CRYPTO_TRACE_LEVEL |
Functions | |
void | curve448SetInt (uint32_t *a, uint32_t b) |
Set integer value. More... | |
void | curve448Add (uint32_t *r, const uint32_t *a, const uint32_t *b) |
Modular addition. More... | |
void | curve448AddInt (uint32_t *r, const uint32_t *a, uint32_t b) |
Modular addition. More... | |
void | curve448Sub (uint32_t *r, const uint32_t *a, const uint32_t *b) |
Modular subtraction. More... | |
void | curve448SubInt (uint32_t *r, const uint32_t *a, uint32_t b) |
Modular subtraction. More... | |
__weak_func void | curve448Mul (uint32_t *r, const uint32_t *a, const uint32_t *b) |
Modular multiplication. More... | |
void | curve448MulInt (uint32_t *r, const uint32_t *a, uint32_t b) |
Modular multiplication. More... | |
void | curve448Sqr (uint32_t *r, const uint32_t *a) |
Modular squaring. More... | |
void | curve448Pwr2 (uint32_t *r, const uint32_t *a, uint_t n) |
Raise an integer to power 2^n. More... | |
void | curve448Red (uint32_t *r, const uint32_t *a, uint32_t h) |
Modular reduction. More... | |
void | curve448Inv (uint32_t *r, const uint32_t *a) |
Modular multiplicative inverse. More... | |
uint32_t | curve448Sqrt (uint32_t *r, const uint32_t *a, const uint32_t *b) |
Compute the square root of (A / B) modulo p. More... | |
void | curve448Copy (uint32_t *a, const uint32_t *b) |
Copy an integer. More... | |
void | curve448Swap (uint32_t *a, uint32_t *b, uint32_t c) |
Conditional swap. More... | |
void | curve448Select (uint32_t *r, const uint32_t *a, const uint32_t *b, uint32_t c) |
Select an integer. More... | |
uint32_t | curve448Comp (const uint32_t *a, const uint32_t *b) |
Compare integers. More... | |
void | curve448Import (uint32_t *a, const uint8_t *data) |
Import an octet string. More... | |
void | curve448Export (uint32_t *a, uint8_t *data) |
Export an octet string. More... | |
Detailed Description
Curve448 elliptic curve (constant-time implementation)
License
SPDX-License-Identifier: GPL-2.0-or-later
Copyright (C) 2010-2024 Oryx Embedded SARL. All rights reserved.
This file is part of CycloneCRYPTO Open.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- Version
- 2.4.4
Definition in file curve448.c.
Macro Definition Documentation
◆ TRACE_LEVEL
#define TRACE_LEVEL CRYPTO_TRACE_LEVEL |
Definition at line 32 of file curve448.c.
Function Documentation
◆ curve448Add()
void curve448Add | ( | uint32_t * | r, |
const uint32_t * | a, | ||
const uint32_t * | b | ||
) |
Modular addition.
- Parameters
-
[out] r Resulting integer R = (A + B) mod p [in] a An integer such as 0 <= A < p [in] b An integer such as 0 <= B < p
Definition at line 72 of file curve448.c.
◆ curve448AddInt()
void curve448AddInt | ( | uint32_t * | r, |
const uint32_t * | a, | ||
uint32_t | b | ||
) |
Modular addition.
- Parameters
-
[out] r Resulting integer R = (A + B) mod p [in] a An integer such as 0 <= A < p [in] b An integer such as 0 <= B < (2^32 - 1)
Definition at line 98 of file curve448.c.
◆ curve448Comp()
uint32_t curve448Comp | ( | const uint32_t * | a, |
const uint32_t * | b | ||
) |
Compare integers.
- Parameters
-
[in] a Pointer to the first integer [in] b Pointer to the second integer
- Returns
- The function returns 0 if the A = B, else 1
Definition at line 599 of file curve448.c.
◆ curve448Copy()
void curve448Copy | ( | uint32_t * | a, |
const uint32_t * | b | ||
) |
Copy an integer.
- Parameters
-
[out] a Pointer to the destination integer [in] b Pointer to the source integer
Definition at line 527 of file curve448.c.
◆ curve448Export()
void curve448Export | ( | uint32_t * | a, |
uint8_t * | data | ||
) |
Export an octet string.
- Parameters
-
[in] a Pointer to the integer to be exported [out] data Octet string resulting from the conversion
Definition at line 646 of file curve448.c.
◆ curve448Import()
void curve448Import | ( | uint32_t * | a, |
const uint8_t * | data | ||
) |
Import an octet string.
- Parameters
-
[out] a Pointer to resulting integer [in] data Octet string to be converted
Definition at line 625 of file curve448.c.
◆ curve448Inv()
void curve448Inv | ( | uint32_t * | r, |
const uint32_t * | a | ||
) |
Modular multiplicative inverse.
- Parameters
-
[out] r Resulting integer R = A^-1 mod p [in] a An integer such as 0 <= A < p
Definition at line 402 of file curve448.c.
◆ curve448Mul()
__weak_func void curve448Mul | ( | uint32_t * | r, |
const uint32_t * | a, | ||
const uint32_t * | b | ||
) |
Modular multiplication.
- Parameters
-
[out] r Resulting integer R = (A * B) mod p [in] a An integer such as 0 <= A < p [in] b An integer such as 0 <= B < p
Definition at line 199 of file curve448.c.
◆ curve448MulInt()
void curve448MulInt | ( | uint32_t * | r, |
const uint32_t * | a, | ||
uint32_t | b | ||
) |
Modular multiplication.
- Parameters
-
[out] r Resulting integer R = (A * B) mod p [in] a An integer such as 0 <= A < p [in] b An integer such as 0 <= B < (2^32 - 1)
Definition at line 290 of file curve448.c.
◆ curve448Pwr2()
void curve448Pwr2 | ( | uint32_t * | r, |
const uint32_t * | a, | ||
uint_t | n | ||
) |
Raise an integer to power 2^n.
- Parameters
-
[out] r Resulting integer R = (A ^ (2^n)) mod p [in] a An integer such as 0 <= A < p [in] n An integer such as n >= 1
Definition at line 345 of file curve448.c.
◆ curve448Red()
void curve448Red | ( | uint32_t * | r, |
const uint32_t * | a, | ||
uint32_t | h | ||
) |
Modular reduction.
- Parameters
-
[out] r Resulting integer R = A mod p [in] a An integer such as 0 <= A < (2 * p) [in] h The highest term of A
Definition at line 367 of file curve448.c.
◆ curve448Select()
void curve448Select | ( | uint32_t * | r, |
const uint32_t * | a, | ||
const uint32_t * | b, | ||
uint32_t | c | ||
) |
Select an integer.
- Parameters
-
[out] r Pointer to the destination integer [in] a Pointer to the first source integer [in] b Pointer to the second source integer [in] c Condition variable
Definition at line 574 of file curve448.c.
◆ curve448SetInt()
void curve448SetInt | ( | uint32_t * | a, |
uint32_t | b | ||
) |
Set integer value.
- Parameters
-
[out] a Pointer to the integer to be initialized [in] b Initial value
Definition at line 50 of file curve448.c.
◆ curve448Sqr()
void curve448Sqr | ( | uint32_t * | r, |
const uint32_t * | a | ||
) |
Modular squaring.
- Parameters
-
[out] r Resulting integer R = (A ^ 2) mod p [in] a An integer such as 0 <= A < p
Definition at line 331 of file curve448.c.
◆ curve448Sqrt()
uint32_t curve448Sqrt | ( | uint32_t * | r, |
const uint32_t * | a, | ||
const uint32_t * | b | ||
) |
Compute the square root of (A / B) modulo p.
- Parameters
-
[out] r Resulting integer R = (A / B)^(1 / 2) mod p [in] a An integer such as 0 <= A < p [in] b An integer such as 0 < B < p
- Returns
- The function returns 0 if the square root exists, else 1
Definition at line 451 of file curve448.c.
◆ curve448Sub()
void curve448Sub | ( | uint32_t * | r, |
const uint32_t * | a, | ||
const uint32_t * | b | ||
) |
Modular subtraction.
- Parameters
-
[out] r Resulting integer R = (A - B) mod p [in] a An integer such as 0 <= A < p [in] b An integer such as 0 <= B < p
Definition at line 123 of file curve448.c.
◆ curve448SubInt()
void curve448SubInt | ( | uint32_t * | r, |
const uint32_t * | a, | ||
uint32_t | b | ||
) |
Modular subtraction.
- Parameters
-
[out] r Resulting integer R = (A - B) mod p [in] a An integer such as 0 <= A < p [in] b An integer such as 0 <= B < (2^32 - 1)
Definition at line 160 of file curve448.c.
◆ curve448Swap()
void curve448Swap | ( | uint32_t * | a, |
uint32_t * | b, | ||
uint32_t | c | ||
) |
Conditional swap.
- Parameters
-
[in,out] a Pointer to the first integer [in,out] b Pointer to the second integer [in] c Condition variable
Definition at line 546 of file curve448.c.