|
void | ecInitDomainParameters (EcDomainParameters *params) |
| Initialize EC domain parameters. More...
|
|
void | ecFreeDomainParameters (EcDomainParameters *params) |
| Release EC domain parameters. More...
|
|
error_t | ecLoadDomainParameters (EcDomainParameters *params, const EcCurveInfo *curveInfo) |
| Load EC domain parameters. More...
|
|
void | ecInitPublicKey (EcPublicKey *key) |
| Initialize an EC public key. More...
|
|
void | ecFreePublicKey (EcPublicKey *key) |
| Release an EC public key. More...
|
|
void | ecInitPrivateKey (EcPrivateKey *key) |
| Initialize an EC private key. More...
|
|
void | ecFreePrivateKey (EcPrivateKey *key) |
| Release an EdDSA private key. More...
|
|
__weak_func error_t | ecGenerateKeyPair (const PrngAlgo *prngAlgo, void *prngContext, const EcDomainParameters *params, EcPrivateKey *privateKey, EcPublicKey *publicKey) |
| EC key pair generation. More...
|
|
error_t | ecGeneratePrivateKey (const PrngAlgo *prngAlgo, void *prngContext, const EcDomainParameters *params, EcPrivateKey *privateKey) |
| EC private key generation. More...
|
|
error_t | ecGeneratePublicKey (const EcDomainParameters *params, const EcPrivateKey *privateKey, EcPublicKey *publicKey) |
| Derive the public key from an EC private key. More...
|
|
void | ecInit (EcPoint *r) |
| Initialize elliptic curve point. More...
|
|
void | ecFree (EcPoint *r) |
| Release an elliptic curve point. More...
|
|
error_t | ecCopy (EcPoint *r, const EcPoint *s) |
| Copy EC point. More...
|
|
error_t | ecImport (const EcDomainParameters *params, EcPoint *r, const uint8_t *data, size_t length) |
| Convert an octet string to an EC point. More...
|
|
error_t | ecExport (const EcDomainParameters *params, const EcPoint *a, uint8_t *data, size_t *length) |
| Convert an EC point to an octet string. More...
|
|
error_t | ecProjectify (const EcDomainParameters *params, EcPoint *r, const EcPoint *s) |
| Compute projective representation. More...
|
|
__weak_func error_t | ecAffinify (const EcDomainParameters *params, EcPoint *r, const EcPoint *s) |
| Recover affine representation. More...
|
|
__weak_func bool_t | ecIsPointAffine (const EcDomainParameters *params, const EcPoint *s) |
| Check whether the affine point S is on the curve. More...
|
|
error_t | ecDouble (const EcDomainParameters *params, EcPoint *r, const EcPoint *s) |
| Point doubling. More...
|
|
error_t | ecAdd (const EcDomainParameters *params, EcPoint *r, const EcPoint *s, const EcPoint *t) |
| Point addition (helper routine) More...
|
|
error_t | ecFullAdd (const EcDomainParameters *params, EcPoint *r, const EcPoint *s, const EcPoint *t) |
| Point addition. More...
|
|
error_t | ecFullSub (const EcDomainParameters *params, EcPoint *r, const EcPoint *s, const EcPoint *t) |
| Point subtraction. More...
|
|
__weak_func error_t | ecMult (const EcDomainParameters *params, EcPoint *r, const Mpi *d, const EcPoint *s) |
| Scalar multiplication. More...
|
|
uint_t | ecTwinMultF (uint_t t) |
| An auxiliary function for the twin multiplication. More...
|
|
__weak_func error_t | ecTwinMult (const EcDomainParameters *params, EcPoint *r, const Mpi *d0, const EcPoint *s, const Mpi *d1, const EcPoint *t) |
| Twin multiplication. More...
|
|
__weak_func error_t | ecAddMod (const EcDomainParameters *params, Mpi *r, const Mpi *a, const Mpi *b) |
| Fast modular addition. More...
|
|
__weak_func error_t | ecSubMod (const EcDomainParameters *params, Mpi *r, const Mpi *a, const Mpi *b) |
| Fast modular subtraction. More...
|
|
__weak_func error_t | ecMulMod (const EcDomainParameters *params, Mpi *r, const Mpi *a, const Mpi *b) |
| Fast modular multiplication. More...
|
|
__weak_func error_t | ecSqrMod (const EcDomainParameters *params, Mpi *r, const Mpi *a) |
| Fast modular squaring. More...
|
|
ECC (Elliptic Curve Cryptography)
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.
- Author
- Oryx Embedded SARL (www.oryx-embedded.com)
- Version
- 2.4.4
Definition in file ec.c.