Skip to content

Commit 0869f53

Browse files
author
gefeili
committed
TODO: genP22
1 parent ac3224a commit 0869f53

File tree

1 file changed

+44
-23
lines changed

1 file changed

+44
-23
lines changed

core/src/main/java/org/bouncycastle/pqc/crypto/snova/SnovaEngine.java

Lines changed: 44 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,8 @@ private void gf16mScale(byte[] a, byte k, byte[] result)
332332
}
333333
}
334334

335-
public void genF(MapGroup2 map2, MapGroup1 map1, byte[][][] T12) {
335+
public void genF(MapGroup2 map2, MapGroup1 map1, byte[][][] T12)
336+
{
336337
int m = params.getM();
337338
int v = params.getV();
338339
int o = params.getO();
@@ -347,10 +348,14 @@ public void genF(MapGroup2 map2, MapGroup1 map1, byte[][][] T12) {
347348
byte[] temp = new byte[lsq];
348349

349350
// First matrix operation sequence
350-
for (int i = 0; i < m; i++) {
351-
for (int j = 0; j < v; j++) {
352-
for (int k = 0; k < o; k++) {
353-
for (int index = 0; index < v; index++) {
351+
for (int i = 0; i < m; i++)
352+
{
353+
for (int j = 0; j < v; j++)
354+
{
355+
for (int k = 0; k < o; k++)
356+
{
357+
for (int index = 0; index < v; index++)
358+
{
354359
GF16Utils.gf16mMul(temp, map1.p11[i][j][index], T12[index][k], l);
355360
GF16Utils.gf16mAdd(map2.f12[i][j][k], map2.f12[i][j][k], temp, l);
356361
}
@@ -359,10 +364,14 @@ public void genF(MapGroup2 map2, MapGroup1 map1, byte[][][] T12) {
359364
}
360365

361366
// Second matrix operation sequence
362-
for (int i = 0; i < m; i++) {
363-
for (int j = 0; j < o; j++) {
364-
for (int k = 0; k < v; k++) {
365-
for (int index = 0; index < v; index++) {
367+
for (int i = 0; i < m; i++)
368+
{
369+
for (int j = 0; j < o; j++)
370+
{
371+
for (int k = 0; k < v; k++)
372+
{
373+
for (int index = 0; index < v; index++)
374+
{
366375
GF16Utils.gf16mMul(temp, T12[index][j], map1.p11[i][index][k], l);
367376
GF16Utils.gf16mAdd(map2.f21[i][j][k], map2.f21[i][j][k], temp, l);
368377
}
@@ -371,14 +380,18 @@ public void genF(MapGroup2 map2, MapGroup1 map1, byte[][][] T12) {
371380
}
372381

373382
// Secure clear temporary buffer
374-
Arrays.fill(temp, (byte) 0);
383+
Arrays.fill(temp, (byte)0);
375384
}
376385

377386
private static void copy4DMatrix(byte[][][][] src, byte[][][][] dest,
378-
int dim1, int dim2, int dim3, int lsq) {
379-
for (int i = 0; i < dim1; i++) {
380-
for (int j = 0; j < dim2; j++) {
381-
for (int k = 0; k < dim3; k++) {
387+
int dim1, int dim2, int dim3, int lsq)
388+
{
389+
for (int i = 0; i < dim1; i++)
390+
{
391+
for (int j = 0; j < dim2; j++)
392+
{
393+
for (int k = 0; k < dim3; k++)
394+
{
382395
System.arraycopy(
383396
src[i][j][k], 0,
384397
dest[i][j][k], 0,
@@ -389,7 +402,8 @@ private static void copy4DMatrix(byte[][][][] src, byte[][][][] dest,
389402
}
390403
}
391404

392-
public void genP22(byte[] outP22, byte[][][] T12, byte[][][][] P21, byte[][][][] F12, SnovaParameters params) {
405+
public void genP22(byte[] outP22, byte[][][] T12, byte[][][][] P21, byte[][][][] F12, SnovaParameters params)
406+
{
393407
int m = params.getM();
394408
int o = params.getO();
395409
int v = params.getV();
@@ -403,11 +417,16 @@ public void genP22(byte[] outP22, byte[][][] T12, byte[][][][] P21, byte[][][][]
403417
byte[] temp1 = new byte[lsq];
404418
byte[] temp2 = new byte[lsq];
405419

406-
try {
407-
for (int i = 0; i < m; i++) {
408-
for (int j = 0; j < o; j++) {
409-
for (int k = 0; k < o; k++) {
410-
for (int index = 0; index < v; index++) {
420+
try
421+
{
422+
for (int i = 0; i < m; i++)
423+
{
424+
for (int j = 0; j < o; j++)
425+
{
426+
for (int k = 0; k < o; k++)
427+
{
428+
for (int index = 0; index < v; index++)
429+
{
411430
// temp1 = T12[index][j] * F12[i][index][k]
412431
GF16Utils.gf16mMul(temp1, T12[index][j], F12[i][index][k], l);
413432

@@ -427,10 +446,12 @@ public void genP22(byte[] outP22, byte[][][] T12, byte[][][][] P21, byte[][][][]
427446
// Convert GF16 elements to packed bytes
428447
//TODO
429448
//GF16Utils.decode(P22, outP22, m * o * o *lsq);
430-
} finally {
449+
}
450+
finally
451+
{
431452
// Secure clear temporary buffers
432-
Arrays.fill(temp1, (byte) 0);
433-
Arrays.fill(temp2, (byte) 0);
453+
Arrays.fill(temp1, (byte)0);
454+
Arrays.fill(temp2, (byte)0);
434455
}
435456
}
436457
}

0 commit comments

Comments
 (0)