Initial commit
This commit is contained in:
57
benchmarks/sekp256k1.ts
Normal file
57
benchmarks/sekp256k1.ts
Normal file
@@ -0,0 +1,57 @@
|
||||
import { Bytes, User } from '../src/index.js';
|
||||
|
||||
const alice = await User.fromSecret('alice');
|
||||
const bob = await User.fromSecret('bob');
|
||||
|
||||
const alicePublicKey = await alice.getPublicKey();
|
||||
const bobPublicKey = await bob.getPublicKey();
|
||||
|
||||
const keyStart = performance.now();
|
||||
const aliceSharedSecret = await alice.getSharedSecret(bobPublicKey);
|
||||
const bobSharedSecret = await bob.getSharedSecret(alicePublicKey);
|
||||
|
||||
const keyEnd = performance.now();
|
||||
|
||||
console.log(`Key generation time: ${keyEnd - keyStart}ms`);
|
||||
|
||||
const message = 'Hello, world!';
|
||||
const count = 100_000;
|
||||
|
||||
const start = performance.now();
|
||||
|
||||
for (let i = 0; i < count; i++) {
|
||||
// Encrypt key with shared secret
|
||||
const encryptedKey = await aliceSharedSecret.encrypt(Bytes.fromUtf8(message));
|
||||
|
||||
// Decrypt key with shared secret
|
||||
const decryptedKey = await bobSharedSecret.decrypt(encryptedKey);
|
||||
|
||||
if (decryptedKey.toUtf8() !== message) {
|
||||
throw new Error('Decrypted message does not match original message');
|
||||
}
|
||||
}
|
||||
|
||||
const end = performance.now();
|
||||
|
||||
const totalTimeMs = end - start;
|
||||
const operationsPerSecond = (count / totalTimeMs) * 1000;
|
||||
|
||||
console.log(
|
||||
`Aes encrypt/decrypt per second: ${operationsPerSecond} (Total time: ${totalTimeMs}ms)`,
|
||||
);
|
||||
|
||||
const startEncrypt = performance.now();
|
||||
|
||||
for (let i = 0; i < count; i++) {
|
||||
// Encrypt key with shared secret
|
||||
const encryptedKey = await aliceSharedSecret.encrypt(Bytes.fromUtf8(message));
|
||||
}
|
||||
|
||||
const endEncrypt = performance.now();
|
||||
|
||||
const totalTimeMsEncrypt = endEncrypt - startEncrypt;
|
||||
const operationsPerSecondEncrypt = (count / totalTimeMsEncrypt) * 1000;
|
||||
|
||||
console.log(
|
||||
`Aes encrypt per second: ${operationsPerSecondEncrypt} (Total time: ${totalTimeMsEncrypt}ms)`,
|
||||
);
|
||||
Reference in New Issue
Block a user