diff options
Diffstat (limited to 'docs/demo/bls-demo.js')
-rw-r--r-- | docs/demo/bls-demo.js | 135 |
1 files changed, 23 insertions, 112 deletions
diff --git a/docs/demo/bls-demo.js b/docs/demo/bls-demo.js index 238f06a..7d8b4cc 100644 --- a/docs/demo/bls-demo.js +++ b/docs/demo/bls-demo.js @@ -6,154 +6,66 @@ function setText(name, val) { document.getElementsByName(name)[0].innerText = va bls.init() .then(() => { setText('status', 'ok') - setText('curveOrder', bls.capi.blsGetCurveOrder()) + setText('curveOrder', bls.getCurveOrder()) }) let prevSelectedCurve = -1 function onChangeSelectCurve() { - let obj = document.selectCurve.curveType - let idx = obj.selectedIndex - let curve = obj.options[idx].value + const obj = document.selectCurve.curveType + const idx = obj.selectedIndex + const curve = obj.options[idx].value if (curve == prevSelectedCurve) return prevSelectedCurve = curve console.log('idx=' + idx) - let r = bls.capi.blsInit(idx) + const r = bls.blsInit(idx) setText('status', r ? 'err:' + r : 'ok') - setText('curveOrder', bls.capi.blsGetCurveOrder()) + setText('curveOrder', bls.getCurveOrder()) } function rand(val) { - let x = new she.Id() + const x = new she.Id() x.setByCSPRNG() setValue(val, c.toHexStr()) } function bench(label, count, func) { - let start = Date.now() + const start = Date.now() for (let i = 0; i < count; i++) { func() } - let end = Date.now() - let t = (end - start) / count + const end = Date.now() + const t = (end - start) / count setText(label, t) } -function benchPairing() { - let capi = bls.capi - let a = capi.mclBnFr_malloc() - let P = capi.mclBnG1_malloc() - let Q = capi.mclBnG2_malloc() - let e = capi.mclBnGT_malloc() - - let msg = 'hello wasm' - - capi.mclBnFr_setByCSPRNG(a) - console.log('a=' + capi.mclBnFr_getStr(a)) - capi.mclBnG1_hashAndMapTo(P, 'abc') - capi.mclBnG2_hashAndMapTo(Q, 'abc') - console.log('P=' + capi.mclBnG1_getStr(P)) - console.log('Q=' + capi.mclBnG2_getStr(Q)) - bench('time_pairing', 50, () => capi.mclBn_pairing(e, P, Q)) - bench('time_g1mul', 50, () => capi.mclBnG1_mulCT(P, P, a)) - bench('time_g2mul', 50, () => capi.mclBnG2_mulCT(Q, Q, a)) - bench('time_mapToG1', 50, () => capi.mclBnG1_hashAndMapTo(P, msg)) - - capi.mcl_free(e) - capi.mcl_free(Q) - capi.mcl_free(P) - - let sec = new bls.SecretKey() - bench('time_setByCSPRNG', 50, () => sec.setByCSPRNG()) -} - function benchBls() { - let capi = bls.capi - let sec = capi.blsSecretKey_malloc() - let pub = capi.blsPublicKey_malloc() - let sig = capi.blsSignature_malloc() - - capi.blsSecretKeySetByCSPRNG(sec) - let msg = "hello wasm" - bench('time_sign', 50, () => capi.blsSign(sig, sec, msg)) - bench('time_verify', 50, () => capi.blsVerify(sig, pub, msg)) - - capi.bls_free(sec) - capi.bls_free(pub) - capi.bls_free(sig) - sec = new bls.SecretKey() + const sec = new bls.SecretKey() sec.setByCSPRNG() - pub = sec.getPublicKey() + const pub = sec.getPublicKey() + const msg = 'abc' bench('time_sign_class', 50, () => sec.sign(msg)) - sig = sec.sign(msg) + const sig = sec.sign(msg) bench('time_verify_class', 50, () => pub.verify(sig, msg)) } function onClickBenchmark() { - benchPairing() benchBls() } -function onClickTestPairing() { - let capi = bls.capi - document.getElementById('testPairing').disabled = true - let a = capi.mclBnFr_malloc() - let b = capi.mclBnFr_malloc() - let ab = capi.mclBnFr_malloc() - let P = capi.mclBnG1_malloc() - let aP = capi.mclBnG1_malloc() - let Q = capi.mclBnG2_malloc() - let bQ = capi.mclBnG2_malloc() - let e1 = capi.mclBnGT_malloc() - let e2 = capi.mclBnGT_malloc() - - capi.mclBnFr_setStr(a, getValue('a')) - capi.mclBnFr_setStr(b, getValue('b')) - capi.mclBnFr_mul(ab, a, b) - setText('ab', capi.mclBnFr_getStr(ab)) - - capi.mclBnG1_hashAndMapTo(P, getValue('hash_P')) - setText('P', capi.mclBnG1_getStr(P)) - capi.mclBnG2_hashAndMapTo(Q, getValue('hash_Q')) - setText('Q', capi.mclBnG2_getStr(Q)) - capi.mclBnG1_mul(aP, P, a) - setText('aP', capi.mclBnG1_getStr(aP)) - capi.mclBnG2_mul(bQ, Q, b) - setText('bQ', capi.mclBnG2_getStr(bQ)) - - capi.mclBn_pairing(e1, P, Q); - setText('ePQ', capi.mclBnGT_getStr(e1)) - capi.mclBn_pairing(e2, aP, bQ); - setText('eaPbQ', capi.mclBnGT_getStr(e2)) - capi.mclBnGT_pow(e1, e1, ab) - setText('ePQab', capi.mclBnGT_getStr(e1)) - setText('verify_pairing', !!capi.mclBnGT_isEqual(e1, e2)) - - capi.mcl_free(e2) - capi.mcl_free(e1) - capi.mcl_free(bQ) - capi.mcl_free(Q) - capi.mcl_free(aP) - capi.mcl_free(P) - capi.mcl_free(ab) - capi.mcl_free(b) - capi.mcl_free(a) - document.getElementById('testPairing').disabled = false -} - function onClickTestSignature() { - let sec = new bls.SecretKey() + const sec = new bls.SecretKey() sec.setByCSPRNG() setText('secretKey', sec.toHexStr()) - let pub = sec.getPublicKey() + const pub = sec.getPublicKey() setText('publicKey', pub.toHexStr()) - let msg = getValue('msg') + const msg = getValue('msg') console.log('msg=' + msg) - let sig = sec.sign(msg) + const sig = sec.sign(msg) setText('signature', sig.toHexStr()) - let r = pub.verify(sig, msg) + const r = pub.verify(sig, msg) setText('verifyResult', r ? 'ok' : 'err') } @@ -181,16 +93,15 @@ function randSelect(k, n) { function onClickTestMisc() { - let idDec = getValue('idDec') + const idDec = getValue('idDec') console.log('idDec=' + idDec) - var id = new bls.Id() + const id = new bls.Id() id.setStr(idDec) setText('idDec2', id.getStr()) setText('idHex', id.getStr(16)) - var sec = new bls.SecretKey() + const sec = new bls.SecretKey() sec.setLittleEndian(bls.fromHexStr(getValue('sec1'))) - var a = sec.serialize() - setText('secSerialize', bls.toHexStr(a)) + setText('secSerialize', sec.toHexStr()) } function onClickTestShare() |