crypto-incognito
Version:
Crypto Incognito client-side library.
40 lines (35 loc) • 1.51 kB
text/typescript
import ci from './';
const time = () => new Date().getTime();
(async () => {
// create_privkey().
const privkey = ci.create_privkey();
console.log('privkey:', privkey);
// pubkey_from_privkey().
const pubkey = ci.pubkey_from_privkey(privkey);
console.log('privkey:', pubkey);
// load_mG().
console.log('The number of points in mG.bin:',
(await ci.load_mG(`${process.env['HOME']}/.crypto-incognito/mG.bin`)).toLocaleString());
// selector_create().
const index_counts = new BigUint64Array(3);
index_counts[0] = 1000n;
index_counts[1] = 1000n;
index_counts[2] = 1000n;
const beginSelectorsCreate = time();
const selector = ci.selector_create(pubkey, index_counts, 1024);
console.log(`Selector created (normal) in ${(time() - beginSelectorsCreate).toLocaleString()}ms.`);
// selector_create_fast().
const beginSelectorsFastCreate = time();
const selectorFast = ci.selector_create_fast(privkey, index_counts, 1024);
console.log(`Selector created (fast) in ${(time() - beginSelectorsFastCreate).toLocaleString()}ms.`);
// reply_decrypt().
const beginDecrypt = time();
const data = require('../src/test_napi_reply_data.json');
const decrypted = await ci.reply_decrypt(new Uint8Array(data.reply), new Uint8Array(data.privkey), data.dimension, data.packing);
for(let i=0; i<data.correct.length; i++) {
if(decrypted[i] != data.correct[i]) {
throw new Error('Decrypted is not correct.');
}
}
console.log(`Reply decrypted in ${(time() - beginDecrypt).toLocaleString()}ms.`);
})();