00001
00015 #ifndef C4E_ECGF2N_H
00016 #define C4E_ECGF2N_H
00017
00018
00019
00020
00021 #include "c4e_ec.h"
00022 #include "c4e_gf2n.h"
00023
00024
00025 #ifdef __cplusplus
00026 extern "C" {
00027 #endif
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00053 void c4e_ecgf2n_cpy(C4E_CONST C4eEcPoint* C4E_RESTRICT src,
00054 C4eEcPoint* C4E_RESTRICT dst);
00055
00056
00057
00075 void c4e_ecgf2n_neg(C4E_CONST C4eEcPoint* C4E_RESTRICT pt,
00076 C4eEcPoint* C4E_RESTRICT pt3);
00077
00078
00079
00126 C4eSysStatus c4e_ecgf2n_add(C4E_CONST C4eEcDomain* C4E_RESTRICT dom,
00127 C4E_CONST C4eEcPoint* C4E_RESTRICT pt1,
00128 C4E_CONST C4eEcPoint* C4E_RESTRICT pt2,
00129 C4eArchDigit tmp[C4E_RESTRICT],
00130 C4eEcPoint* C4E_RESTRICT pt3);
00131
00132
00133
00175 C4eSysStatus c4e_ecgf2n_dbl(C4E_CONST C4eEcDomain* C4E_RESTRICT dom,
00176 C4E_CONST C4eEcPoint* C4E_RESTRICT pt,
00177 C4eArchDigit tmp[C4E_RESTRICT],
00178 C4eEcPoint* C4E_RESTRICT pt3);
00179
00180
00181
00241 C4eSysStatus c4e_ecgf2n_mul(C4E_CONST C4eEcDomain* C4E_RESTRICT dom,
00242 C4E_CONST C4eElement* C4E_RESTRICT k,
00243 C4E_CONST C4eEcPoint* C4E_RESTRICT pt,
00244 C4eArchDigit tmp[C4E_RESTRICT],
00245 C4eEcPoint* C4E_RESTRICT kp);
00246
00247
00248
00249
00285 C4eSysBool c4e_ecgf2n_sign(C4E_CONST C4eEcDomain* C4E_RESTRICT dom,
00286 C4E_CONST C4eEcPoint* C4E_RESTRICT pt,
00287 C4eArchDigit tmp[C4E_RESTRICT]);
00288
00289
00290
00291
00328 C4eSysStatus c4e_ecgf2n_gety(C4E_CONST C4eEcDomain* C4E_RESTRICT dom,
00329 C4eSysBool sign,
00330 C4eArchDigit tmp[C4E_RESTRICT],
00331 C4eEcPoint* C4E_RESTRICT pt);
00332
00333
00334
00386 C4eSysStatus c4e_ecgf2n_validate(C4E_CONST C4eEcDomain* C4E_RESTRICT dom,
00387 C4E_CONST C4eEcPoint* C4E_RESTRICT pt,
00388 C4eArchDigit tmp[C4E_RESTRICT]);
00389
00390
00391 #ifdef __cplusplus
00392 }
00393 #endif
00394
00395
00396 #endif
00397
00398
00399
00400
00401