@@ -30,6 +30,7 @@ class FCryptoEC_Prime extends Object
30
30
notplaceable ;
31
31
32
32
`include (FCrypto \Classes \FCryptoMacros .uci );
33
+ `include (FCrypto \Classes \FCryptoEllipticCurveMacros .uci );
33
34
34
35
/*
35
36
* Parameters for supported curves:
@@ -147,12 +148,14 @@ static final function CurveParams IdToCurve(EFCEllipticCurve Curve)
147
148
static function array <byte > Generator (EFCEllipticCurve Curve , out int Len )
148
149
{
149
150
local array <byte> TODO ;
151
+ TODO .Length = 0 ;
150
152
return TODO ;
151
153
}
152
154
153
155
static function array <byte > Order (EFCEllipticCurve Curve , out int Len )
154
156
{
155
157
local array <byte> TODO ;
158
+ TODO .Length = 0 ;
156
159
return TODO ;
157
160
}
158
161
@@ -198,72 +201,18 @@ static function int MulAdd(
198
201
199
202
DefaultProperties
200
203
{
201
- P256_P ={(
202
- 0x0111 ,
203
- 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x003F , 0x0000 ,
204
- 0x0000 , 0x0000 , 0x0000 , 0x0000 , 0x1000 , 0x0000 , 0x4000 , 0x7FFF ,
205
- 0x7FFF , 0x0001
206
- )}
207
- P256_R2 ={(
208
- 0x0111 ,
209
- 0x0000 , 0x6000 , 0x0000 , 0x0000 , 0x0000 , 0x0000 , 0x7FFC , 0x7FFF ,
210
- 0x7FBF , 0x7FFF , 0x7FBF , 0x7FFF , 0x7FFF , 0x7FFF , 0x77FF , 0x7FFF ,
211
- 0x4FFF , 0x0000
212
- )}
213
- P256_B ={(
214
- 0x0111 ,
215
- 0x770C , 0x5EEF , 0x29C4 , 0x3EC4 , 0x6273 , 0x0486 , 0x4543 , 0x3993 ,
216
- 0x3C01 , 0x6B56 , 0x212E , 0x57EE , 0x4882 , 0x204B , 0x7483 , 0x3C16 ,
217
- 0x0187 , 0x0000
218
- )}
219
- P384_P ={(
220
- 0x0199 ,
221
- 0x7FFF , 0x7FFF , 0x0003 , 0x0000 , 0x0000 , 0x0000 , 0x7FC0 , 0x7FFF ,
222
- 0x7EFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF ,
223
- 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF ,
224
- 0x7FFF , 0x01FF
225
- )}
226
- P384_R2 ={(
227
- 0x0199 ,
228
- 0x1000 , 0x0000 , 0x0000 , 0x7FFF , 0x7FFF , 0x0001 , 0x0000 , 0x0010 ,
229
- 0x0000 , 0x0000 , 0x0000 , 0x7F00 , 0x7FFF , 0x01FF , 0x0000 , 0x1000 ,
230
- 0x0000 , 0x2000 , 0x0000 , 0x0000 , 0x0000 , 0x0000 , 0x0000 , 0x0000 ,
231
- 0x0000 , 0x0000
232
- )}
233
- P384_B ={(
234
- 0x0199 ,
235
- 0x7333 , 0x2096 , 0x70D1 , 0x2310 , 0x3020 , 0x6197 , 0x1464 , 0x35BB ,
236
- 0x70CA , 0x0117 , 0x1920 , 0x4136 , 0x5FC8 , 0x5713 , 0x4938 , 0x7DD2 ,
237
- 0x4DD2 , 0x4A71 , 0x0220 , 0x683E , 0x2C87 , 0x4DB1 , 0x7BFF , 0x6C09 ,
238
- 0x0452 , 0x0084
239
- )}
240
- P521_P ={(
241
- 0x022B ,
242
- 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF ,
243
- 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF ,
244
- 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF ,
245
- 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF , 0x7FFF ,
246
- 0x7FFF , 0x7FFF , 0x07FF
247
- )}
248
- P521_R2 ={(
249
- 0x022B ,
250
- 0x0100 , 0x0000 , 0x0000 , 0x0000 , 0x0000 , 0x0000 , 0x0000 , 0x0000 ,
251
- 0x0000 , 0x0000 , 0x0000 , 0x0000 , 0x0000 , 0x0000 , 0x0000 , 0x0000 ,
252
- 0x0000 , 0x0000 , 0x0000 , 0x0000 , 0x0000 , 0x0000 , 0x0000 , 0x0000 ,
253
- 0x0000 , 0x0000 , 0x0000 , 0x0000 , 0x0000 , 0x0000 , 0x0000 , 0x0000 ,
254
- 0x0000 , 0x0000 , 0x0000
255
- )}
256
- P521_B ={(
257
- 0x022B ,
258
- 0x7002 , 0x6A07 , 0x751A , 0x228F , 0x71EF , 0x5869 , 0x20F4 , 0x1EFC ,
259
- 0x7357 , 0x37E0 , 0x4EEC , 0x605E , 0x1652 , 0x26F6 , 0x31FA , 0x4A8F ,
260
- 0x6193 , 0x3C2A , 0x3C42 , 0x48C7 , 0x3489 , 0x6771 , 0x4C57 , 0x5CCD ,
261
- 0x2725 , 0x545B , 0x503B , 0x5B42 , 0x21A0 , 0x2534 , 0x687E , 0x70E4 ,
262
- 0x1618 , 0x27D7 , 0x0465
263
- )}
264
-
265
- // TODO: fix array assignments.
266
- _PP (0 )=(P =default .P256_P , B =default .P256_B , R2 =default .P256_R2 , P0i =0x001 , PointLen =65 )
267
- _PP (1 )=(P =default .P384_P , B =default .P384_B , R2 =default .P384_R2 , P0i =0x001 , PointLen =97 )
268
- _PP (2 )=(P =default .P521_P , B =default .P521_B , R2 =default .P521_R2 , P0i =0x001 , PointLen =133 )
204
+ // TODO: are these needed?
205
+ P256_P ={(`P256_P_VALUES )}
206
+ P256_R2 ={(`P256_R2_VALUES )}
207
+ P256_B ={(`P256_B_VALUES )}
208
+ P384_P ={(`P384_P_VALUES )}
209
+ P384_R2 ={(`P384_R2_VALUES )}
210
+ P384_B ={(`P384_B_VALUES )}
211
+ P521_P ={(`P521_P_VALUES )}
212
+ P521_R2 ={(`P521_R2_VALUES )}
213
+ P521_B ={(`P521_B_VALUES )}
214
+
215
+ _PP (0 )={(P =(`P256_P_VALUES ), B =(`P256_R2_VALUES ), R2 =(`P256_B_VALUES ), P0i =0x001 , PointLen =65 )}
216
+ _PP (1 )={(P =(`P384_P_VALUES ), B =(`P384_B_VALUES ), R2 =(`P384_R2_VALUES ), P0i =0x001 , PointLen =97 )}
217
+ _PP (2 )={(P =(`P521_P_VALUES ), B =(`P521_B_VALUES ), R2 =(`P521_R2_VALUES ), P0i =0x001 , PointLen =133 )}
269
218
}
0 commit comments