UNPKG

zenroom

Version:

wrapper of Zenroom, a secure and small virtual machine for crypto language processing

97 lines (86 loc) 4.59 kB
const ITERATIONS = 300; import bench from 'nanobench'; import { zencode_exec, // zenroom_exec, // zenroom_hash_init, zenroom_hash_update, zenroom_hash_final, zenroom_hash } from "./index"; const GENERATE_KEYRING = ` # Here we are loading all the scenarios needed for the keys creations Scenario 'ecdh': Create the key Scenario 'ethereum': Create key Scenario 'reflow': Create the key Scenario 'schnorr': Create the key Scenario 'eddsa': Create the key Given nothing # Here we are creating the keys When I create the ecdh key When I create the ethereum key When I create the reflow key When I create the schnorr key When I create the bitcoin key When I create the eddsa key Then print the 'keyring' `; const GENERATE_PUBKEYS = ` # Loading scenarios Scenario 'ecdh': Create the public key Scenario 'ethereum': Create the address Scenario 'reflow': Create the public key Scenario 'schnorr': Create the public key Scenario 'eddsa': Create the public key # Loading the private keys Given I have the 'keyring' # Generating the public keys When I create the ecdh public key When I create the reflow public key When I create the schnorr public key When I create the bitcoin public key When I create the eddsa public key # With Ethereum the 'ethereum address' is what we want to create, rather than a public key When I create the ethereum address # Here we pring all the output Then print the 'ecdh public key' Then print the 'eddsa public key' Then print the 'reflow public key' Then print the 'schnorr public key' Then print the 'bitcoin public key' Then print the 'ethereum address' `; const SIGN = ` Scenario 'ecdh': create the signature of an object Given I have the 'keyring' Given that I have a 'string' named 'myMessage' When I create the signature of 'myMessage' When I rename the 'signature' to 'myMessage.signature' Then print the 'myMessage' Then print the 'myMessage.signature' `; const SIGN_DATA = ` { "myMessage": "Dear Bob, your name is too short, goodbye - Alice." } `; const VERIFY = ` rule check version 2.0.0 Scenario 'ecdh': Bob verifies the signature from Alice Given I have a 'ecdh public key' from 'Alice' Given I have a 'string' named 'myMessage' Given I have a 'signature' named 'myMessage.signature' When I verify the 'myMessage' has a signature in 'myMessage.signature' by 'Alice' Then print the string 'ok' Then print the 'myMessage' `; const signverify = async () => { const keyring = (await zencode_exec(GENERATE_KEYRING)).result; const pubkeys = (await zencode_exec(GENERATE_PUBKEYS, { keys: keyring })).result; const sign = (await zencode_exec(SIGN, { data: SIGN_DATA, keys: keyring })).result; const verify = (await zencode_exec(VERIFY, { data: sign, keys: `{"Alice": ${pubkeys}}` })).result; verify; }; bench('sign and verify ' + ITERATIONS + ' times', (b) => { b.start(); for (let i = 0; i < ITERATIONS; i++) { signverify(); } b.end(); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVuY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmVuY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFBO0FBQ3RCLE9BQU8sS0FBSyxNQUFNLFdBQVcsQ0FBQztBQUc5QixPQUFPLEVBQUMsWUFBWSxFQUFFLGdCQUFnQjtBQUN0QywyRUFBMkU7RUFDMUUsTUFBTSxTQUFTLENBQUM7QUFFakIsTUFBTSxnQkFBZ0IsR0FBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQW1CdkIsQ0FBQTtBQUNELE1BQU0sZ0JBQWdCLEdBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0E0QnZCLENBQUE7QUFDRCxNQUFNLElBQUksR0FBRzs7Ozs7Ozs7Ozs7Q0FXWixDQUFBO0FBRUQsTUFBTSxTQUFTLEdBQUc7Ozs7Q0FJakIsQ0FBQTtBQUVELE1BQU0sTUFBTSxHQUFHOzs7Ozs7Ozs7O0NBVWQsQ0FBQTtBQUVELE1BQU0sVUFBVSxHQUFHLEtBQUssSUFBSSxFQUFFO0lBQzVCLE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBTSxZQUFZLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM5RCxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQU0sWUFBWSxDQUFDLGdCQUFnQixFQUFFLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDL0UsTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLFlBQVksQ0FBQyxJQUFJLEVBQUUsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2pGLE1BQU0sTUFBTSxHQUFHLENBQUMsTUFBTSxZQUFZLENBQUMsTUFBTSxFQUN2QyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGFBQWEsT0FBTyxHQUFHLEVBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3ZELE1BQU0sQ0FBQztBQUNULENBQUMsQ0FBQTtBQUVELEtBQUssQ0FBQyxrQkFBa0IsR0FBQyxVQUFVLEdBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDbEQsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ1YsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQy9CLFVBQVUsRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUNELENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNWLENBQUMsQ0FBQyxDQUFBIn0=