....
This commit is contained in:
@ -4,6 +4,7 @@
|
||||
* Only works on lists up to 255 elements.
|
||||
*/
|
||||
function cryptoShuffle(l) {
|
||||
let out = [];
|
||||
for (let i = l.length - 1; i > 0; i--) {
|
||||
let value = new Uint8Array([0]);
|
||||
crypto.getRandomValues(value);
|
||||
@ -11,12 +12,13 @@ function cryptoShuffle(l) {
|
||||
crypto.getRandomValues(value);
|
||||
}
|
||||
|
||||
let temp = l[i];
|
||||
l[i] = l[value[0]];
|
||||
l[value[0]] = temp;
|
||||
let v = l.splice(value[0], 1);
|
||||
out.push(v[0]);
|
||||
}
|
||||
|
||||
return l;
|
||||
out.push(l[0]);
|
||||
|
||||
return out;
|
||||
}
|
||||
|
||||
window.cryptoShuffle = cryptoShuffle;
|
||||
@ -25,14 +27,27 @@ function proveRegions(regions) {
|
||||
// Construct prover coins
|
||||
let coins = [];
|
||||
|
||||
let regionNames = Object.keys(regions.keys());
|
||||
for (let x = 0; x < 20; x++) {
|
||||
let psi = cryptoShuffle(regionNames).join("");
|
||||
let regionNames = Object.keys(regions);
|
||||
for (let x = 0; x < 40; x++) {
|
||||
let psi = cryptoShuffle(structuredClone(regionNames)).join("");
|
||||
let newRegions = structuredClone(regions);
|
||||
// rearrange keys
|
||||
for (let index = 0; index < regionNames.length; index++) {
|
||||
let c = regions[psi[index]].clone();
|
||||
// re-blind
|
||||
c.update(c.pubKey.encrypt(0n));
|
||||
newRegions[regionNames[index]] = c.toString();
|
||||
}
|
||||
coins.push(newRegions);
|
||||
}
|
||||
|
||||
// Construct verifier coins
|
||||
let hasher = new jsSHA("SHA3-256", "TEXT");
|
||||
hasher.update(JSON.stringify(regions));
|
||||
hasher.update(JSON.stringify(coins));
|
||||
|
||||
console.log(hasher.getHash("UINT8ARRAY"));
|
||||
|
||||
// Construct prover proofs
|
||||
}
|
||||
|
||||
window.proveRegions = proveRegions;
|
||||
|
Reference in New Issue
Block a user