16#ifndef ASM_ECP_NISTP256_H
17#define ASM_ECP_NISTP256_H
19#include "hitls_build.h"
26#define P256_SIZE (P256_BYTES / sizeof(BN_UINT))
29 BN_UINT value[P256_SIZE];
43#if defined(HITLS_CRYPTO_CURVE_NISTP256_ASM) && defined(HITLS_CRYPTO_NIST_ECC_ACCELERATE)
45typedef P256_AffinePoint ECP256_TableRow[64];
47const ECP256_TableRow *ECP256_GetPreCompTable(
void);
59void ECP256_OrdSqr(
Coord *r,
const Coord *a, int32_t repeat);
61void ECP256_PointDouble(P256_Point *r,
const P256_Point *a);
63void ECP256_PointAdd(P256_Point *r,
const P256_Point *a,
const P256_Point *b);
65void ECP256_AddAffine(P256_Point *r,
const P256_Point *a,
const P256_AffinePoint *b);
67void ECP256_Scatterw5(P256_Point *table,
const P256_Point *point, uint32_t index);
69void ECP256_Gatherw5(P256_Point *point,
const P256_Point *table, uint32_t index);
71void ECP256_Gatherw7(P256_AffinePoint *point,
const P256_AffinePoint *table, uint32_t index);