ec_curves.c File Reference

Elliptic curves. More...

#include "core/crypto.h"
#include "ecc/ec.h"
#include "ecc/ec_curves.h"
#include "ecc/ec_misc.h"
#include "encoding/oid.h"
#include "debug.h"

Go to the source code of this file.

Macros

#define TRACE_LEVEL   CRYPTO_TRACE_LEVEL
 

Functions

void secp112r1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (secp112r1 curve) More...
 
void secp112r1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (secp112r1 curve) More...
 
void secp112r2FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (secp112r2 curve) More...
 
void secp112r2ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (secp112r2 curve) More...
 
void secp128r1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (secp128r1 curve) More...
 
void secp128r1FieldInv (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular inversion (secp128r1 curve) More...
 
void secp128r1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (secp128r1 curve) More...
 
void secp128r2FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (secp128r2 curve) More...
 
void secp128r2FieldInv (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular inversion (secp128r2 curve) More...
 
void secp128r2ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (secp128r2 curve) More...
 
void secp160k1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (secp160k1 curve) More...
 
void secp160k1FieldInv (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular inversion (secp160k1 curve) More...
 
void secp160k1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (secp160k1 curve) More...
 
void secp160r1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (secp160r1 curve) More...
 
void secp160r1FieldInv (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular inversion (secp160r1 curve) More...
 
void secp160r1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (secp160r1 curve) More...
 
void secp160r2FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (secp160r2 curve) More...
 
void secp160r2FieldInv (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular inversion (secp160r2 curve) More...
 
void secp160r2ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (secp160r2 curve) More...
 
void secp192k1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (secp192k1 curve) More...
 
void secp192k1FieldInv (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular inversion (secp192k1 curve) More...
 
void secp192k1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (secp192k1 curve) More...
 
void secp192r1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (secp192r1 curve) More...
 
void secp192r1FieldInv (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular inversion (secp192r1 curve) More...
 
void secp192r1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (secp192r1 curve) More...
 
void secp224k1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (secp224k1 curve) More...
 
void secp224k1FieldInv (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular inversion (secp224k1 curve) More...
 
void secp224k1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (secp224k1 curve) More...
 
void secp224r1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (secp224r1 curve) More...
 
void secp224r1FieldInv (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular inversion (secp224r1 curve) More...
 
void secp224r1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (secp224r1 curve) More...
 
void secp256k1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (secp256k1 curve) More...
 
void secp256k1FieldInv (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular inversion (secp256k1 curve) More...
 
void secp256k1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (secp256k1 curve) More...
 
void secp256r1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (secp256r1 curve) More...
 
void secp256r1FieldInv (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular inversion (secp256r1 curve) More...
 
void secp256r1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (secp256r1 curve) More...
 
void secp256r1ScalarInv (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular inversion (secp256r1 curve) More...
 
void secp384r1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (secp384r1 curve) More...
 
void secp384r1FieldInv (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular inversion (secp384r1 curve) More...
 
void secp384r1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (secp384r1 curve) More...
 
void secp384r1ScalarInv (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular inversion (secp384r1 curve) More...
 
void secp521r1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (secp521r1 curve) More...
 
void secp521r1FieldInv (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular inversion (secp521r1 curve) More...
 
void secp521r1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (secp521r1 curve) More...
 
void secp521r1ScalarInv (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular inversion (secp521r1 curve) More...
 
void brainpoolP160r1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (brainpoolP160r1 curve) More...
 
void brainpoolP160r1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (brainpoolP160r1 curve) More...
 
void brainpoolP160t1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (brainpoolP160t1 curve) More...
 
void brainpoolP160t1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (brainpoolP160t1 curve) More...
 
void brainpoolP192r1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (brainpoolP192r1 curve) More...
 
void brainpoolP192r1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (brainpoolP192r1 curve) More...
 
void brainpoolP192t1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (brainpoolP192t1 curve) More...
 
void brainpoolP192t1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (brainpoolP192t1 curve) More...
 
void brainpoolP224r1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (brainpoolP224r1 curve) More...
 
void brainpoolP224r1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (brainpoolP224r1 curve) More...
 
void brainpoolP224t1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (brainpoolP224t1 curve) More...
 
void brainpoolP224t1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (brainpoolP224t1 curve) More...
 
void brainpoolP256r1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (brainpoolP256r1 curve) More...
 
void brainpoolP256r1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (brainpoolP256r1 curve) More...
 
void brainpoolP256t1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (brainpoolP256t1 curve) More...
 
void brainpoolP256t1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (brainpoolP256t1 curve) More...
 
void brainpoolP320r1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (brainpoolP320r1 curve) More...
 
void brainpoolP320r1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (brainpoolP320r1 curve) More...
 
void brainpoolP320t1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (brainpoolP320t1 curve) More...
 
void brainpoolP320t1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (brainpoolP320t1 curve) More...
 
void brainpoolP384r1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (brainpoolP384r1 curve) More...
 
void brainpoolP384r1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (brainpoolP384r1 curve) More...
 
void brainpoolP384t1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (brainpoolP384t1 curve) More...
 
void brainpoolP384t1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (brainpoolP384t1 curve) More...
 
void brainpoolP512r1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (brainpoolP512r1 curve) More...
 
void brainpoolP512r1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (brainpoolP512r1 curve) More...
 
void brainpoolP512t1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (brainpoolP512t1 curve) More...
 
void brainpoolP512t1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (brainpoolP512t1 curve) More...
 
void frp256v1FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (FRP256v1 curve) More...
 
void frp256v1ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (FRP256v1 curve) More...
 
void sm2FieldMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular reduction (SM2 curve) More...
 
void sm2FieldInv (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Field modular inversion (SM2 curve) More...
 
void sm2ScalarMod (const EcCurve *curve, uint32_t *r, const uint32_t *a)
 Scalar modular reduction (SM2 curve) More...
 
const EcCurveecGetCurve (const uint8_t *oid, size_t length)
 Get the elliptic curve that matches the specified OID. More...
 

Variables

const uint8_t SECP112R1_OID [5] = {0x2B, 0x81, 0x04, 0x00, 0x06}
 
const uint8_t SECP112R2_OID [5] = {0x2B, 0x81, 0x04, 0x00, 0x07}
 
const uint8_t SECP128R1_OID [5] = {0x2B, 0x81, 0x04, 0x00, 0x1C}
 
const uint8_t SECP128R2_OID [5] = {0x2B, 0x81, 0x04, 0x00, 0x1D}
 
const uint8_t SECP160K1_OID [5] = {0x2B, 0x81, 0x04, 0x00, 0x09}
 
const uint8_t SECP160R1_OID [5] = {0x2B, 0x81, 0x04, 0x00, 0x08}
 
const uint8_t SECP160R2_OID [5] = {0x2B, 0x81, 0x04, 0x00, 0x1E}
 
const uint8_t SECP192K1_OID [5] = {0x2B, 0x81, 0x04, 0x00, 0x1F}
 
const uint8_t SECP192R1_OID [8] = {0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x01}
 
const uint8_t SECP224K1_OID [5] = {0x2B, 0x81, 0x04, 0x00, 0x20}
 
const uint8_t SECP224R1_OID [5] = {0x2B, 0x81, 0x04, 0x00, 0x21}
 
const uint8_t SECP256K1_OID [5] = {0x2B, 0x81, 0x04, 0x00, 0x0A}
 
const uint8_t SECP256R1_OID [8] = {0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07}
 
const uint8_t SECP384R1_OID [5] = {0x2B, 0x81, 0x04, 0x00, 0x22}
 
const uint8_t SECP521R1_OID [5] = {0x2B, 0x81, 0x04, 0x00, 0x23}
 
const uint8_t BRAINPOOLP160R1_OID [9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x01}
 
const uint8_t BRAINPOOLP160T1_OID [9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x02}
 
const uint8_t BRAINPOOLP192R1_OID [9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x03}
 
const uint8_t BRAINPOOLP192T1_OID [9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x04}
 
const uint8_t BRAINPOOLP224R1_OID [9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x05}
 
const uint8_t BRAINPOOLP224T1_OID [9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x06}
 
const uint8_t BRAINPOOLP256R1_OID [9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x07}
 
const uint8_t BRAINPOOLP256T1_OID [9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x08}
 
const uint8_t BRAINPOOLP320R1_OID [9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x09}
 
const uint8_t BRAINPOOLP320T1_OID [9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x0A}
 
const uint8_t BRAINPOOLP384R1_OID [9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x0B}
 
const uint8_t BRAINPOOLP384T1_OID [9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x0C}
 
const uint8_t BRAINPOOLP512R1_OID [9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x0D}
 
const uint8_t BRAINPOOLP512T1_OID [9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x0E}
 
const uint8_t FRP256V1_OID [10] = {0x2A, 0x81, 0x7A, 0x01, 0x81, 0x5F, 0x65, 0x82, 0x00, 0x01}
 
const uint8_t SM2_OID [8] = {0x2A, 0x81, 0x1C, 0xCF, 0x55, 0x01, 0x82, 0x2D}
 
const uint8_t X25519_OID [3] = {0x2B, 0x65, 0x6E}
 
const uint8_t X448_OID [3] = {0x2B, 0x65, 0x6F}
 
const uint8_t ED25519_OID [3] = {0x2B, 0x65, 0x70}
 
const uint8_t ED448_OID [3] = {0x2B, 0x65, 0x71}
 
const EcCurve secp112r1Curve
 secp112r1 elliptic curve More...
 
const EcCurve secp112r2Curve
 secp112r2 elliptic curve More...
 
const EcCurve secp128r1Curve
 secp128r1 elliptic curve More...
 
const EcCurve secp128r2Curve
 secp128r2 elliptic curve More...
 
const EcCurve secp160k1Curve
 secp160k1 elliptic curve More...
 
const EcCurve secp160r1Curve
 secp160r1 elliptic curve More...
 
const EcCurve secp160r2Curve
 secp160r2 elliptic curve More...
 
const EcCurve secp192k1Curve
 secp192k1 elliptic curve More...
 
const EcCurve secp192r1Curve
 secp192r1 elliptic curve More...
 
const EcCurve secp224k1Curve
 secp224k1 elliptic curve More...
 
const EcCurve secp224r1Curve
 secp224r1 elliptic curve More...
 
const EcCurve secp256k1Curve
 secp256k1 elliptic curve More...
 
const EcCurve secp256r1Curve
 secp256r1 elliptic curve More...
 
const EcCurve secp384r1Curve
 secp384r1 elliptic curve More...
 
const EcCurve secp521r1Curve
 secp521r1 elliptic curve More...
 
const EcCurve brainpoolP160r1Curve
 brainpoolP160r1 elliptic curve More...
 
const EcCurve brainpoolP160t1Curve
 brainpoolP160t1 elliptic curve More...
 
const EcCurve brainpoolP192r1Curve
 brainpoolP192r1 elliptic curve More...
 
const EcCurve brainpoolP192t1Curve
 brainpoolP192t1 elliptic curve More...
 
const EcCurve brainpoolP224r1Curve
 brainpoolP224r1 elliptic curve More...
 
const EcCurve brainpoolP224t1Curve
 brainpoolP224t1 elliptic curve More...
 
const EcCurve brainpoolP256r1Curve
 brainpoolP256r1 elliptic curve More...
 
const EcCurve brainpoolP256t1Curve
 brainpoolP256t1 elliptic curve More...
 
const EcCurve brainpoolP320r1Curve
 brainpoolP320r1 elliptic curve More...
 
const EcCurve brainpoolP320t1Curve
 brainpoolP320t1 elliptic curve More...
 
const EcCurve brainpoolP384r1Curve
 brainpoolP384r1 elliptic curve More...
 
const EcCurve brainpoolP384t1Curve
 brainpoolP384t1 elliptic curve More...
 
const EcCurve brainpoolP512r1Curve
 brainpoolP512r1 elliptic curve More...
 
const EcCurve brainpoolP512t1Curve
 brainpoolP512t1 elliptic curve More...
 
const EcCurve frp256v1Curve
 FRP256v1 elliptic curve. More...
 
const EcCurve sm2Curve
 SM2 elliptic curve. More...
 
const EcCurve x25519Curve
 Curve25519 elliptic curve. More...
 
const EcCurve x448Curve
 Curve448 elliptic curve. More...
 
const EcCurve ed25519Curve
 Ed25519 elliptic curve. More...
 
const EcCurve ed448Curve
 Ed448 elliptic curve. More...
 

Detailed Description

Elliptic curves.

License

SPDX-License-Identifier: GPL-2.0-or-later

Copyright (C) 2010-2025 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.

Author
Oryx Embedded SARL (www.oryx-embedded.com)
Version
2.5.0

Definition in file ec_curves.c.

Macro Definition Documentation

◆ TRACE_LEVEL

#define TRACE_LEVEL   CRYPTO_TRACE_LEVEL

Definition at line 32 of file ec_curves.c.

Function Documentation

◆ brainpoolP160r1FieldMod()

void brainpoolP160r1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (brainpoolP160r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 4742 of file ec_curves.c.

◆ brainpoolP160r1ScalarMod()

void brainpoolP160r1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (brainpoolP160r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 4773 of file ec_curves.c.

◆ brainpoolP160t1FieldMod()

void brainpoolP160t1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (brainpoolP160t1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 4806 of file ec_curves.c.

◆ brainpoolP160t1ScalarMod()

void brainpoolP160t1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (brainpoolP160t1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 4837 of file ec_curves.c.

◆ brainpoolP192r1FieldMod()

void brainpoolP192r1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (brainpoolP192r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 4870 of file ec_curves.c.

◆ brainpoolP192r1ScalarMod()

void brainpoolP192r1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (brainpoolP192r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 4901 of file ec_curves.c.

◆ brainpoolP192t1FieldMod()

void brainpoolP192t1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (brainpoolP192t1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 4934 of file ec_curves.c.

◆ brainpoolP192t1ScalarMod()

void brainpoolP192t1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (brainpoolP192t1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 4965 of file ec_curves.c.

◆ brainpoolP224r1FieldMod()

void brainpoolP224r1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (brainpoolP224r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 4998 of file ec_curves.c.

◆ brainpoolP224r1ScalarMod()

void brainpoolP224r1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (brainpoolP224r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 5029 of file ec_curves.c.

◆ brainpoolP224t1FieldMod()

void brainpoolP224t1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (brainpoolP224t1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 5062 of file ec_curves.c.

◆ brainpoolP224t1ScalarMod()

void brainpoolP224t1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (brainpoolP224t1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 5093 of file ec_curves.c.

◆ brainpoolP256r1FieldMod()

void brainpoolP256r1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (brainpoolP256r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 5126 of file ec_curves.c.

◆ brainpoolP256r1ScalarMod()

void brainpoolP256r1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (brainpoolP256r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 5157 of file ec_curves.c.

◆ brainpoolP256t1FieldMod()

void brainpoolP256t1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (brainpoolP256t1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 5190 of file ec_curves.c.

◆ brainpoolP256t1ScalarMod()

void brainpoolP256t1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (brainpoolP256t1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 5221 of file ec_curves.c.

◆ brainpoolP320r1FieldMod()

void brainpoolP320r1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (brainpoolP320r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 5254 of file ec_curves.c.

◆ brainpoolP320r1ScalarMod()

void brainpoolP320r1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (brainpoolP320r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 5285 of file ec_curves.c.

◆ brainpoolP320t1FieldMod()

void brainpoolP320t1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (brainpoolP320t1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 5318 of file ec_curves.c.

◆ brainpoolP320t1ScalarMod()

void brainpoolP320t1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (brainpoolP320t1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 5349 of file ec_curves.c.

◆ brainpoolP384r1FieldMod()

void brainpoolP384r1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (brainpoolP384r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 5382 of file ec_curves.c.

◆ brainpoolP384r1ScalarMod()

void brainpoolP384r1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (brainpoolP384r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 5413 of file ec_curves.c.

◆ brainpoolP384t1FieldMod()

void brainpoolP384t1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (brainpoolP384t1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 5446 of file ec_curves.c.

◆ brainpoolP384t1ScalarMod()

void brainpoolP384t1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (brainpoolP384t1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 5477 of file ec_curves.c.

◆ brainpoolP512r1FieldMod()

void brainpoolP512r1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (brainpoolP512r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 5510 of file ec_curves.c.

◆ brainpoolP512r1ScalarMod()

void brainpoolP512r1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (brainpoolP512r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 5541 of file ec_curves.c.

◆ brainpoolP512t1FieldMod()

void brainpoolP512t1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (brainpoolP512t1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 5574 of file ec_curves.c.

◆ brainpoolP512t1ScalarMod()

void brainpoolP512t1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (brainpoolP512t1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 5605 of file ec_curves.c.

◆ ecGetCurve()

const EcCurve* ecGetCurve ( const uint8_t *  oid,
size_t  length 
)

Get the elliptic curve that matches the specified OID.

Parameters
[in]oidObject identifier
[in]lengthOID length
Returns
Elliptic curve parameters

Definition at line 5888 of file ec_curves.c.

◆ frp256v1FieldMod()

void frp256v1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (FRP256v1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 5638 of file ec_curves.c.

◆ frp256v1ScalarMod()

void frp256v1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (FRP256v1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 5669 of file ec_curves.c.

◆ secp112r1FieldMod()

void secp112r1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (secp112r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 2071 of file ec_curves.c.

◆ secp112r1ScalarMod()

void secp112r1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (secp112r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 2115 of file ec_curves.c.

◆ secp112r2FieldMod()

void secp112r2FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (secp112r2 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 2148 of file ec_curves.c.

◆ secp112r2ScalarMod()

void secp112r2ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (secp112r2 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 2192 of file ec_curves.c.

◆ secp128r1FieldInv()

void secp128r1FieldInv ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular inversion (secp128r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A^-1 mod p
[in]aAn integer such as 0 <= A < p

Definition at line 2299 of file ec_curves.c.

◆ secp128r1FieldMod()

void secp128r1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (secp128r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 2235 of file ec_curves.c.

◆ secp128r1ScalarMod()

void secp128r1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (secp128r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 2348 of file ec_curves.c.

◆ secp128r2FieldInv()

void secp128r2FieldInv ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular inversion (secp128r2 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A^-1 mod p
[in]aAn integer such as 0 <= A < p

Definition at line 2445 of file ec_curves.c.

◆ secp128r2FieldMod()

void secp128r2FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (secp128r2 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 2381 of file ec_curves.c.

◆ secp128r2ScalarMod()

void secp128r2ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (secp128r2 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 2494 of file ec_curves.c.

◆ secp160k1FieldInv()

void secp160k1FieldInv ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular inversion (secp160k1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A^-1 mod p
[in]aAn integer such as 0 <= A < p

Definition at line 2604 of file ec_curves.c.

◆ secp160k1FieldMod()

void secp160k1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (secp160k1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 2537 of file ec_curves.c.

◆ secp160k1ScalarMod()

void secp160k1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (secp160k1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 2666 of file ec_curves.c.

◆ secp160r1FieldInv()

void secp160r1FieldInv ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular inversion (secp160r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A^-1 mod p
[in]aAn integer such as 0 <= A < p

Definition at line 2775 of file ec_curves.c.

◆ secp160r1FieldMod()

void secp160r1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (secp160r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 2709 of file ec_curves.c.

◆ secp160r1ScalarMod()

void secp160r1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (secp160r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 2821 of file ec_curves.c.

◆ secp160r2FieldInv()

void secp160r2FieldInv ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular inversion (secp160r2 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A^-1 mod p
[in]aAn integer such as 0 <= A < p

Definition at line 2931 of file ec_curves.c.

◆ secp160r2FieldMod()

void secp160r2FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (secp160r2 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 2864 of file ec_curves.c.

◆ secp160r2ScalarMod()

void secp160r2ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (secp160r2 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 2993 of file ec_curves.c.

◆ secp192k1FieldInv()

void secp192k1FieldInv ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular inversion (secp192k1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A^-1 mod p
[in]aAn integer such as 0 <= A < p

Definition at line 3119 of file ec_curves.c.

◆ secp192k1FieldMod()

void secp192k1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (secp192k1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 3036 of file ec_curves.c.

◆ secp192k1ScalarMod()

void secp192k1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (secp192k1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 3177 of file ec_curves.c.

◆ secp192r1FieldInv()

void secp192r1FieldInv ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular inversion (secp192r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A^-1 mod p
[in]aAn integer such as 0 <= A < p

Definition at line 3286 of file ec_curves.c.

◆ secp192r1FieldMod()

void secp192r1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (secp192r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 3210 of file ec_curves.c.

◆ secp192r1ScalarMod()

void secp192r1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (secp192r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 3337 of file ec_curves.c.

◆ secp224k1FieldInv()

void secp224k1FieldInv ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular inversion (secp224k1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A^-1 mod p
[in]aAn integer such as 0 <= A < p

Definition at line 3463 of file ec_curves.c.

◆ secp224k1FieldMod()

void secp224k1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (secp224k1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 3370 of file ec_curves.c.

◆ secp224k1ScalarMod()

void secp224k1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (secp224k1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 3521 of file ec_curves.c.

◆ secp224r1FieldInv()

void secp224r1FieldInv ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular inversion (secp224r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A^-1 mod p
[in]aAn integer such as 0 <= A < p

Definition at line 3656 of file ec_curves.c.

◆ secp224r1FieldMod()

void secp224r1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (secp224r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 3564 of file ec_curves.c.

◆ secp224r1ScalarMod()

void secp224r1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (secp224r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 3713 of file ec_curves.c.

◆ secp256k1FieldInv()

void secp256k1FieldInv ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular inversion (secp256k1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A^-1 mod p
[in]aAn integer such as 0 <= A < p

Definition at line 3849 of file ec_curves.c.

◆ secp256k1FieldMod()

void secp256k1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (secp256k1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 3746 of file ec_curves.c.

◆ secp256k1ScalarMod()

void secp256k1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (secp256k1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 3901 of file ec_curves.c.

◆ secp256r1FieldInv()

void secp256r1FieldInv ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular inversion (secp256r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A^-1 mod p
[in]aAn integer such as 0 <= A < p

Definition at line 4036 of file ec_curves.c.

◆ secp256r1FieldMod()

void secp256r1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (secp256r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 3934 of file ec_curves.c.

◆ secp256r1ScalarInv()

void secp256r1ScalarInv ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular inversion (secp256r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A^-1 mod q
[in]aAn integer such as 0 <= A < q

Definition at line 4114 of file ec_curves.c.

◆ secp256r1ScalarMod()

void secp256r1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (secp256r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 4083 of file ec_curves.c.

◆ secp384r1FieldInv()

void secp384r1FieldInv ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular inversion (secp384r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A^-1 mod p
[in]aAn integer such as 0 <= A < p

Definition at line 4314 of file ec_curves.c.

◆ secp384r1FieldMod()

void secp384r1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (secp384r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 4172 of file ec_curves.c.

◆ secp384r1ScalarInv()

void secp384r1ScalarInv ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular inversion (secp384r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A^-1 mod q
[in]aAn integer such as 0 <= A < q

Definition at line 4401 of file ec_curves.c.

◆ secp384r1ScalarMod()

void secp384r1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (secp384r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 4370 of file ec_curves.c.

◆ secp521r1FieldInv()

void secp521r1FieldInv ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular inversion (secp521r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A^-1 mod p
[in]aAn integer such as 0 <= A < p

Definition at line 4596 of file ec_curves.c.

◆ secp521r1FieldMod()

void secp521r1FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (secp521r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 4457 of file ec_curves.c.

◆ secp521r1ScalarInv()

void secp521r1ScalarInv ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular inversion (secp521r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A^-1 mod q
[in]aAn integer such as 0 <= A < q

Definition at line 4680 of file ec_curves.c.

◆ secp521r1ScalarMod()

void secp521r1ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (secp521r1 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 4639 of file ec_curves.c.

◆ sm2FieldInv()

void sm2FieldInv ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular inversion (SM2 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A^-1 mod p
[in]aAn integer such as 0 <= A < p

Definition at line 5800 of file ec_curves.c.

◆ sm2FieldMod()

void sm2FieldMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Field modular reduction (SM2 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod p
[in]aAn integer such as 0 <= A < p^2

Definition at line 5702 of file ec_curves.c.

◆ sm2ScalarMod()

void sm2ScalarMod ( const EcCurve curve,
uint32_t *  r,
const uint32_t *  a 
)

Scalar modular reduction (SM2 curve)

Parameters
[in]curveElliptic curve parameters
[out]rResulting integer R = A mod q
[in]aAn integer such as 0 <= A < q^2

Definition at line 5855 of file ec_curves.c.

Variable Documentation

◆ BRAINPOOLP160R1_OID

const uint8_t BRAINPOOLP160R1_OID[9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x01}

Definition at line 76 of file ec_curves.c.

◆ brainpoolP160r1Curve

const EcCurve brainpoolP160r1Curve

brainpoolP160r1 elliptic curve

Definition at line 941 of file ec_curves.c.

◆ BRAINPOOLP160T1_OID

const uint8_t BRAINPOOLP160T1_OID[9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x02}

Definition at line 78 of file ec_curves.c.

◆ brainpoolP160t1Curve

const EcCurve brainpoolP160t1Curve

brainpoolP160t1 elliptic curve

Definition at line 994 of file ec_curves.c.

◆ BRAINPOOLP192R1_OID

const uint8_t BRAINPOOLP192R1_OID[9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x03}

Definition at line 80 of file ec_curves.c.

◆ brainpoolP192r1Curve

const EcCurve brainpoolP192r1Curve

brainpoolP192r1 elliptic curve

Definition at line 1047 of file ec_curves.c.

◆ BRAINPOOLP192T1_OID

const uint8_t BRAINPOOLP192T1_OID[9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x04}

Definition at line 82 of file ec_curves.c.

◆ brainpoolP192t1Curve

const EcCurve brainpoolP192t1Curve

brainpoolP192t1 elliptic curve

Definition at line 1100 of file ec_curves.c.

◆ BRAINPOOLP224R1_OID

const uint8_t BRAINPOOLP224R1_OID[9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x05}

Definition at line 84 of file ec_curves.c.

◆ brainpoolP224r1Curve

const EcCurve brainpoolP224r1Curve

brainpoolP224r1 elliptic curve

Definition at line 1153 of file ec_curves.c.

◆ BRAINPOOLP224T1_OID

const uint8_t BRAINPOOLP224T1_OID[9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x06}

Definition at line 86 of file ec_curves.c.

◆ brainpoolP224t1Curve

const EcCurve brainpoolP224t1Curve

brainpoolP224t1 elliptic curve

Definition at line 1206 of file ec_curves.c.

◆ BRAINPOOLP256R1_OID

const uint8_t BRAINPOOLP256R1_OID[9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x07}

Definition at line 88 of file ec_curves.c.

◆ brainpoolP256r1Curve

const EcCurve brainpoolP256r1Curve

brainpoolP256r1 elliptic curve

Definition at line 1259 of file ec_curves.c.

◆ BRAINPOOLP256T1_OID

const uint8_t BRAINPOOLP256T1_OID[9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x08}

Definition at line 90 of file ec_curves.c.

◆ brainpoolP256t1Curve

const EcCurve brainpoolP256t1Curve

brainpoolP256t1 elliptic curve

Definition at line 1314 of file ec_curves.c.

◆ BRAINPOOLP320R1_OID

const uint8_t BRAINPOOLP320R1_OID[9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x09}

Definition at line 92 of file ec_curves.c.

◆ brainpoolP320r1Curve

const EcCurve brainpoolP320r1Curve

brainpoolP320r1 elliptic curve

Definition at line 1369 of file ec_curves.c.

◆ BRAINPOOLP320T1_OID

const uint8_t BRAINPOOLP320T1_OID[9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x0A}

Definition at line 94 of file ec_curves.c.

◆ brainpoolP320t1Curve

const EcCurve brainpoolP320t1Curve

brainpoolP320t1 elliptic curve

Definition at line 1430 of file ec_curves.c.

◆ BRAINPOOLP384R1_OID

const uint8_t BRAINPOOLP384R1_OID[9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x0B}

Definition at line 96 of file ec_curves.c.

◆ brainpoolP384r1Curve

const EcCurve brainpoolP384r1Curve

brainpoolP384r1 elliptic curve

Definition at line 1491 of file ec_curves.c.

◆ BRAINPOOLP384T1_OID

const uint8_t BRAINPOOLP384T1_OID[9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x0C}

Definition at line 98 of file ec_curves.c.

◆ brainpoolP384t1Curve

const EcCurve brainpoolP384t1Curve

brainpoolP384t1 elliptic curve

Definition at line 1552 of file ec_curves.c.

◆ BRAINPOOLP512R1_OID

const uint8_t BRAINPOOLP512R1_OID[9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x0D}

Definition at line 100 of file ec_curves.c.

◆ brainpoolP512r1Curve

const EcCurve brainpoolP512r1Curve

brainpoolP512r1 elliptic curve

Definition at line 1613 of file ec_curves.c.

◆ BRAINPOOLP512T1_OID

const uint8_t BRAINPOOLP512T1_OID[9] = {0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x0E}

Definition at line 102 of file ec_curves.c.

◆ brainpoolP512t1Curve

const EcCurve brainpoolP512t1Curve

brainpoolP512t1 elliptic curve

Definition at line 1676 of file ec_curves.c.

◆ ED25519_OID

const uint8_t ED25519_OID[3] = {0x2B, 0x65, 0x70}

Definition at line 112 of file ec_curves.c.

◆ ed25519Curve

const EcCurve ed25519Curve

Ed25519 elliptic curve.

Definition at line 1957 of file ec_curves.c.

◆ ED448_OID

const uint8_t ED448_OID[3] = {0x2B, 0x65, 0x71}

Definition at line 114 of file ec_curves.c.

◆ ed448Curve

const EcCurve ed448Curve

Ed448 elliptic curve.

Definition at line 2010 of file ec_curves.c.

◆ FRP256V1_OID

const uint8_t FRP256V1_OID[10] = {0x2A, 0x81, 0x7A, 0x01, 0x81, 0x5F, 0x65, 0x82, 0x00, 0x01}

Definition at line 104 of file ec_curves.c.

◆ frp256v1Curve

const EcCurve frp256v1Curve

FRP256v1 elliptic curve.

Definition at line 1739 of file ec_curves.c.

◆ SECP112R1_OID

const uint8_t SECP112R1_OID[5] = {0x2B, 0x81, 0x04, 0x00, 0x06}

Definition at line 46 of file ec_curves.c.

◆ secp112r1Curve

const EcCurve secp112r1Curve

secp112r1 elliptic curve

Definition at line 123 of file ec_curves.c.

◆ SECP112R2_OID

const uint8_t SECP112R2_OID[5] = {0x2B, 0x81, 0x04, 0x00, 0x07}

Definition at line 48 of file ec_curves.c.

◆ secp112r2Curve

const EcCurve secp112r2Curve

secp112r2 elliptic curve

Definition at line 176 of file ec_curves.c.

◆ SECP128R1_OID

const uint8_t SECP128R1_OID[5] = {0x2B, 0x81, 0x04, 0x00, 0x1C}

Definition at line 50 of file ec_curves.c.

◆ secp128r1Curve

const EcCurve secp128r1Curve

secp128r1 elliptic curve

Definition at line 229 of file ec_curves.c.

◆ SECP128R2_OID

const uint8_t SECP128R2_OID[5] = {0x2B, 0x81, 0x04, 0x00, 0x1D}

Definition at line 52 of file ec_curves.c.

◆ secp128r2Curve

const EcCurve secp128r2Curve

secp128r2 elliptic curve

Definition at line 282 of file ec_curves.c.

◆ SECP160K1_OID

const uint8_t SECP160K1_OID[5] = {0x2B, 0x81, 0x04, 0x00, 0x09}

Definition at line 54 of file ec_curves.c.

◆ secp160k1Curve

const EcCurve secp160k1Curve

secp160k1 elliptic curve

Definition at line 335 of file ec_curves.c.

◆ SECP160R1_OID

const uint8_t SECP160R1_OID[5] = {0x2B, 0x81, 0x04, 0x00, 0x08}

Definition at line 56 of file ec_curves.c.

◆ secp160r1Curve

const EcCurve secp160r1Curve

secp160r1 elliptic curve

Definition at line 388 of file ec_curves.c.

◆ SECP160R2_OID

const uint8_t SECP160R2_OID[5] = {0x2B, 0x81, 0x04, 0x00, 0x1E}

Definition at line 58 of file ec_curves.c.

◆ secp160r2Curve

const EcCurve secp160r2Curve

secp160r2 elliptic curve

Definition at line 441 of file ec_curves.c.

◆ SECP192K1_OID

const uint8_t SECP192K1_OID[5] = {0x2B, 0x81, 0x04, 0x00, 0x1F}

Definition at line 60 of file ec_curves.c.

◆ secp192k1Curve

const EcCurve secp192k1Curve

secp192k1 elliptic curve

Definition at line 494 of file ec_curves.c.

◆ SECP192R1_OID

const uint8_t SECP192R1_OID[8] = {0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x01}

Definition at line 62 of file ec_curves.c.

◆ secp192r1Curve

const EcCurve secp192r1Curve

secp192r1 elliptic curve

Definition at line 547 of file ec_curves.c.

◆ SECP224K1_OID

const uint8_t SECP224K1_OID[5] = {0x2B, 0x81, 0x04, 0x00, 0x20}

Definition at line 64 of file ec_curves.c.

◆ secp224k1Curve

const EcCurve secp224k1Curve

secp224k1 elliptic curve

Definition at line 600 of file ec_curves.c.

◆ SECP224R1_OID

const uint8_t SECP224R1_OID[5] = {0x2B, 0x81, 0x04, 0x00, 0x21}

Definition at line 66 of file ec_curves.c.

◆ secp224r1Curve

const EcCurve secp224r1Curve

secp224r1 elliptic curve

Definition at line 653 of file ec_curves.c.

◆ SECP256K1_OID

const uint8_t SECP256K1_OID[5] = {0x2B, 0x81, 0x04, 0x00, 0x0A}

Definition at line 68 of file ec_curves.c.

◆ secp256k1Curve

const EcCurve secp256k1Curve

secp256k1 elliptic curve

Definition at line 706 of file ec_curves.c.

◆ SECP256R1_OID

const uint8_t SECP256R1_OID[8] = {0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07}

Definition at line 70 of file ec_curves.c.

◆ secp256r1Curve

const EcCurve secp256r1Curve

secp256r1 elliptic curve

Definition at line 760 of file ec_curves.c.

◆ SECP384R1_OID

const uint8_t SECP384R1_OID[5] = {0x2B, 0x81, 0x04, 0x00, 0x22}

Definition at line 72 of file ec_curves.c.

◆ secp384r1Curve

const EcCurve secp384r1Curve

secp384r1 elliptic curve

Definition at line 814 of file ec_curves.c.

◆ SECP521R1_OID

const uint8_t SECP521R1_OID[5] = {0x2B, 0x81, 0x04, 0x00, 0x23}

Definition at line 74 of file ec_curves.c.

◆ secp521r1Curve

const EcCurve secp521r1Curve

secp521r1 elliptic curve

Definition at line 874 of file ec_curves.c.

◆ SM2_OID

const uint8_t SM2_OID[8] = {0x2A, 0x81, 0x1C, 0xCF, 0x55, 0x01, 0x82, 0x2D}

Definition at line 106 of file ec_curves.c.

◆ sm2Curve

const EcCurve sm2Curve

SM2 elliptic curve.

Definition at line 1794 of file ec_curves.c.

◆ X25519_OID

const uint8_t X25519_OID[3] = {0x2B, 0x65, 0x6E}

Definition at line 108 of file ec_curves.c.

◆ x25519Curve

const EcCurve x25519Curve

Curve25519 elliptic curve.

Definition at line 1848 of file ec_curves.c.

◆ X448_OID

const uint8_t X448_OID[3] = {0x2B, 0x65, 0x6F}

Definition at line 110 of file ec_curves.c.

◆ x448Curve

const EcCurve x448Curve

Curve448 elliptic curve.

Definition at line 1901 of file ec_curves.c.