Repository navigation
Expand file tree
/
Copy pathbench.js
More file actions
48 lines (46 loc) · 1.58 KB
/
Copy pathbench.js
File metadata and controls
48 lines (46 loc) · 1.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//@ts-check
const b = require("benny");
const crypto = require("crypto");
const funs = [];
const dataForSign = Buffer.from("zzz".repeat(100));
{
const sodium = require("sodium");
const keypair = sodium.api.crypto_sign_seed_keypair(crypto.createHash("sha256").update("qaq").digest());
const hash = sodium.api.crypto_sign_detached(dataForSign, keypair.secretKey);
funs.push(
b.add("sodium sign", () => {
sodium.api.crypto_sign_detached(dataForSign, keypair.secretKey);
})
);
funs.push(
b.add("sodium verify", () => {
sodium.api.crypto_sign_verify_detached(hash, dataForSign, keypair.publicKey);
})
);
console.log(keypair, hash, sodium.api.crypto_sign_verify_detached(hash, dataForSign, keypair.publicKey));
}
{
const tweetnacl = require("tweetnacl");
const keypair = tweetnacl.sign.keyPair.fromSeed(crypto.createHash("sha256").update("qaq").digest());
const hash = tweetnacl.sign.detached(dataForSign, keypair.secretKey);
funs.push(
b.add("tweetnacl sign", () => {
tweetnacl.sign.detached(dataForSign, keypair.secretKey);
})
);
funs.push(
b.add("tweetnacl verify", () => {
tweetnacl.sign.detached.verify(dataForSign, hash, keypair.publicKey);
})
);
console.log(keypair, hash, tweetnacl.sign.detached.verify(dataForSign, hash, keypair.publicKey));
}
b.suite(
//
"sign and verity",
...funs,
b.cycle(),
b.complete(),
b.save({ file: "reduce", version: "1.0.0" }),
b.save({ file: "reduce", format: "table.html" })
);