Skip to content

Commit

Permalink
updated benchmarks
Browse files Browse the repository at this point in the history
  • Loading branch information
JulienR1 committed Nov 20, 2023
1 parent c00373e commit a02b0c5
Showing 1 changed file with 45 additions and 127 deletions.
172 changes: 45 additions & 127 deletions src/webhook/verify.bench.ts
Original file line number Diff line number Diff line change
@@ -1,160 +1,78 @@
import { subtle } from "crypto";
import jsonwebtoken from "jsonwebtoken";
import { bench, group, run } from "mitata";
import tweet from "tweetnacl";
import { baseline, bench, group, run } from "mitata";

// This key has been generated by https://jwt.io/.
// They SHOULD NOT be used in any production environment.
const JWT_PUBLIC_KEY = `-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu1SU1LfVLPHCozMxH2Mo
4lgOEePzNm0tRgeLezV6ffAt0gunVTLw7onLRnrq0/IzW7yWR7QkrmBL7jTKEn5u
+qKhbwKfBstIs+bMY2Zkp18gnTxKLxoS2tFczGkPLPgizskuemMghRniWaoLcyeh
kd3qqGElvW/VDL5AaWTg0nLVkjRo9z+40RQzuVaE8AkAFmxZzow3x+VJYKdjykkJ
0iT9wCS0DRTXu269V264Vf/3jvredZiKRkgwlL9xNAwxXFg0x/XFw005UWVRIkdg
cKWTjpBP2dPwVZ4WWC+9aGVd+Gyn1o0CLelf4rEjGoXbAAEgAqeGUxrcIlbjXfbc
mwIDAQAB
-----END PUBLIC KEY-----`;

const body =
'{"cursor":"gBCLb0z81lU8vbvZVzJkEaWwLpc_DFhqVQ3jLxVJgYH2pSTFicymUzd9bx2GlKH51RboGgmo19eZRX588ZED7YW8y7FhuSM6EHh4wNzo87Dne6KjPQlIIOhjC-iJMNncUT7SYgz9f7UI5N_nb6XZMxMyMZEuK2blizdZqoZXIfAVsHthkjz6cJ6Bga_A-YtEq-AnEuf1xn6lDzF1Lx4LOc_RNqGe6z4nN3Rq","clock":{"timestamp":"2023-06-15T04:21:58.000Z","number":250665484,"id":"0ef0da0cf870f489833ac498da073acadf895d22f3dce68483aa43cac1d27b17"},"manifest":{"chain":"wax","moduleName":"map_transfers","moduleHash":"6aa24e6aa34db4a4faf55c69c6f612aeb06053c2"},"data":{"items":[{"trxId":"dd93c64db8ff91cfac74e731fd518548aa831be3d833e6a1fefeac69d2ddd138","actionOrdinal":2,"contract":"eosio.token","action":"transfer","symcode":"WAX","from":"banxawallet1","to":"atomicmarket","quantity":"1340.00000000 WAX","memo":"deposit","precision":8,"amount":"134000000000","value":1340},{"trxId":"dd93c64db8ff91cfac74e731fd518548aa831be3d833e6a1fefeac69d2ddd138","actionOrdinal":7,"contract":"eosio.token","action":"transfer","symcode":"WAX","from":"atomicmarket","to":"jft4m.c.wam","quantity":"1206.00000000 WAX","memo":"AtomicMarket Sale Payout - ID #129675349","precision":8,"amount":"120600000000","value":1206}]}}';
const timestamp = 1686802918;
const signature =
"a2e1437d2b32774418f46365d4dccb4509be5469ed24ba0d1707ce4ca76dd7fbe0b01597d9c91391fba5316e917d4dca3134a6c1f2c283d708c02cd33d5b080d";
const PUBLIC_KEY = "a3cb7366ee8ca77225b4d41772e270e4e831d171d1de71d91707c42e7ba82cc9";

