From 78a05e42858b59b5a5d8b778a66c6859bdb6ae51 Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Sun, 5 Jan 2025 16:25:19 -0800 Subject: [PATCH] Restore SIGMA82 definition until substitution is complete. Substitute array indexes for first 6 rounds, last 6 will come soon. --- src/lib/workers/powgpu.ts | 117 ++++++++++++++++++-------------------- 1 file changed, 56 insertions(+), 61 deletions(-) diff --git a/src/lib/workers/powgpu.ts b/src/lib/workers/powgpu.ts index 87ca02f..e265695 100644 --- a/src/lib/workers/powgpu.ts +++ b/src/lib/workers/powgpu.ts @@ -86,6 +86,20 @@ export class PowGpu extends WorkerInterface { * 28u,20u,8u,16u,18u,30u,26u,12u,2u,24u,0u,4u,22u,14u,10u,6u * ); */ + const SIGMA82: array = array( + 0u,2u,4u,6u,8u,10u,12u,14u,16u,18u,20u,22u,24u,26u,28u,30u, + 28u,20u,8u,16u,18u,30u,26u,12u,2u,24u,0u,4u,22u,14u,10u,6u, + 22u,16u,24u,0u,10u,4u,30u,26u,20u,28u,6u,12u,14u,2u,18u,8u, + 14u,18u,6u,2u,26u,24u,22u,28u,4u,12u,10u,20u,8u,0u,30u,16u, + 18u,0u,10u,14u,4u,8u,20u,30u,28u,2u,22u,24u,12u,16u,6u,26u, + 4u,24u,12u,20u,0u,22u,16u,6u,8u,26u,14u,10u,30u,28u,2u,18u, + 24u,10u,2u,30u,28u,26u,8u,20u,0u,14u,12u,6u,18u,4u,16u,22u, + 26u,22u,14u,28u,24u,2u,6u,18u,10u,0u,30u,8u,16u,12u,4u,20u, + 12u,30u,28u,18u,22u,6u,0u,16u,24u,4u,26u,14u,2u,8u,20u,10u, + 20u,4u,16u,8u,14u,12u,2u,10u,30u,22u,18u,28u,6u,24u,26u,0u, + 0u,2u,4u,6u,8u,10u,12u,14u,16u,18u,20u,22u,24u,26u,28u,30u, + 28u,20u,8u,16u,18u,30u,26u,12u,2u,24u,0u,4u,22u,14u,10u,6u + ); /** * G Mixing function @@ -281,7 +295,6 @@ export class PowGpu extends WorkerInterface { /** * Twelve rounds of mixing as part of BLAKE2b compression step */ - // 0-15 20u,22u,24u,26u,28u,30u // ROUND(0) G(&v, &m, 0u, 8u, 16u, 24u, 0u, 2u); G(&v, &m, 2u, 10u, 18u, 26u, 4u, 6u); @@ -289,76 +302,58 @@ export class PowGpu extends WorkerInterface { G(&v, &m, 6u, 14u, 22u, 30u, 12u, 14u); G(&v, &m, 0u, 10u, 20u, 30u, 16u, 18u); G(&v, &m, 2u, 12u, 22u, 24u, 20u, 22u); - G(&v, &m, 4u, 14u, 16u, 26u, SIGMA82[12u], SIGMA82[13u]); - G(&v, &m, 6u, 8u, 18u, 28u, SIGMA82[14u], SIGMA82[15u]); - - // 16-31 28u,20u,8u,16u,18u,30u,26u,12u,2u,24u,0u,4u,22u,14u,10u,6u + G(&v, &m, 4u, 14u, 16u, 26u, 24u, 26u); + G(&v, &m, 6u, 8u, 18u, 28u, 28u, 30u); // ROUND(1) - G(&v, &m, 0u, 8u, 16u, 24u, SIGMA82[16u], SIGMA82[17u]); - G(&v, &m, 2u, 10u, 18u, 26u, SIGMA82[18u], SIGMA82[19u]); - G(&v, &m, 4u, 12u, 20u, 28u, SIGMA82[20u], SIGMA82[21u]); - G(&v, &m, 6u, 14u, 22u, 30u, SIGMA82[22u], SIGMA82[23u]); - G(&v, &m, 0u, 10u, 20u, 30u, SIGMA82[24u], SIGMA82[25u]); - G(&v, &m, 2u, 12u, 22u, 24u, SIGMA82[26u], SIGMA82[27u]); - G(&v, &m, 4u, 14u, 16u, 26u, SIGMA82[28u], SIGMA82[29u]); - G(&v, &m, 6u, 8u, 18u, 28u, SIGMA82[30u], SIGMA82[31u]); - - - // 32-47 22u,16u,24u,0u,10u,4u,30u,26u,20u,28u,6u,12u,14u,2u,18u,8u + G(&v, &m, 0u, 8u, 16u, 24u, 28u, 20u); + G(&v, &m, 2u, 10u, 18u, 26u, 8u, 16u); + G(&v, &m, 4u, 12u, 20u, 28u, 18u, 30u); + G(&v, &m, 6u, 14u, 22u, 30u, 26u, 12u); + G(&v, &m, 0u, 10u, 20u, 30u, 2u, 24u); + G(&v, &m, 2u, 12u, 22u, 24u, 0u, 4u); + G(&v, &m, 4u, 14u, 16u, 26u, 22u, 14u); + G(&v, &m, 6u, 8u, 18u, 28u, 10u, 6u); // ROUND(2) - G(&v, &m, 0u, 8u, 16u, 24u, SIGMA82[32u], SIGMA82[33u]); - G(&v, &m, 2u, 10u, 18u, 26u, SIGMA82[34u], SIGMA82[35u]); - G(&v, &m, 4u, 12u, 20u, 28u, SIGMA82[36u], SIGMA82[37u]); - G(&v, &m, 6u, 14u, 22u, 30u, SIGMA82[38u], SIGMA82[39u]); - G(&v, &m, 0u, 10u, 20u, 30u, SIGMA82[40u], SIGMA82[41u]); - G(&v, &m, 2u, 12u, 22u, 24u, SIGMA82[42u], SIGMA82[43u]); - G(&v, &m, 4u, 14u, 16u, 26u, SIGMA82[44u], SIGMA82[45u]); - G(&v, &m, 6u, 8u, 18u, 28u, SIGMA82[46u], SIGMA82[47u]); - - - - - // 48-63 14u,18u,6u,2u,26u,24u,22u,28u,4u,12u,10u,20u,8u,0u,30u,16u + G(&v, &m, 0u, 8u, 16u, 24u, 22u, 16u); + G(&v, &m, 2u, 10u, 18u, 26u, 24u, 0u); + G(&v, &m, 4u, 12u, 20u, 28u, 10u, 4u); + G(&v, &m, 6u, 14u, 22u, 30u, 30u, 26u); + G(&v, &m, 0u, 10u, 20u, 30u, 20u, 28u); + G(&v, &m, 2u, 12u, 22u, 24u, 6u, 12u); + G(&v, &m, 4u, 14u, 16u, 26u, 14u, 2u); + G(&v, &m, 6u, 8u, 18u, 28u, 18u, 8u); // ROUND(3) - G(&v, &m, 0u, 8u, 16u, 24u, SIGMA82[48u], SIGMA82[49u]); - G(&v, &m, 2u, 10u, 18u, 26u, SIGMA82[50u], SIGMA82[51u]); - G(&v, &m, 4u, 12u, 20u, 28u, SIGMA82[52u], SIGMA82[53u]); - G(&v, &m, 6u, 14u, 22u, 30u, SIGMA82[54u], SIGMA82[55u]); - G(&v, &m, 0u, 10u, 20u, 30u, SIGMA82[56u], SIGMA82[57u]); - G(&v, &m, 2u, 12u, 22u, 24u, SIGMA82[58u], SIGMA82[59u]); - G(&v, &m, 4u, 14u, 16u, 26u, SIGMA82[60u], SIGMA82[61u]); - G(&v, &m, 6u, 8u, 18u, 28u, SIGMA82[62u], SIGMA82[63u]); - - - - // 64-79 18u,0u,10u,14u,4u,8u,20u,30u,28u,2u,22u,24u,12u,16u,6u,26u + G(&v, &m, 0u, 8u, 16u, 24u, 14u, 18u); + G(&v, &m, 2u, 10u, 18u, 26u, 6u, 2u); + G(&v, &m, 4u, 12u, 20u, 28u, 26u, 24u); + G(&v, &m, 6u, 14u, 22u, 30u, 22u, 28u); + G(&v, &m, 0u, 10u, 20u, 30u, 4u, 12u); + G(&v, &m, 2u, 12u, 22u, 24u, 10u, 20u); + G(&v, &m, 4u, 14u, 16u, 26u, 8u, 0u); + G(&v, &m, 6u, 8u, 18u, 28u, 30u, 16u); // ROUND(4) - G(&v, &m, 0u, 8u, 16u, 24u, SIGMA82[64u], SIGMA82[65u]); - G(&v, &m, 2u, 10u, 18u, 26u, SIGMA82[66u], SIGMA82[67u]); - G(&v, &m, 4u, 12u, 20u, 28u, SIGMA82[68u], SIGMA82[69u]); - G(&v, &m, 6u, 14u, 22u, 30u, SIGMA82[70u], SIGMA82[71u]); - G(&v, &m, 0u, 10u, 20u, 30u, SIGMA82[72u], SIGMA82[73u]); - G(&v, &m, 2u, 12u, 22u, 24u, SIGMA82[74u], SIGMA82[75u]); - G(&v, &m, 4u, 14u, 16u, 26u, SIGMA82[76u], SIGMA82[77u]); - G(&v, &m, 6u, 8u, 18u, 28u, SIGMA82[78u], SIGMA82[79u]); - - - - // 80-95 4u,24u,12u,20u,0u,22u,16u,6u,8u,26u,14u,10u,30u,28u,2u,18u + G(&v, &m, 0u, 8u, 16u, 24u, 18u, 0u); + G(&v, &m, 2u, 10u, 18u, 26u, 10u, 14u); + G(&v, &m, 4u, 12u, 20u, 28u, 4u, 8u); + G(&v, &m, 6u, 14u, 22u, 30u, 20u, 30u); + G(&v, &m, 0u, 10u, 20u, 30u, 28u, 2u); + G(&v, &m, 2u, 12u, 22u, 24u, 22u, 24u); + G(&v, &m, 4u, 14u, 16u, 26u, 12u, 16u); + G(&v, &m, 6u, 8u, 18u, 28u, 6u, 26u); // ROUND(5) - G(&v, &m, 0u, 8u, 16u, 24u, SIGMA82[80u], SIGMA82[81u]); - G(&v, &m, 2u, 10u, 18u, 26u, SIGMA82[82u], SIGMA82[83u]); - G(&v, &m, 4u, 12u, 20u, 28u, SIGMA82[84u], SIGMA82[85u]); - G(&v, &m, 6u, 14u, 22u, 30u, SIGMA82[86u], SIGMA82[87u]); - G(&v, &m, 0u, 10u, 20u, 30u, SIGMA82[88u], SIGMA82[89u]); - G(&v, &m, 2u, 12u, 22u, 24u, SIGMA82[90u], SIGMA82[91u]); - G(&v, &m, 4u, 14u, 16u, 26u, SIGMA82[92u], SIGMA82[93u]); - G(&v, &m, 6u, 8u, 18u, 28u, SIGMA82[94u], SIGMA82[95u]); + G(&v, &m, 0u, 8u, 16u, 24u, 4u, 24u); + G(&v, &m, 2u, 10u, 18u, 26u, 12u, 20u); + G(&v, &m, 4u, 12u, 20u, 28u, 0u, 22u); + G(&v, &m, 6u, 14u, 22u, 30u, 16u, 6u); + G(&v, &m, 0u, 10u, 20u, 30u, 8u, 26u); + G(&v, &m, 2u, 12u, 22u, 24u, 14u, 10u); + G(&v, &m, 4u, 14u, 16u, 26u, 30u, 28u); + G(&v, &m, 6u, 8u, 18u, 28u, 2u, 18u); -- 2.34.1