@@ -22,18 +22,22 @@ function get_BLS12_381_prime(CHUNK_SIZE, CHUNK_NUMBER){
22
22
23
23
// half of 8th ROOTS of unity, up to negation
24
24
function get_roots_of_unity(CHUNK_SIZE, CHUNK_NUMBER){
25
- assert( CHUNK_SIZE == 55 && CHUNK_NUMBER == 7 );
25
+
26
+ assert(CHUNK_SIZE == 55 && CHUNK_NUMBER == 7 );
27
+
26
28
var ROOTS[4 ][2 ][150 ];
29
+
27
30
for (var idx= 0 ; idx< CHUNK_NUMBER; idx++ ){
28
31
ROOTS[0 ][0 ][idx] = 0 ;
29
32
ROOTS[0 ][1 ][idx] = 0 ;
30
33
ROOTS[1 ][0 ][idx] = 0 ;
31
34
ROOTS[1 ][1 ][idx] = 0 ;
32
35
}
36
+
33
37
ROOTS[0 ][0 ][0 ] = 1 ; // ROOTS[0] = 1
34
38
ROOTS[1 ][1 ][0 ] = 1 ; // ROOTS[1] = sqrt(-1)
35
39
36
- if ( CHUNK_SIZE == 55 && CHUNK_NUMBER == 7 ){
40
+ if (CHUNK_SIZE == 55 && CHUNK_NUMBER == 7 ){
37
41
ROOTS[2 ][0 ] = [4649817190157321 ,
38
42
14178090100713872 ,
39
43
25898210532243870 ,
@@ -67,11 +71,11 @@ function get_roots_of_unity(CHUNK_SIZE, CHUNK_NUMBER){
67
71
}
68
72
69
73
function get_etas(CHUNK_SIZE, CHUNK_NUMBER){
70
- assert( CHUNK_SIZE == 55 && CHUNK_NUMBER == 7 );
74
+ assert(CHUNK_SIZE == 55 && CHUNK_NUMBER == 7 );
71
75
var p[150 ] = get_BLS12_381_prime(CHUNK_SIZE, CHUNK_NUMBER);
72
76
var ETAS[4 ][2 ][150 ];
73
77
74
- if ( CHUNK_SIZE == 55 && CHUNK_NUMBER == 7 ){
78
+ if (CHUNK_SIZE == 55 && CHUNK_NUMBER == 7 ){
75
79
ETAS[0 ][0 ] = [15111404105178256 ,
76
80
12179658998385743 ,
77
81
23072200951145993 ,
@@ -111,8 +115,11 @@ function get_etas(CHUNK_SIZE, CHUNK_NUMBER){
111
115
// coefficients for the 3-isogeny map from E2' to E2
112
116
// taken from E.3 of https://cfrg.github.io/draft-irtf-cfrg-hash-to-curve/draft-irtf-cfrg-hash-to-curve.html#appendix-E.3
113
117
function get_iso3_coeffs(CHUNK_SIZE, CHUNK_NUMBER){
118
+
114
119
assert( CHUNK_SIZE == 55 && CHUNK_NUMBER == 7 );
120
+
115
121
var COEFFS[4 ][4 ][2 ][150 ];
122
+
116
123
if ( CHUNK_SIZE == 55 && CHUNK_NUMBER == 7 ){
117
124
COEFFS[0 ][0 ][0 ] = [15950248680265686 , 32024958503631044 , 4244301805875352 , 29783714120969249 , 35703698803053471 , 29228779030399226 , 406640325010316 ];
118
125
COEFFS[0 ][0 ][1 ] = [15950248680265686 , 32024958503631044 , 4244301805875352 , 29783714120969249 , 35703698803053471 , 29228779030399226 , 406640325010316 ];
@@ -151,7 +158,9 @@ function get_iso3_coeffs(CHUNK_SIZE, CHUNK_NUMBER){
151
158
}
152
159
153
160
function get_generator_G1(CHUNK_SIZE, CHUNK_NUMBER){
154
- assert( CHUNK_SIZE == 55 && CHUNK_NUMBER == 7 );
161
+
162
+ assert(CHUNK_SIZE == 55 && CHUNK_NUMBER == 7 );
163
+
155
164
var G1[2 ][150 ];
156
165
157
166
G1[0 ] = [16589478066046651 ,
@@ -173,7 +182,9 @@ function get_generator_G1(CHUNK_SIZE, CHUNK_NUMBER){
173
182
}
174
183
175
184
function get_generator_G2(CHUNK_SIZE, CHUNK_NUMBER){
176
- assert( CHUNK_SIZE == 55 && CHUNK_NUMBER == 7 );
185
+
186
+ assert(CHUNK_SIZE == 55 && CHUNK_NUMBER == 7 );
187
+
177
188
var G2[2 ][2 ][150 ];
178
189
179
190
G2[0 ][0 ] = [95420233661880 , 1773856045391785 , 5044075188989616 , 23082975677810779 , 22805092780977487 , 23121359448368568 , 161253150172098 ];
@@ -185,12 +196,15 @@ function get_generator_G2(CHUNK_SIZE, CHUNK_NUMBER){
185
196
}
186
197
187
198
function get_Fp12_frobenius(CHUNK_SIZE, CHUNK_NUMBER){
199
+
188
200
assert( (CHUNK_SIZE== 96 && CHUNK_NUMBER== 4 ) || (CHUNK_SIZE== 77 && CHUNK_NUMBER== 5 ) || (CHUNK_SIZE== 55 && CHUNK_NUMBER== 7 ) );
189
- var COEFF[12 ][6 ][2 ][20 ]; //
201
+
202
+ var COEFF[12 ][6 ][2 ][20 ];
203
+
190
204
// COEFF[j][i] represents an element in F_q^2
191
205
// F_q^12 = F_q^2[w] / (w^6 - (u+1))
192
206
// Apply Frobenius j times to w^i: (w^i)^(q^j) = COEFF[j][i] * w^i
193
- if ( CHUNK_SIZE== 96 && CHUNK_NUMBER== 4 ){
207
+ if ( CHUNK_SIZE == 96 && CHUNK_NUMBER == 4 ){
194
208
COEFF[0 ][0 ][0 ][0 ] = 1 ;
195
209
COEFF[0 ][0 ][0 ][1 ] = 0 ;
196
210
COEFF[0 ][0 ][0 ][2 ] = 0 ;
@@ -2929,5 +2943,6 @@ function get_Fp12_frobenius(CHUNK_SIZE, CHUNK_NUMBER){
2929
2943
COEFF[11 ][5 ][1 ][5 ] = 1778035881690211 ;
2930
2944
COEFF[11 ][5 ][1 ][6 ] = 69335985795384 ;
2931
2945
}
2946
+
2932
2947
return COEFF;
2933
2948
}
0 commit comments