const jwtRS256Token =
"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJjdXJzb3IiOiJnQkNMYjB6ODFsVTh2YnZaVnpKa0VhV3dMcGNfREZocVZRM2pMeFZKZ1lIMnBTVEZpY3ltVXpkOWJ4MkdsS0g1MVJib0dnbW8xOWVaUlg1ODhaRUQ3WVc4eTdGaHVTTTZFSGg0d056bzg3RG5lNktqUFFsSUlPaGpDLWlKTU5uY1VUN1NZZ3o5ZjdVSTVOX25iNlhaTXhNeU1aRXVLMmJsaXpkWnFvWlhJZkFWc0h0aGtqejZjSjZCZ2FfQS1ZdEVxLUFuRXVmMXhuNmxEekYxTHg0TE9jX1JOcUdlNno0bk4zUnEiLCJjbG9jayI6eyJ0aW1lc3RhbXAiOiIyMDIzLTA2LTE1VDA0OjIxOjU4LjAwMFoiLCJudW1iZXIiOjI1MDY2NTQ4NCwiaWQiOiIwZWYwZGEwY2Y4NzBmNDg5ODMzYWM0OThkYTA3M2FjYWRmODk1ZDIyZjNkY2U2ODQ4M2FhNDNjYWMxZDI3YjE3In0sIm1hbmlmZXN0Ijp7ImNoYWluIjoid2F4IiwibW9kdWxlTmFtZSI6Im1hcF90cmFuc2ZlcnMiLCJtb2R1bGVIYXNoIjoiNmFhMjRlNmFhMzRkYjRhNGZhZjU1YzY5YzZmNjEyYWViMDYwNTNjMiJ9LCJkYXRhIjp7Iml0ZW1zIjpbeyJ0cnhJZCI6ImRkOTNjNjRkYjhmZjkxY2ZhYzc0ZTczMWZkNTE4NTQ4YWE4MzFiZTNkODMzZTZhMWZlZmVhYzY5ZDJkZGQxMzgiLCJhY3Rpb25PcmRpbmFsIjoyLCJjb250cmFjdCI6ImVvc2lvLnRva2VuIiwiYWN0aW9uIjoidHJhbnNmZXIiLCJzeW1jb2RlIjoiV0FYIiwiZnJvbSI6ImJhbnhhd2FsbGV0MSIsInRvIjoiYXRvbWljbWFya2V0IiwicXVhbnRpdHkiOiIxMzQwLjAwMDAwMDAwIFdBWCIsIm1lbW8iOiJkZXBvc2l0IiwicHJlY2lzaW9uIjo4LCJhbW91bnQiOiIxMzQwMDAwMDAwMDAiLCJ2YWx1ZSI6MTM0MH0seyJ0cnhJZCI6ImRkOTNjNjRkYjhmZjkxY2ZhYzc0ZTczMWZkNTE4NTQ4YWE4MzFiZTNkODMzZTZhMWZlZmVhYzY5ZDJkZGQxMzgiLCJhY3Rpb25PcmRpbmFsIjo3LCJjb250cmFjdCI6ImVvc2lvLnRva2VuIiwiYWN0aW9uIjoidHJhbnNmZXIiLCJzeW1jb2RlIjoiV0FYIiwiZnJvbSI6ImF0b21pY21hcmtldCIsInRvIjoiamZ0NG0uYy53YW0iLCJxdWFudGl0eSI6IjEyMDYuMDAwMDAwMDAgV0FYIiwibWVtbyI6IkF0b21pY01hcmtldCBTYWxlIFBheW91dCAtIElEICMxMjk2NzUzNDkiLCJwcmVjaXNpb24iOjgsImFtb3VudCI6IjEyMDYwMDAwMDAwMCIsInZhbHVlIjoxMjA2fV19fQ.UnwwKt12aniFmIxv8XxqKzKCwwHL30rEZr2HY4qkUjNf80kQXvC_UdjbKatUUxKWYid-OdHUIo6RZyIqlOP4yF2XPoXkM-H2vRYiyPS8SvLMivn06QrVKJWXYJsd_7g3-_LEno7qmiSldhEBk5VwGTUngxeLF92r5btCAER_uAGezl-Qw7vQGS7L6GqViCH8Zddo3XkLL785JUTtae2J0Htk4Uvj058-MYHJqp6Il9CScif9bFUUE4ou7p6qlOLmxEmcWznTZYHGwJCUVwnkgNa3NFuF5TqG5mz-Z0jJ66EL_Xizxv1UD-DbVboq8xHw_6tcKkLcvI9N0hRoDM4quQ";
const jwtRS256SmallToken =
"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjBlZjBkYTBjZjg3MGY0ODk4MzNhYzQ5OGRhMDczYWNhZGY4OTVkMjJmM2RjZTY4NDgzYWE0M2NhYzFkMjdiMTciLCJjaGFpbiI6IndheCIsIm1vZHVsZUhhc2giOiI2YWEyNGU2YWEzNGRiNGE0ZmFmNTVjNjljNmY2MTJhZWIwNjA1M2MyIn0.HehZ_Y3858hyBbUpuQTYrZiRzo21MKknQTX_rb2hf9J2NU1Q79ORiFNBftWJkMFk585tKWPVfgCMbiWI2frfVhTzkDo6nXyQrYSQUDz7Afh8RE1AHKLpMN1vKxN7ro4k-VcfJguFD8CJz_fG9Ue4GcqMC3AmO5FKv2oagnyq6zggQwI9cqz8vileaFdNMjSW2L-ZTuect81ca8fc08AO_l_V2sKXJADuhukt-sEqisa_1pcL5FWvRhkiKJVZj5IRsfxIID2AvuXQLQ5emZk3uJekj_UKByYEm7QTGNFXNPRp-xAwbuBVwRndneWAu5_1XGqZyz6zz_n1Mtrd9JvwCQ";

