/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright (c) 2021 HiSilicon */
#ifndef _CRYTO_ECC_CURVE_H
#define _CRYTO_ECC_CURVE_H
#include <linux/types.h>
/**
* struct ecc_point - elliptic curve point in affine coordinates
*
* @ x : X coordinate in vli form .
* @ y : Y coordinate in vli form .
* @ ndigits : Length of vlis in u64 qwords .
*/
struct ecc_point {
u64 *x;
u64 *y;
u8 ndigits;
};
/**
* struct ecc_curve - definition of elliptic curve
*
* @ name : Short name of the curve .
* @ nbits : The number of bits of a curve .
* @ g : Generator point of the curve .
* @ p : Prime number , if Barrett ' s reduction is used for this curve
* pre - calculated value ' mu ' is appended to the @ p after ndigits .
* Use of Barrett ' s reduction is heuristically determined in
* vli_mmod_fast ( ) .
* @ n : Order of the curve group .
* @ a : Curve parameter a .
* @ b : Curve parameter b .
*/
struct ecc_curve {
char *name;
u32 nbits;
struct ecc_point g;
u64 *p;
u64 *n;
u64 *a;
u64 *b;
};
/**
* ecc_get_curve ( ) - get elliptic curve ;
* @ curve_id : Curves IDs :
* defined in ' include / crypto / ecdh . h ' ;
*
* Returns curve if get curve succssful , NULL otherwise
*/
const struct ecc_curve *ecc_get_curve(unsigned int curve_id);
/**
* ecc_get_curve25519 ( ) - get curve25519 curve ;
*
* Returns curve25519
*/
const struct ecc_curve *ecc_get_curve25519(void );
#endif
Messung V0.5 in Prozent C=91 H=100 G=95
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet am 2026-09-29)
¤
*© Formatika GbR, Deutschland