|
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 EC private key. More...
|
|
__weak_func error_t | ecGenerateKeyPair (const PrngAlgo *prngAlgo, void *prngContext, const EcCurve *curve, EcPrivateKey *privateKey, EcPublicKey *publicKey) |
| EC key pair generation. More...
|
|
error_t | ecGeneratePrivateKey (const PrngAlgo *prngAlgo, void *prngContext, const EcCurve *curve, EcPrivateKey *privateKey) |
| EC private key generation. More...
|
|
error_t | ecGeneratePublicKey (const EcPrivateKey *privateKey, EcPublicKey *publicKey) |
| Derive the public key from an EC private key. More...
|
|
error_t | ecImportPublicKey (EcPublicKey *key, const EcCurve *curve, const uint8_t *data, size_t length, EcPublicKeyFormat format) |
| Import an EC public key. More...
|
|
error_t | ecExportPublicKey (const EcPublicKey *key, uint8_t *data, size_t *length, EcPublicKeyFormat format) |
| Export an EC public key. More...
|
|
error_t | ecImportPrivateKey (EcPrivateKey *key, const EcCurve *curve, const uint8_t *data, size_t length) |
| Import an EC private key. More...
|
|
error_t | ecExportPrivateKey (const EcPrivateKey *key, uint8_t *data, size_t *length) |
| Export an EC private key. More...
|
|
error_t | ecImportPoint (const EcCurve *curve, EcPoint *r, const uint8_t *data, size_t length) |
| Convert an octet string to an EC point. More...
|
|
error_t | ecExportPoint (const EcCurve *curve, const EcPoint *a, uint8_t *data, size_t *length) |
| Convert an EC point to an octet string. More...
|
|
void | ecProjectify (const EcCurve *curve, EcPoint3 *r, const EcPoint *s) |
| Compute projective representation. More...
|
|
__weak_func error_t | ecAffinify (const EcCurve *curve, EcPoint3 *r, const EcPoint3 *s) |
| Recover affine representation. More...
|
|
__weak_func bool_t | ecIsPointAffine (const EcCurve *curve, const EcPoint *s) |
| Check whether the affine point S is on the curve. More...
|
|
void | ecDouble (EcState *state, EcPoint3 *r, const EcPoint3 *s) |
| Point doubling. More...
|
|
void | ecAdd (EcState *state, EcPoint3 *r, const EcPoint3 *s, const EcPoint3 *t) |
| Point addition (helper routine) More...
|
|
void | ecFullAdd (EcState *state, EcPoint3 *r, const EcPoint3 *s, const EcPoint3 *t) |
| Point addition. More...
|
|
void | ecFullSub (EcState *state, EcPoint3 *r, const EcPoint3 *s, const EcPoint3 *t) |
| Point subtraction. More...
|
|
__weak_func error_t | ecMulFast (const EcCurve *curve, EcPoint3 *r, const uint32_t *d, const EcPoint3 *s) |
| Scalar multiplication (fast calculation) More...
|
|
__weak_func error_t | ecMulRegular (const EcCurve *curve, EcPoint3 *r, const uint32_t *d, const EcPoint3 *s) |
| Scalar multiplication (regular calculation) More...
|
|
__weak_func error_t | ecTwinMul (const EcCurve *curve, EcPoint3 *r, const uint32_t *d0, const EcPoint3 *s, const uint32_t *d1, const EcPoint3 *t) |
| Twin multiplication. More...
|
|
ECC (Elliptic Curve Cryptography)
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.c.