From aaf950e2ad5c07d4423f9822e3a0ae9f7b8d2bdf Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Mon, 30 Mar 2020 16:09:32 +0530 Subject: re-format with prettier v2, fix HTML --- src/crypto/primitives/nacl-fast.ts | 25 +++++++++----------- src/crypto/primitives/sha256.ts | 5 +--- src/crypto/talerCrypto-test.ts | 37 +++++++++++++++++++----------- src/crypto/workers/cryptoApi.ts | 5 ++-- src/crypto/workers/cryptoImplementation.ts | 8 +++---- src/crypto/workers/cryptoWorker.ts | 2 +- src/crypto/workers/nodeThreadWorker.ts | 2 +- src/crypto/workers/synchronousWorker.ts | 4 +--- 8 files changed, 45 insertions(+), 43 deletions(-) (limited to 'src/crypto') diff --git a/src/crypto/primitives/nacl-fast.ts b/src/crypto/primitives/nacl-fast.ts index 66ab78162..14cf569db 100644 --- a/src/crypto/primitives/nacl-fast.ts +++ b/src/crypto/primitives/nacl-fast.ts @@ -5,14 +5,14 @@ // Implementation derived from TweetNaCl version 20140427. // See for details: http://tweetnacl.cr.yp.to/ -const gf = function(init: number[] = []) { +const gf = function (init: number[] = []) { const r = new Float64Array(16); if (init) for (let i = 0; i < init.length; i++) r[i] = init[i]; return r; }; // Pluggable, initialized in high-level API below. -let randombytes = function(x: Uint8Array, n: number): void { +let randombytes = function (x: Uint8Array, n: number): void { throw new Error("no PRNG"); }; @@ -2373,13 +2373,11 @@ function crypto_hash(out: Uint8Array, m: Uint8Array, n: number) { ts64(x, n - 8, (b / 0x20000000) | 0, b << 3); crypto_hashblocks_hl(hh, hl, x, n); - for (let i = 0; i < 8; i++) - ts64(out, 8 * i, hh[i], hl[i]); + for (let i = 0; i < 8; i++) ts64(out, 8 * i, hh[i], hl[i]); return 0; } - /** * Incremental version of crypto_hash. */ @@ -2400,7 +2398,7 @@ export class HashState { this.hh[5] = 0x9b05688c; this.hh[6] = 0x1f83d9ab; this.hh[7] = 0x5be0cd19; - + this.hl[0] = 0xf3bcc908; this.hl[1] = 0x84caa73b; this.hl[2] = 0xfe94f82b; @@ -2416,7 +2414,7 @@ export class HashState { let i = 0; while (i < data.length) { const r = 128 - this.p; - if (r > (data.length - i)) { + if (r > data.length - i) { for (let j = 0; i + j < data.length; j++) { this.next[this.p + j] = data[i + j]; } @@ -2441,14 +2439,13 @@ export class HashState { let b = this.total; for (let i = 0; i < n; i++) x[i] = this.next[i]; x[n] = 128; - + n = 256 - 128 * (n < 112 ? 1 : 0); x[n - 9] = 0; ts64(x, n - 8, (b / 0x20000000) | 0, b << 3); crypto_hashblocks_hl(this.hh, this.hl, x, n); - - for (let i = 0; i < 8; i++) - ts64(out, 8 * i, this.hh[i], this.hl[i]); + + for (let i = 0; i < 8; i++) ts64(out, 8 * i, this.hh[i], this.hl[i]); return out; } } @@ -3078,7 +3075,7 @@ export function sign_ed25519_pk_to_curve25519( return x25519_pk; } -(function() { +(function () { // Initialize PRNG if environment provides CSPRNG. // If not, methods calling randombytes will throw. const crypto = @@ -3086,7 +3083,7 @@ export function sign_ed25519_pk_to_curve25519( if (crypto && crypto.getRandomValues) { // Browsers. var QUOTA = 65536; - setPRNG(function(x: Uint8Array, n: number) { + setPRNG(function (x: Uint8Array, n: number) { var i, v = new Uint8Array(n); for (i = 0; i < n; i += QUOTA) { @@ -3099,7 +3096,7 @@ export function sign_ed25519_pk_to_curve25519( // Node.js. const cr = require("crypto"); if (cr && cr.randomBytes) { - setPRNG(function(x: Uint8Array, n: number) { + setPRNG(function (x: Uint8Array, n: number) { var i, v = cr.randomBytes(n); for (i = 0; i < n; i++) x[i] = v[i]; diff --git a/src/crypto/primitives/sha256.ts b/src/crypto/primitives/sha256.ts index f4f6690c7..c0f245bb3 100644 --- a/src/crypto/primitives/sha256.ts +++ b/src/crypto/primitives/sha256.ts @@ -339,10 +339,7 @@ export class HMAC { constructor(key: Uint8Array) { const pad = new Uint8Array(this.blockSize); if (key.length > this.blockSize) { - new HashSha256() - .update(key) - .finish(pad) - .clean(); + new HashSha256().update(key).finish(pad).clean(); } else { for (let i = 0; i < key.length; i++) { pad[i] = key[i]; diff --git a/src/crypto/talerCrypto-test.ts b/src/crypto/talerCrypto-test.ts index 59949dbd3..85c22d608 100644 --- a/src/crypto/talerCrypto-test.ts +++ b/src/crypto/talerCrypto-test.ts @@ -47,7 +47,7 @@ function bytesToHex(bytes: Uint8Array): string { return hex.join(""); } -test("encoding", t => { +test("encoding", (t) => { const utf8decoder = new TextDecoder("utf-8"); const utf8encoder = new TextEncoder(); const s = "Hello, World"; @@ -57,7 +57,7 @@ test("encoding", t => { t.deepEqual(s, sOut); }); -test("taler-exchange-tvg hash code", t => { +test("taler-exchange-tvg hash code", (t) => { const input = "91JPRV3F5GG4EKJN41A62V35E8"; const output = "CW96WR74JS8T53EC8GKSGD49QKH4ZNFTZXDAWMMV5GJ1E4BM6B8GPN5NVHDJ8ZVXNCW7Q4WBYCV61HCA3PZC2YJD850DT29RHHN7ESR"; @@ -67,7 +67,7 @@ test("taler-exchange-tvg hash code", t => { t.deepEqual(myOutput, output); }); -test("taler-exchange-tvg ecdhe key", t => { +test("taler-exchange-tvg ecdhe key", (t) => { const priv1 = "X4T4N0M8PVQXQEBW2BA7049KFSM7J437NSDFC6GDNM3N5J9367A0"; const pub1 = "M997P494MS6A95G1P0QYWW2VNPSHSX5Q6JBY5B9YMNYWP0B50X3G"; const priv2 = "14A0MMQ64DCV8HE0CS3WBC9DHFJAHXRGV7NEARFJPC5R5E1697E0"; @@ -83,7 +83,7 @@ test("taler-exchange-tvg ecdhe key", t => { t.deepEqual(encodeCrock(mySkm), skm); }); -test("taler-exchange-tvg eddsa key", t => { +test("taler-exchange-tvg eddsa key", (t) => { const priv = "9TM70AKDTS57AWY9JK2J4TMBTMW6K62WHHGZWYDG0VM5ABPZKD40"; const pub = "8GSJZ649T2PXMKZC01Y4ANNBE7MF14QVK9SQEC4E46ZHKCVG8AS0"; @@ -91,7 +91,7 @@ test("taler-exchange-tvg eddsa key", t => { t.deepEqual(encodeCrock(pair.publicKey), pub); }); -test("taler-exchange-tvg kdf", t => { +test("taler-exchange-tvg kdf", (t) => { const salt = "94KPT83PCNS7J83KC5P78Y8"; const ikm = "94KPT83MD1JJ0WV5CDS6AX10D5Q70XBM41NPAY90DNGQ8SBJD5GPR"; const ctx = @@ -110,7 +110,7 @@ test("taler-exchange-tvg kdf", t => { t.deepEqual(encodeCrock(myOut), out); }); -test("taler-exchange-tvg eddsa_ecdh", t => { +test("taler-exchange-tvg eddsa_ecdh", (t) => { const priv_ecdhe = "4AFZWMSGTVCHZPQ0R81NWXDCK4N58G7SDBBE5KXE080Y50370JJG"; const pub_ecdhe = "FXFN5GPAFTKVPWJDPVXQ87167S8T82T5ZV8CDYC0NH2AE14X0M30"; const priv_eddsa = "1KG54M8T3X8BSFSZXCR3SQBSR7Y9P53NX61M864S7TEVMJ2XVPF0"; @@ -137,7 +137,7 @@ test("taler-exchange-tvg eddsa_ecdh", t => { t.deepEqual(encodeCrock(myKm2), key_material); }); -test("taler-exchange-tvg blind signing", t => { +test("taler-exchange-tvg blind signing", (t) => { const messageHash = "TT1R28D79EJEJ9PC35AQS35CCG85DSXSZ508MV2HS2FN4ME6AHESZX5WP485R8A75KG53FN6F1YNW95008663TKAPWB81420VG17BY8"; const rsaPublicKey = @@ -149,18 +149,29 @@ test("taler-exchange-tvg blind signing", t => { "5VW0MS5PRBA3W8TPATSTDA2YRFQM1Z7F2DWKQ8ATMZYYY768Q3STZ3HGNVYQ6JB5NKP80G5HGE58616FPA70SX9PTW7EN8EJ23E26FASBWZBP8E2RWQQ5E0F72B2PWRP5ZCA2J3AB3F6P86XK4PZYT64RF94MDGHY0GSDSSBH5YSFB3VM0KVXA52H2Y2G9S85AVCSD3BTMHQRF5BJJ8JE00T4GK70PSTVCGMRKRNA7DGW7GD2F35W55AXF7R2YJC8PAGNSJYWKC3PC75A5N8H69K299AK5PM3CDDHNS4BMRNGF7K49CR4ZBFRXDAWMB3X6T05Q4NKSG0F1KP5JA0XBMF2YJK7KEPRD1EWCHJE44T9YXBTK4W9CV77X7Z9P407ZC6YB3M2ARANZXHJKSM3XC33M"; const sig = "PFT6WQJGCM9DE6264DJS6RMG4XDMCDBJKZGSXAF3BEXWZ979Q13NETKK05S1YV91CX3Y034FSS86SSHZTTE8097RRESQP52EKFGTWJXKHZJEQJ49YHMBNQDHW4CFBJECNJSV2PMHWVGXV7HB84R6P0S3ES559HWQX01Q9MYDEGRNHKW87QR2BNSG951D5NQGAKEJ2SSJBE18S6WYAC24FAP8TT8ANECH5371J0DJY0YR0VWAFWVJDV8XQSFXWMJ80N3A80SPSHPYJY3WZZXW63WQ46WHYY56ZSNE5G1RZ5CR0XYV2ECKPM8R0FS58EV16WTRAM1ABBFVNAT3CAEFAZCWP3XHPVBQY5NZVTD5QS2Q8SKJQ2XB30E11CWDN9KTV5CBK4DN72EVG73F3W3BATAKHG"; - - const myBm = rsaBlind(decodeCrock(messageHash), decodeCrock(bks), decodeCrock(rsaPublicKey)); + + const myBm = rsaBlind( + decodeCrock(messageHash), + decodeCrock(bks), + decodeCrock(rsaPublicKey), + ); t.deepEqual(encodeCrock(myBm), bm); - const mySig = rsaUnblind(decodeCrock(bs), decodeCrock(rsaPublicKey), decodeCrock(bks)); + const mySig = rsaUnblind( + decodeCrock(bs), + decodeCrock(rsaPublicKey), + decodeCrock(bks), + ); t.deepEqual(encodeCrock(mySig), sig); - const v = rsaVerify(decodeCrock(messageHash), decodeCrock(sig), decodeCrock(rsaPublicKey)); + const v = rsaVerify( + decodeCrock(messageHash), + decodeCrock(sig), + decodeCrock(rsaPublicKey), + ); t.true(v); }); - test("incremental hashing #1", (t) => { const n = 1024; const d = nacl.randomBytes(n); @@ -198,4 +209,4 @@ test("incremental hashing #2", (t) => { t.deepEqual(encodeCrock(h1), encodeCrock(h3)); t.deepEqual(encodeCrock(h1), encodeCrock(h2)); -}); \ No newline at end of file +}); diff --git a/src/crypto/workers/cryptoApi.ts b/src/crypto/workers/cryptoApi.ts index 0b7c2e233..ab97e1274 100644 --- a/src/crypto/workers/cryptoApi.ts +++ b/src/crypto/workers/cryptoApi.ts @@ -281,8 +281,9 @@ export class CryptoApi { CryptoApi.enableTracing && console.log( - `rpc ${currentWorkItem.operation} took ${timer.performanceNow() - - currentWorkItem.startTime}ms`, + `rpc ${currentWorkItem.operation} took ${ + timer.performanceNow() - currentWorkItem.startTime + }ms`, ); currentWorkItem.resolve(msg.data.result); } diff --git a/src/crypto/workers/cryptoImplementation.ts b/src/crypto/workers/cryptoImplementation.ts index 55caecb43..156c72ba0 100644 --- a/src/crypto/workers/cryptoImplementation.ts +++ b/src/crypto/workers/cryptoImplementation.ts @@ -313,9 +313,7 @@ export class CryptoImplementation { stringToBytes(paytoUri + "\0"), new Uint8Array(0), ); - const p = buildSigPS(SignaturePurpose.MASTER_WIRE_DETAILS) - .put(h) - .build(); + const p = buildSigPS(SignaturePurpose.MASTER_WIRE_DETAILS).put(h).build(); return eddsaVerify(p, decodeCrock(sig), decodeCrock(masterPub)); } @@ -467,8 +465,8 @@ export class CryptoImplementation { exchangeBaseUrl, hash: encodeCrock(sessionHash), meltCoinPub: meltCoin.coinPub, - newDenomHashes: newCoinDenoms.map(d => d.denomPubHash), - newDenoms: newCoinDenoms.map(d => d.denomPub), + newDenomHashes: newCoinDenoms.map((d) => d.denomPubHash), + newDenoms: newCoinDenoms.map((d) => d.denomPub), norevealIndex: undefined, planchetsForGammas: planchetsForGammas, transferPrivs, diff --git a/src/crypto/workers/cryptoWorker.ts b/src/crypto/workers/cryptoWorker.ts index d4449f4a2..9f3ee6f50 100644 --- a/src/crypto/workers/cryptoWorker.ts +++ b/src/crypto/workers/cryptoWorker.ts @@ -5,4 +5,4 @@ export interface CryptoWorker { onmessage: ((m: any) => void) | undefined; onerror: ((m: any) => void) | undefined; -} \ No newline at end of file +} diff --git a/src/crypto/workers/nodeThreadWorker.ts b/src/crypto/workers/nodeThreadWorker.ts index e40f3c950..1247900f9 100644 --- a/src/crypto/workers/nodeThreadWorker.ts +++ b/src/crypto/workers/nodeThreadWorker.ts @@ -96,7 +96,7 @@ export function handleWorkerMessage(msg: any) { } }; - handleRequest().catch(e => { + handleRequest().catch((e) => { console.error("error in node worker", e); }); } diff --git a/src/crypto/workers/synchronousWorker.ts b/src/crypto/workers/synchronousWorker.ts index 12eecde9a..b453468d5 100644 --- a/src/crypto/workers/synchronousWorker.ts +++ b/src/crypto/workers/synchronousWorker.ts @@ -37,12 +37,10 @@ export class SynchronousCryptoWorkerFactory implements CryptoWorkerFactory { } } - /** * Worker implementation that uses node subprocesses. */ export class SynchronousCryptoWorker { - /** * Function to be called when we receive a message from the worker thread. */ @@ -121,7 +119,7 @@ export class SynchronousCryptoWorker { return; } - this.handleRequest(operation, id, args).catch(e => { + this.handleRequest(operation, id, args).catch((e) => { console.error("Error while handling crypto request:", e); }); } -- cgit v1.2.3