diff options
author | Florian Dold <florian.dold@gmail.com> | 2019-11-28 00:46:34 +0100 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2019-11-28 00:46:34 +0100 |
commit | 706c07fa1d069290992bd31d53b0c89324992f9c (patch) | |
tree | 8114c23cda7547f8475c7d8d579f51f968a97f9d /src/crypto/talerCrypto-test.ts | |
parent | c3ca556affe2f514aeb7fd052fe6d626d9319e99 (diff) | |
download | wallet-core-706c07fa1d069290992bd31d53b0c89324992f9c.tar.xz |
implement JS-only Taler, remove emscripten
Diffstat (limited to 'src/crypto/talerCrypto-test.ts')
-rw-r--r-- | src/crypto/talerCrypto-test.ts | 44 |
1 files changed, 42 insertions, 2 deletions
diff --git a/src/crypto/talerCrypto-test.ts b/src/crypto/talerCrypto-test.ts index 3f9d6f398..59949dbd3 100644 --- a/src/crypto/talerCrypto-test.ts +++ b/src/crypto/talerCrypto-test.ts @@ -29,8 +29,8 @@ import { rsaUnblind, rsaVerify, } from "./talerCrypto"; -import { hmacSha512, sha512, kdf } from "./kdf"; -import nacl = require("./nacl-fast"); +import { sha512, kdf } from "./primitives/kdf"; +import nacl = require("./primitives/nacl-fast"); function hexToBytes(hex: string) { for (var bytes = [], c = 0; c < hex.length; c += 2) @@ -159,3 +159,43 @@ test("taler-exchange-tvg blind signing", t => { 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); + + const h1 = nacl.hash(d); + const h2 = new nacl.HashState().update(d).finish(); + + const s = new nacl.HashState(); + for (let i = 0; i < n; i++) { + const b = new Uint8Array(1); + b[0] = d[i]; + s.update(b); + } + + const h3 = s.finish(); + + t.deepEqual(encodeCrock(h1), encodeCrock(h2)); + t.deepEqual(encodeCrock(h1), encodeCrock(h3)); +}); + +test("incremental hashing #2", (t) => { + const n = 10; + const d = nacl.randomBytes(n); + + const h1 = nacl.hash(d); + const h2 = new nacl.HashState().update(d).finish(); + const s = new nacl.HashState(); + for (let i = 0; i < n; i++) { + const b = new Uint8Array(1); + b[0] = d[i]; + s.update(b); + } + + const h3 = s.finish(); + + t.deepEqual(encodeCrock(h1), encodeCrock(h3)); + t.deepEqual(encodeCrock(h1), encodeCrock(h2)); +});
\ No newline at end of file |