Skip to content

Commit f4fddeb

Browse files
committed
Fix DefaultProperties arrays in FCryptoEC_Prime
1 parent 12e1b40 commit f4fddeb

File tree

3 files changed

+81
-70
lines changed

3 files changed

+81
-70
lines changed

Classes/FCryptoEC_Prime.uc

Lines changed: 17 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ class FCryptoEC_Prime extends Object
3030
notplaceable;
3131

3232
`include(FCrypto\Classes\FCryptoMacros.uci);
33+
`include(FCrypto\Classes\FCryptoEllipticCurveMacros.uci);
3334

3435
/*
3536
* Parameters for supported curves:
@@ -147,12 +148,14 @@ static final function CurveParams IdToCurve(EFCEllipticCurve Curve)
147148
static function array<byte> Generator(EFCEllipticCurve Curve, out int Len)
148149
{
149150
local array<byte> TODO;
151+
TODO.Length = 0;
150152
return TODO;
151153
}
152154

153155
static function array<byte> Order(EFCEllipticCurve Curve, out int Len)
154156
{
155157
local array<byte> TODO;
158+
TODO.Length = 0;
156159
return TODO;
157160
}
158161

@@ -198,72 +201,18 @@ static function int MulAdd(
198201

199202
DefaultProperties
200203
{
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)}
269218
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
`define BR_MAX_EC_SIZE 528
2+
3+
`define P256_P_VALUES \
4+
0x0111, \
5+
0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x003F, 0x0000, \
6+
0x0000, 0x0000, 0x0000, 0x0000, 0x1000, 0x0000, 0x4000, 0x7FFF, \
7+
0x7FFF, 0x0001
8+
9+
`define P256_R2_VALUES \
10+
0x0111, \
11+
0x0000, 0x6000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7FFC, 0x7FFF, \
12+
0x7FBF, 0x7FFF, 0x7FBF, 0x7FFF, 0x7FFF, 0x7FFF, 0x77FF, 0x7FFF, \
13+
0x4FFF, 0x0000
14+
15+
`define P256_B_VALUES \
16+
0x0111, \
17+
0x770C, 0x5EEF, 0x29C4, 0x3EC4, 0x6273, 0x0486, 0x4543, 0x3993, \
18+
0x3C01, 0x6B56, 0x212E, 0x57EE, 0x4882, 0x204B, 0x7483, 0x3C16, \
19+
0x0187, 0x0000
20+
21+
`define P384_P_VALUES \
22+
0x0199, \
23+
0x7FFF, 0x7FFF, 0x0003, 0x0000, 0x0000, 0x0000, 0x7FC0, 0x7FFF, \
24+
0x7EFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, \
25+
0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, \
26+
0x7FFF, 0x01FF
27+
28+
`define P384_R2_VALUES \
29+
0x0199, \
30+
0x1000, 0x0000, 0x0000, 0x7FFF, 0x7FFF, 0x0001, 0x0000, 0x0010, \
31+
0x0000, 0x0000, 0x0000, 0x7F00, 0x7FFF, 0x01FF, 0x0000, 0x1000, \
32+
0x0000, 0x2000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
33+
0x0000, 0x0000
34+
35+
`define P384_B_VALUES \
36+
0x0199, \
37+
0x7333, 0x2096, 0x70D1, 0x2310, 0x3020, 0x6197, 0x1464, 0x35BB, \
38+
0x70CA, 0x0117, 0x1920, 0x4136, 0x5FC8, 0x5713, 0x4938, 0x7DD2, \
39+
0x4DD2, 0x4A71, 0x0220, 0x683E, 0x2C87, 0x4DB1, 0x7BFF, 0x6C09, \
40+
0x0452, 0x0084
41+
42+
`define P521_P_VALUES \
43+
0x022B, \
44+
0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, \
45+
0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, \
46+
0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, \
47+
0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, \
48+
0x7FFF, 0x7FFF, 0x07FF
49+
50+
`define P521_R2_VALUES \
51+
0x022B, \
52+
0x0100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
53+
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
54+
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
55+
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
56+
0x0000, 0x0000, 0x0000
57+
58+
`define P521_B_VALUES \
59+
0x022B, \
60+
0x7002, 0x6A07, 0x751A, 0x228F, 0x71EF, 0x5869, 0x20F4, 0x1EFC, \
61+
0x7357, 0x37E0, 0x4EEC, 0x605E, 0x1652, 0x26F6, 0x31FA, 0x4A8F, \
62+
0x6193, 0x3C2A, 0x3C42, 0x48C7, 0x3489, 0x6771, 0x4C57, 0x5CCD, \
63+
0x2725, 0x545B, 0x503B, 0x5B42, 0x21A0, 0x2534, 0x687E, 0x70E4, \
64+
0x1618, 0x27D7, 0x0465

Classes/FCryptoMacros.uci

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,3 @@
3030

3131
const SIZEOF_UINT16_T = 2;
3232
const WORD_SIZE = 15;
33-
34-
`define BR_MAX_EC_SIZE 528

0 commit comments

Comments
 (0)