-
Notifications
You must be signed in to change notification settings - Fork 3
/
parameters.c
102 lines (86 loc) · 4.18 KB
/
parameters.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/*
* File: dclxvi-20110718/parameters.c
* Author: Ruben Niederhagen, Peter Schwabe
* Public Domain
*/
#include "fpe.h"
#include "fp2e.h"
#include "fp6e.h"
#include "fp12e.h"
#include "curvepoint_fp.h"
#include "twistpoint_fp2.h"
#include "scalar.h"
#ifdef __cplusplus
#define EXTERN extern
#else
#define EXTERN
#endif
//EXTERN const scalar_t bn_6uplus2 = {0x1EC817A18A131208ULL,2,0,0};
#define BN_6UPLUS2_NAFLEN 66
EXTERN const unsigned long bn_naflen_6uplus2 = BN_6UPLUS2_NAFLEN;
EXTERN const signed char bn_6uplus2_naf[BN_6UPLUS2_NAFLEN] = { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0,
0, 0, 1, 0, 1, 0, 0, 0, -1, 0, 1, 0, 0, 0, 1, 0, -1, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, -1, 0, 0, 0, 0, 1, 0,
0, 0, 1
};
//EXTERN const scalar_t bn_u = {0x5BBC1015F02AC17DULL, 0x0000000000000000ULL, 0x0000000000000000ULL, 0x0000000000000000ULL};
EXTERN const scalar_t bn_n = { 0x1A2EF45B57AC7261ULL, 0x2E8D8E12F82B3924ULL, 0xAA6FECB86184DC21ULL,
0x8FB501E34AA387F9ULL
};
EXTERN const scalar_t bn_pminus2 = { 0x185CAC6C5E089665ULL, 0xEE5B88D120B5B59EULL, 0xAA6FECB86184DC21ULL,
0x8FB501E34AA387F9ULL
};
//EXTERN const unsigned long bn_u_bitsize = 63;
EXTERN const double bn_v = 1868033.;
EXTERN const double bn_v6 = 11208198.;
const char *bn_pstr = "65000549695646603732796438742359905742825358107623003571877145026864184071783";
EXTERN const scalar_t bn_v_scalar = { 1868033, 0, 0, 0 };
EXTERN const fpe_t bn_zeta = { {{-5604098, -934016, -934016, 2, 0, 0, -5604096, -934016, -934016, 1, 0, 0}} }; /* zeta */
EXTERN const fpe_t bn_zeta2 = { {{5604097, 934016, 934016, -2, 0, 0, -5604102, -934016, -934016, 0, 0, 0}} }; /* zeta^2 */
EXTERN const curvepoint_fp_t bn_curvegen = { {{{{1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.}}},
{{{-2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}},
{{{1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.}}},
{{{0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.}}}}
};
EXTERN const twistpoint_fp2_t bn_twistgen = { {{{{490313, 4260028, -821156, -818020, 106592, -171108, 757738,
545601, 597403,
366066, -270886, -169528, 3101279, 2043941, -726481, 382478,
-650880, -891316,
-13923, 327200, -110487, 473555, -7301, 608340}}},
{{{-4628877, 3279202, 431044, 459682, -606446, -924615, -927454,
90760, 13692,
-225706, -430013, -373196, 3004032, 4097571, 380900, 919715,
-640623, -402833,
-729700, -163786, -332478, -440873, 510935, 593941}}},
{{{1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0.}}},
{{{0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0.}}}}
};
EXTERN const fp2e_t bn_z2p = { {{-3981901, -4468327, 248857, -740622, 900229, -562222,
260246, -632491, -928317, -38527, 838674, 36774, -2702081, 3668149,
-873042, 304894, 876721, 213663,
562599, -128685, -325465, 518143, 457851, 750024}}
}; /* Z^(2p) */
EXTERN const fp2e_t bn_z3p = { {{-1220868, -3662603, -18020, -54060, 771971, 447880,
-925219, -907622, 808438, 557280, -170086, -510257, -548011,
-1644029,
332930, -869243, -918612,
-887802, -656367, -101068, 599384, -69882, -756823, -402435}}
}; /* Z^(3p) */
EXTERN const fp2e_t bn_ypminus1 = { {{-3981901, -4468327, 248857, -740622, 900229,
-562222, 260246, -632491, -928317, -38527, 838674, 36774, -2702081,
3668149, -873042, 304894, 876721,
213663, 562599, -128685, -325465, 518143, 457851, 750024}}
}; // Y^{p-1} lies in F_{p^2}
EXTERN const fp2e_t bn_zpminus1 = { {{-127312, 512442, -137362, 859841, -693124, 477483,
-456715, 571378, -391523, 771884, -684646, 729153, 4294836,
3621570,
-839768, -538090, -213833,
-814642, -240945, -172644, 308331, -116810, 574718, 249147}}
}; // Z^{p-1}, lies in F_{p^2}
EXTERN const fp2e_t bn_ypminus1_squ = { {{1555911, 5331252, -776828, 226463,
691213, -261413, -410662, -394138, -432410, -178831, -475754,
92316, -5497403, -1697028, 207147, -413437,
-291878, 77064, 214666, 415072, -853656, 644193, 622068, 571473}}
}; // (Z^{p-1})^2 i F_{p^2}
#undef EXTERN