const HS256Secret =
"sJvN2K9xokbz+EnnE0Hl+Rha85/uA+vOtD7XcusT/wrzyuYlIAsBnzRGw47iXOMDLfZU+NdXLmdNmamwpT68xLu6vtqbNVFbi9ZuEMZnPfmpIhgkRS1mJrN4CvMsx2UWbtkVaTlzVTne8PXdLvgPeaFHX/Xn6YOKKzyPaT8orb1NVk5d6fCJ6Sm9R8H2HGzOxJ2kY1bCjF+QIvWJF3XtruAC8KUfvwQjagoGrRxSpszTbESu90nbtXpvonYRK9w7BpXppVVP5vqIq1oXRgWqzNJ8UDSDKRh9lh/Fm8V9kdIZRB/5J7NgwXIZX0J6DJ5ecxnCGgF7+5Yzplf015r9ww==";
const jwtHS256Token =
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjBlZjBkYTBjZjg3MGY0ODk4MzNhYzQ5OGRhMDczYWNhZGY4OTVkMjJmM2RjZTY4NDgzYWE0M2NhYzFkMjdiMTciLCJjaGFpbiI6IndheCIsIm1vZHVsZUhhc2giOiI2YWEyNGU2YWEzNGRiNGE0ZmFmNTVjNjljNmY2MTJhZWIwNjA1M2MyIn0.pGH4MWTFgWHUA4c_Cgkrc90EpE9uHEAys9wDxHWnd_c";

const ES256_PUBLIC_KEY = `-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEEVs/o5+uQbTjL3chynL4wXgUg2R9
q9UU8I5mEovUf86QZ7kOBIjJwqnzD1omageEHWwHdBO6B+dFabmdT9POxg==
-----END PUBLIC KEY-----`;
const ES256_PRIVATE_KEY = `-----BEGIN PRIVATE KEY----- MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgevZzL1gdAFr88hb2 OF/2NxApJCzGCEDdfSp6VQO30hyhRANCAAQRWz+jn65BtOMvdyHKcvjBeBSDZH2r 1RTwjmYSi9R/zpBnuQ4EiMnCqfMPWiZqB4QdbAd0E7oH50VpuZ1P087G
-----END PRIVATE KEY-----`;

