From: Chris Duncan Date: Tue, 7 Jan 2025 01:27:44 +0000 (-0800) Subject: Revert array pointer dereferencing to troubleshoot invalid nonces. X-Git-Url: https://zoso.dev/?a=commitdiff_plain;h=e66bd63a21852c5353ed5967bc554fbef804d4e9;p=libnemo.git Revert array pointer dereferencing to troubleshoot invalid nonces. --- diff --git a/src/lib/workers/powgpu.ts b/src/lib/workers/powgpu.ts index 5a36170..c5cb6bc 100644 --- a/src/lib/workers/powgpu.ts +++ b/src/lib/workers/powgpu.ts @@ -83,26 +83,26 @@ export class PowGpu extends WorkerInterface { var xor1: u32; // a = a + b; - o0 = *va0 + (*v)[b]; - o1 = *va1 + (*v)[b+1u]; - if (*va0 > 0xFFFFFFFFu - (*v)[b]) { + o0 = (*v)[a] + (*v)[b]; + o1 = (*v)[a+1u] + (*v)[b+1u]; + if ((*v)[a] > 0xFFFFFFFFu - (*v)[b]) { o1 = o1 + 1u; } - *va0 = o0; - *va1 = o1; + (*v)[a] = o0; + (*v)[a+1u] = o1; // a = a + m[sigma[r][2*i+0]]; - o0 = *va0 + mx0; - o1 = *va1 + mx1; - if (*va0 > 0xFFFFFFFFu - mx0) { + o0 = (*v)[a] + mx0; + o1 = (*v)[a+1u] + mx1; + if ((*v)[a] > 0xFFFFFFFFu - mx0) { o1 = o1 + 1u; } - *va0 = o0; - *va1 = o1; + (*v)[a] = o0; + (*v)[a+1u] = o1; // d = rotr64(d ^ a, 32); - xor0 = (*v)[d] ^ *va0; - xor1 = (*v)[d+1u] ^ *va1; + xor0 = (*v)[d] ^ (*v)[a]; + xor1 = (*v)[d+1u] ^ (*v)[a+1u]; (*v)[d] = xor1; (*v)[d+1u] = xor0; @@ -122,26 +122,26 @@ export class PowGpu extends WorkerInterface { (*v)[b+1u] = (xor1 >> 24u) ^ (xor0 << 8u); // a = a + b; - o0 = *va0 + (*v)[b]; - o1 = *va1 + (*v)[b+1u]; - if (*va0 > 0xFFFFFFFFu - (*v)[b]) { + o0 = (*v)[a] + (*v)[b]; + o1 = (*v)[a+1u] + (*v)[b+1u]; + if ((*v)[a] > 0xFFFFFFFFu - (*v)[b]) { o1 = o1 + 1u; } - *va0 = o0; - *va1 = o1; + (*v)[a] = o0; + (*v)[a+1u] = o1; // a = a + m[sigma[r][2*i+1]]; - o0 = *va0 + my0; - o1 = *va1 + my1; - if (*va0 > 0xFFFFFFFFu - my0) { + o0 = (*v)[a] + my0; + o1 = (*v)[a+1u] + my1; + if ((*v)[a] > 0xFFFFFFFFu - my0) { o1 = o1 + 1u; } - *va0 = o0; - *va1 = o1; + (*v)[a] = o0; + (*v)[a+1u] = o1; // d = rotr64(d ^ a, 16) - xor0 = (*v)[d] ^ *va0; - xor1 = (*v)[d+1u] ^ *va1; + xor0 = (*v)[d] ^ (*v)[a]; + xor1 = (*v)[d+1u] ^ (*v)[a+1u]; (*v)[d] = (xor0 >> 16u) ^ (xor1 << 16u); (*v)[d+1u] = (xor1 >> 16u) ^ (xor0 << 16u);