19 lines
810 B
JavaScript
19 lines
810 B
JavaScript
|
import { run, mark, utils } from 'micro-bmark';
|
||
|
import { sha512 } from '@noble/hashes/sha512';
|
||
|
import * as mod from '../abstract/modular.js';
|
||
|
import { ed25519, RistrettoPoint } from '../ed25519.js';
|
||
|
|
||
|
run(async () => {
|
||
|
const RAM = false;
|
||
|
if (RAM) utils.logMem();
|
||
|
console.log(`\x1b[36mristretto255\x1b[0m`);
|
||
|
const priv = mod.hashToPrivateScalar(sha512(ed25519.utils.randomPrivateKey()), ed25519.CURVE.n);
|
||
|
const pub = RistrettoPoint.BASE.multiply(priv);
|
||
|
const encoded = pub.toRawBytes();
|
||
|
await mark('add', 1000000, () => pub.add(RistrettoPoint.BASE));
|
||
|
await mark('multiply', 10000, () => RistrettoPoint.BASE.multiply(priv));
|
||
|
await mark('encode', 10000, () => RistrettoPoint.BASE.toRawBytes());
|
||
|
await mark('decode', 10000, () => RistrettoPoint.fromHex(encoded));
|
||
|
if (RAM) utils.logMem();
|
||
|
});
|