const jwtES256Token =
"eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjBlZjBkYTBjZjg3MGY0ODk4MzNhYzQ5OGRhMDczYWNhZGY4OTVkMjJmM2RjZTY4NDgzYWE0M2NhYzFkMjdiMTciLCJjaGFpbiI6IndheCIsIm1vZHVsZUhhc2giOiI2YWEyNGU2YWEzNGRiNGE0ZmFmNTVjNjljNmY2MTJhZWIwNjA1M2MyIn0.A4VIhZ8sdWaVQeCqvCiUTiFr-MUXjHrlnFGiUUAeRDtyekszcMy1n1CqbSYJfoVHqmXx1vZyOslbvro1ZIexlQ";

const private_key =
// These keys should not be used in any production environment
const privateKeyStr =
"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";
const public_key =
const publicKeyStr =
"MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA7aklMyxBflSaAAT3oIJ/zFyaxZy6+z/W8KTa3A/dh974qy/UEfudT7k3tNkop6gYT0zm0Ez9SHc+7K6b3J/DdPso8XXBdoy0I7eKYPEi0C5ji7TkIY9R1vWBfQn8oD1qKe0d9j4TjEchO/oJR/yoWRg8tQlNz1/ShuYXZK6c3ClMb4YSpiRvLHmdqYsjnbaoZL9GSK7VBJCDG7bptjFbltN5SFXpTJWBEFD92zrLGpN+Qxen8ZhKcu50t75AlUXhRBWao2Gbnd7TfG248YdUHSviczbKfgpB7h79nzOKrpd1x2qh/7DgImZp/jA1bhALTG9ediRsKxOq6l86zME2I8SWLWHDj//ra7PxEuzeiuI9RCHACVi5WWp2sXQNQVhtB5QXeuABpqWbTKh+xD/a4KgDS50VWDowdKKIeU9Ymv1LVdEKuZVFsh1Dd2HquhckV9+KFOUG4CjcGByfoH97qTNum2aKy7PyrNLeQ2ynmKyJV78O8vZ5A9ruhSxVRBWTmNER/D1AUSXZFCYbDPi7oSH5dDn+dRLIAxCe0rKb9Rnar2BQVrxglz8M0GFC0lSlo66J7eMulJIfor1njyPNeu8QfEm0wQlRuI8EYWQdFt83N3rmaqotD6HZ24Ww6PiLHC1CLfziLFnZIdOepd3t7H9oJIX6az/m+/C3fa3wEDkCAwEAAQ==";

const keypair = await subtle.generateKey(
{
name: "RSASSA-PKCS1-v1_5",
modulusLength: 4096,
hash: "SHA-256",
publicExponent: new Uint8Array([0x01, 0x00, 0x01]),
},
true,
["sign"]
);

// console.log(Buffer.from(await subtle.exportKey("spki", keypair.publicKey)).toString("base64"));
// console.log("\n\n");
// console.log(Buffer.from(await subtle.exportKey("pkcs8", keypair.privateKey)).toString("base64"));

