Skip to content

Commit e1a4566

Browse files
committed
Refactor SHA2 constants, fix typo bug
1 parent ca4f737 commit e1a4566

File tree

3 files changed

+24
-5
lines changed

3 files changed

+24
-5
lines changed

Classes/FCryptoContext.uc

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ class FCryptoContext extends Object
3030
abstract
3131
notplaceable;
3232

33+
`include(FCrypto\Classes\FCryptoSHA2Constants.uci);
34+
3335
struct FCryptoHashContext
3436
{
3537
// TODO: might need to use QWORD for this?
@@ -50,5 +52,13 @@ struct FCryptoSHA224Context extends FCryptoHashContext
5052

5153
StructDefaultProperties
5254
{
55+
Val(0)=SHA224_IV_VAL0
56+
Val(1)=SHA224_IV_VAL1
57+
Val(2)=SHA224_IV_VAL2
58+
Val(3)=SHA224_IV_VAL3
59+
Val(4)=SHA224_IV_VAL4
60+
Val(5)=SHA224_IV_VAL5
61+
Val(6)=SHA224_IV_VAL6
62+
Val(7)=SHA224_IV_VAL7
5363
}
5464
};

Classes/FCryptoSHA2.uc

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ class FCryptoSHA2 extends Object;
3535

3636
`include(FCrypto\Classes\FCryptoMacros.uci);
3737
`include(FCrypto\Classes\FCryptoSHA2Macros.uci);
38+
`include(FCrypto\Classes\FCryptoSHA2Constants.uci);
3839

3940
var const array<int> SHA224_IV;
4041
var const array<int> SHA256_IV;
@@ -279,6 +280,7 @@ static final function RangeEnc32BE_SVal8(
279280
}
280281
}
281282

283+
// TODO: do we need this in UScript?
282284
static final function Sha224Init(out FCryptoSHA224Context Cc)
283285
{
284286
Cc.Val[0] = default.SHA224_IV[0];
@@ -287,9 +289,8 @@ static final function Sha224Init(out FCryptoSHA224Context Cc)
287289
Cc.Val[3] = default.SHA224_IV[3];
288290
Cc.Val[4] = default.SHA224_IV[4];
289291
Cc.Val[5] = default.SHA224_IV[5];
290-
Cc.Val[5] = default.SHA224_IV[5];
291-
Cc.Val[6] = default.SHA224_IV[6];
292-
Cc.Val[7] = default.SHA224_IV[7];
292+
Cc.Val[5] = default.SHA224_IV[6];
293+
Cc.Val[6] = default.SHA224_IV[7];
293294
}
294295

295296
// TODO: what's the point of this abstraction?
@@ -314,8 +315,8 @@ static final function Sha256Update(
314315
DefaultProperties
315316
{
316317
SHA224_IV={(
317-
0xC1059ED8, 0x367CD507, 0x3070DD17, 0xF70E5939,
318-
0xFFC00B31, 0x68581511, 0x64F98FA7, 0xBEFA4FA4
318+
SHA224_IV_VAL0, SHA224_IV_VAL1, SHA224_IV_VAL2, SHA224_IV_VAL3,
319+
SHA224_IV_VAL4, SHA224_IV_VAL5, SHA224_IV_VAL6, SHA224_IV_VAL7
319320
)}
320321

321322
SHA256_IV={(

Classes/FCryptoSHA2Constants.uci

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
const SHA224_IV_VAL0 = 0xC1059ED8;
2+
const SHA224_IV_VAL1 = 0x367CD507;
3+
const SHA224_IV_VAL2 = 0x3070DD17;
4+
const SHA224_IV_VAL3 = 0xF70E5939;
5+
const SHA224_IV_VAL4 = 0xFFC00B31;
6+
const SHA224_IV_VAL5 = 0x68581511;
7+
const SHA224_IV_VAL6 = 0x64F98FA7;
8+
const SHA224_IV_VAL7 = 0xBEFA4FA4;

0 commit comments

Comments
 (0)