aboutsummaryrefslogtreecommitdiffstats
path: root/docs/demo/bls-demo.js
diff options
context:
space:
mode:
Diffstat (limited to 'docs/demo/bls-demo.js')
-rw-r--r--docs/demo/bls-demo.js135
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()