// const header = "-----BEGIN PRIVATE KEY-----";
// const footer = "-----END PRIVATE KEY-----";
// const pemPrivateKeyContents = private_key.substring(
// header.length,
// private_key.length - footer.length
// );
const privateKeyBuffer = Buffer.from(private_key, "base64");
const private_key_ = await subtle.importKey(
const privateKey = await subtle.importKey(
"pkcs8",
privateKeyBuffer,
Buffer.from(privateKeyStr, "base64"),
{ name: "RSASSA-PKCS1-v1_5", hash: "SHA-256" },
false,
["sign"]
);

// const publicKeyContents = public_key.substring(header.length, public_key.length - footer.length);
const publicKeyBuffer = Buffer.from(public_key, "base64");
const public_key_ = await subtle.importKey(
const publicKey = await subtle.importKey(
"spki",
publicKeyBuffer,
Buffer.from(publicKeyStr, "base64"),
{ name: "RSASSA-PKCS1-v1_5", hash: "SHA-256" },
false,
["verify"]
);

const body_string = JSON.stringify({
const signature =
"ea3h6cEpTINyaH+w6kGfn8MsROHKScpQgK14P818F9rIOySlR4v7IjI2oi8ueoVIucD9mRLmdPX8Sp92GyIMeE5IhURbk0Dokpogw5lBN7xWw3ixkan/AH7BbLWb0K3rok/tmz3OUys6EggFUUNIRQg9xnThxXA4wNB3ZAkL4nphhX7/fRrITvfXQE3HfBNI9jMjpolnYIHzoZhH1/W6t94rLIdLeXB/48Rze201cpN351e1NxzBnE9TqmGPIu6lBlP/DGxjFiYBOZTcZGo5/ZUXeez2uuy02OyYgTQcpSNzIDqrtd+SVaODfWTVgo0Zueu2HxB1U2N8tlllxZlCD4JJTZE0xWcMvHxA1Fo5COdMO2e6K4HY8bP5tL3GxH9B0rVoM5LCotObGDbW1ERwFMdatLXheqqQerjxKsN7nZSly1pF2b3Pmo9nbR1AhpI97beRex5FyHvUJRaUJnxCF1iH6SbO4S76QVaGq44I3Q3V30tT+ciTEwKOpVutcUROF5kpamzSQ/qvVdnUyYwyoZAOA8oQvyQT0HvLyz5kr7t0UT8982irEYN5pvNeoZ86WKH4pmxdNmi8829nHvuc2ZxVgC8npRS4c3dBmHj/W5V2a/0YfZp9ZRgMA/UJ+l1vZfnv9KaijOEtGjmXG8fD4iCrFS2AaorGhQVSbO2Myuw=";
const tokenBody =
"eyJjaGFpbiI6IndheCIsIm51bWJlciI6MTAwMDAwMCwibW9kdWxlSGFzaCI6IjZhYTI0ZTZhYTM0ZGI0YTRmYWY1NWM2OWM2ZjYxMmFlYjA2MDUzYzIifQ==";

group("validate-signature", () => {
baseline("baseline", () => {});
bench(
"subtle",
async () =>
await subtle.verify(
{ name: "RSASSA-PKCS1-v1_5" },
publicKey,
Buffer.from(signature, "base64"),
Buffer.from(tokenBody, "base64")
)
);
});

const body =
'{"cursor":"gBCLb0z81lU8vbvZVzJkEaWwLpc_DFhqVQ3jLxVJgYH2pSTFicymUzd9bx2GlKH51RboGgmo19eZRX588ZED7YW8y7FhuSM6EHh4wNzo87Dne6KjPQlIIOhjC-iJMNncUT7SYgz9f7UI5N_nb6XZMxMyMZEuK2blizdZqoZXIfAVsHthkjz6cJ6Bga_A-YtEq-AnEuf1xn6lDzF1Lx4LOc_RNqGe6z4nN3Rq","clock":{"timestamp":"2023-06-15T04:21:58.000Z","number":250665484,"id":"0ef0da0cf870f489833ac498da073acadf895d22f3dce68483aa43cac1d27b17"},"manifest":{"chain":"wax","moduleName":"map_transfers","moduleHash":"6aa24e6aa34db4a4faf55c69c6f612aeb06053c2"},"data":{"items":[{"trxId":"dd93c64db8ff91cfac74e731fd518548aa831be3d833e6a1fefeac69d2ddd138","actionOrdinal":2,"contract":"eosio.token","action":"transfer","symcode":"WAX","from":"banxawallet1","to":"atomicmarket","quantity":"1340.00000000 WAX","memo":"deposit","precision":8,"amount":"134000000000","value":1340},{"trxId":"dd93c64db8ff91cfac74e731fd518548aa831be3d833e6a1fefeac69d2ddd138","actionOrdinal":7,"contract":"eosio.token","action":"transfer","symcode":"WAX","from":"atomicmarket","to":"jft4m.c.wam","quantity":"1206.00000000 WAX","memo":"AtomicMarket Sale Payout - ID #129675349","precision":8,"amount":"120600000000","value":1206}]}}';
const bodyBuffer = Buffer.from(body);

const shortBody = JSON.stringify({
chain: "wax",
number: 1_000_000,
moduleHash: "6aa24e6aa34db4a4faf55c69c6f612aeb06053c2",
});
const body_ = Buffer.from(body_string);
// const sig = await subtle.sign("RSASSA-PKCS1-v1_5", private_key_, Buffer.from(body));
// console.log(Buffer.from(sig).toString("base64"));
const shortBodyBuffer = Buffer.from(shortBody);

const subtleSignature =
"ea3h6cEpTINyaH+w6kGfn8MsROHKScpQgK14P818F9rIOySlR4v7IjI2oi8ueoVIucD9mRLmdPX8Sp92GyIMeE5IhURbk0Dokpogw5lBN7xWw3ixkan/AH7BbLWb0K3rok/tmz3OUys6EggFUUNIRQg9xnThxXA4wNB3ZAkL4nphhX7/fRrITvfXQE3HfBNI9jMjpolnYIHzoZhH1/W6t94rLIdLeXB/48Rze201cpN351e1NxzBnE9TqmGPIu6lBlP/DGxjFiYBOZTcZGo5/ZUXeez2uuy02OyYgTQcpSNzIDqrtd+SVaODfWTVgo0Zueu2HxB1U2N8tlllxZlCD4JJTZE0xWcMvHxA1Fo5COdMO2e6K4HY8bP5tL3GxH9B0rVoM5LCotObGDbW1ERwFMdatLXheqqQerjxKsN7nZSly1pF2b3Pmo9nbR1AhpI97beRex5FyHvUJRaUJnxCF1iH6SbO4S76QVaGq44I3Q3V30tT+ciTEwKOpVutcUROF5kpamzSQ/qvVdnUyYwyoZAOA8oQvyQT0HvLyz5kr7t0UT8982irEYN5pvNeoZ86WKH4pmxdNmi8829nHvuc2ZxVgC8npRS4c3dBmHj/W5V2a/0YfZp9ZRgMA/UJ+l1vZfnv9KaijOEtGjmXG8fD4iCrFS2AaorGhQVSbO2Myuw=";
const subtleInput =
"eyJjaGFpbiI6IndheCIsIm51bWJlciI6MTAwMDAwMCwibW9kdWxlSGFzaCI6IjZhYTI0ZTZhYTM0ZGI0YTRmYWY1NWM2OWM2ZjYxMmFlYjA2MDUzYzIifQ==";
// const subtleSignature =
// "5Q6QODtttiY+YxuKsCWJ5XK18HqegqwaqqyUMy1YeO0e0uJD/Yz1WnmrtCOdEfIuGC/TDpOnJY2Ol6sAmFNY1CxGnjPglEd3Fj673WD+SupSnzRy8DPQRX0EjSqskv+jSsgDSikU/KF1+4kfT174DS0nupYUOeG6gED3A5atQgMsWxfba0FMgcIQ2d7PerOvQ/YOBF0K9ClEVxpOuitVDpydiYrfRaXFgcYj6tU8WXJNVJ4fYtyK6T1WG0y8jjihfN77F44MZBY7mW2p1qlwRh3z0yKSFHC4JgFKWQd3WjjQSMGz2YBk33gdoPrHtL8nTbaGrrSCcdEcMpIBM7hDHhOlSbqYvVygjuEe3U4v+G3Ye60RNuXSZSo0YOzbwNSmLqFlKT21bYhY9NDjGTBtzTOyppqWPRzUYTZjwlMubQD9AbjPCugLz6dc68UZljEpeQNhPeZA1Gw4C2hKxK+q6MsKY1seg5AjYfuZJWS5IQeAvqr55k6BGMtf17hqc0oPAHHb/wcBKg2MzNQt2BKZNngmIQrmteRGdPmYYlDMqOm+qr+NjYpQn3d0FGkRtatgHiiwnqEn4nwvC0d21DBz7HSl/Q9OPFWHpgz8VilqoqJQ6nCEmM714VMaYSuJWBHisIpl4D/GGs2dZNHmZaZOt2AumYkmwhNDlUcX/9UYpnA=";
// const subtleInput =
// "eyJjdXJzb3IiOiJnQkNMYjB6ODFsVTh2YnZaVnpKa0VhV3dMcGNfREZocVZRM2pMeFZKZ1lIMnBTVEZpY3ltVXpkOWJ4MkdsS0g1MVJib0dnbW8xOWVaUlg1ODhaRUQ3WVc4eTdGaHVTTTZFSGg0d056bzg3RG5lNktqUFFsSUlPaGpDLWlKTU5uY1VUN1NZZ3o5ZjdVSTVOX25iNlhaTXhNeU1aRXVLMmJsaXpkWnFvWlhJZkFWc0h0aGtqejZjSjZCZ2FfQS1ZdEVxLUFuRXVmMXhuNmxEekYxTHg0TE9jX1JOcUdlNno0bk4zUnEiLCJjbG9jayI6eyJ0aW1lc3RhbXAiOiIyMDIzLTA2LTE1VDA0OjIxOjU4LjAwMFoiLCJudW1iZXIiOjI1MDY2NTQ4NCwiaWQiOiIwZWYwZGEwY2Y4NzBmNDg5ODMzYWM0OThkYTA3M2FjYWRmODk1ZDIyZjNkY2U2ODQ4M2FhNDNjYWMxZDI3YjE3In0sIm1hbmlmZXN0Ijp7ImNoYWluIjoid2F4IiwibW9kdWxlTmFtZSI6Im1hcF90cmFuc2ZlcnMiLCJtb2R1bGVIYXNoIjoiNmFhMjRlNmFhMzRkYjRhNGZhZjU1YzY5YzZmNjEyYWViMDYwNTNjMiJ9LCJkYXRhIjp7Iml0ZW1zIjpbeyJ0cnhJZCI6ImRkOTNjNjRkYjhmZjkxY2ZhYzc0ZTczMWZkNTE4NTQ4YWE4MzFiZTNkODMzZTZhMWZlZmVhYzY5ZDJkZGQxMzgiLCJhY3Rpb25PcmRpbmFsIjoyLCJjb250cmFjdCI6ImVvc2lvLnRva2VuIiwiYWN0aW9uIjoidHJhbnNmZXIiLCJzeW1jb2RlIjoiV0FYIiwiZnJvbSI6ImJhbnhhd2FsbGV0MSIsInRvIjoiYXRvbWljbWFya2V0IiwicXVhbnRpdHkiOiIxMzQwLjAwMDAwMDAwIFdBWCIsIm1lbW8iOiJkZXBvc2l0IiwicHJlY2lzaW9uIjo4LCJhbW91bnQiOiIxMzQwMDAwMDAwMDAiLCJ2YWx1ZSI6MTM0MH0seyJ0cnhJZCI6ImRkOTNjNjRkYjhmZjkxY2ZhYzc0ZTczMWZkNTE4NTQ4YWE4MzFiZTNkODMzZTZhMWZlZmVhYzY5ZDJkZGQxMzgiLCJhY3Rpb25PcmRpbmFsIjo3LCJjb250cmFjdCI6ImVvc2lvLnRva2VuIiwiYWN0aW9uIjoidHJhbnNmZXIiLCJzeW1jb2RlIjoiV0FYIiwiZnJvbSI6ImF0b21pY21hcmtldCIsInRvIjoiamZ0NG0uYy53YW0iLCJxdWFudGl0eSI6IjEyMDYuMDAwMDAwMDAgV0FYIiwibWVtbyI6IkF0b21pY01hcmtldCBTYWxlIFBheW91dCAtIElEICMxMjk2NzUzNDkiLCJwcmVjaXNpb24iOjgsImFtb3VudCI6IjEyMDYwMDAwMDAwMCIsInZhbHVlIjoxMjA2fV19fQ==";

group("verify", () => {
bench("tweetnacl-js", () =>
tweet.sign.detached.verify(
Buffer.from(timestamp + body),
Buffer.from(signature, "hex"),
Buffer.from(PUBLIC_KEY, "hex")
)
);
// bench("tweetnacl-c", () =>
// verify(
// Buffer.from(timestamp + body),
// Buffer.from(signature, "hex"),
// Buffer.from(PUBLIC_KEY, "hex")
// )
// );
bench("jwt-rs256", () =>
jsonwebtoken.verify(jwtRS256Token, JWT_PUBLIC_KEY, { algorithms: ["RS256"] })
);
// bench("jwt-rs256-small-token", () =>
// jsonwebtoken.verify(jwtRS256SmallToken, JWT_PUBLIC_KEY, { algorithms: ["RS256"] })
// );
bench("jwt-hs256", () =>
jsonwebtoken.verify(jwtHS256Token, HS256Secret, { algorithms: ["HS256"] })
);
bench("jwt-es256", () =>
jsonwebtoken.verify(jwtES256Token, ES256_PUBLIC_KEY, { algorithms: ["ES256"] })
group("sign-payload", () => {
bench(
"subtle.sign() - full payload - with buffer generation",
async () => await subtle.sign("RSASSA-PKCS1-v1_5", privateKey, Buffer.from(body))
);
bench("subtle", async () => {
const result = await subtle.verify(
{ name: "RSASSA-PKCS1-v1_5" },
public_key_,
Buffer.from(subtleSignature, "base64"),
Buffer.from(subtleInput, "base64")
);
});
bench(
"subtle-sign",
async () => await subtle.sign("RSASSA-PKCS1-v1_5", private_key_, Buffer.from(body))
"subtle.sign() - full payload - pregenerated body",
async () => await subtle.sign("RSASSA-PKCS1-v1_5", privateKey, bodyBuffer)
);
bench(
"subtle-sign-short",
async () => await subtle.sign("RSASSA-PKCS1-v1_5", private_key_, body_)
"subtle.sign() - short body - with buffer generation",
async () => await subtle.sign("RSASSA-PKCS1-v1_5", privateKey, Buffer.from(shortBody))
);
bench(
"subtle-sign-short-buffer",
async () => await subtle.sign("RSASSA-PKCS1-v1_5", private_key_, Buffer.from(body_string))
"subtle.sign() - short body - pregenerated buffer",
async () => await subtle.sign("RSASSA-PKCS1-v1_5", privateKey, shortBodyBuffer)
);
bench(
"subtle-sign-super-short-buffer",
async () => await subtle.sign("RSASSA-PKCS1-v1_5", private_key_, Buffer.from("short"))
"subtle.sign() - shorter body - with buffer generation",
async () => await subtle.sign("RSASSA-PKCS1-v1_5", privateKey, Buffer.from("short"))
);
});

Expand Down

0 comments on commit a02b0c5

Please sign in to comment.