aboutsummaryrefslogtreecommitdiffstats
path: root/docs/demo/bls.html
blob: 3f6ae74b41a1d1be34b4b0b3570de906e851075c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<!DOCTYPE html> 
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>BLS signature sample</title>
<link rel="stylesheet" href="style.css" type="text/css">
<script type='text/javascript' src="./exported-bls.js"></script>
<script type='text/javascript' src="./bls_c.js"></script>
<script type='text/javascript' src="./bls.js"></script>
<script type='text/javascript' src="./bls-demo.js"></script>
</script>
</head>
<body>
<p>
<form name="selectCurve">
pairing parameter : <select name="curveType" onChange="onChangeSelectCurve()">
<option value="0" selected>Fp254BNb</option>
<option value="1">Fp382_1</option>
<option value="2">Fp382_2</option>
</select>
library status <span name="status">initializing...</span>
</form>
<div>group order : <span name="curveOrder">0</span></div>
</p>
<button type="text" id="benchmark" onclick="onClickBenchmark()">benchmark</button>
<div>pairing time : <span name="time_pairing">0</span>msec</div>
<div>G1 scalar mul : <span name="time_g1mul">0</span>msec</div>
<div>G2 scalar mul : <span name="time_g2mul">0</span>msec</div>
<div>Hash and map to G1 : <span name="time_mapToG1">0</span>msec</div>
<div>sign : <span name="time_sign">0</span>msec</div>
<div>verify : <span name="time_verify">0</span>msec</div>
<hr>
<button type="text" id="testBls" onclick="onClickTestSignature()">test basic signature</button>
<div>
secretKey : <span name="secretKey"></span><br>
publicKey : <span name="publicKey"></span><br>
msg : <input type="text" name="msg" value=""><br>
signature : <span name="signature"></span><br>
verify : <span name="verifyResult"></span><br>
</div>
<button type="text" id="testBls" onclick="onClickTestShare()">test sharing</button>
<div>
threshold(k)         : <input type="text" name="ss_k" value="3"><br>
number of players(n) : <input type="text" name="ss_n" value="5"><br>
master secret key : <span name="msk"></span><br>
master public key : <span name="mpk"></span><br>
msg : <input type="text" name="msg2" value="abc"><br>
signature : <span name="signature2"></span><br>
</div>
<h2>key sharing</h2>
<div id="idlist"> <ol> </ol> </div>
<h2>key recover</h2>
<div>
selected index of id : <span name="idxVec"></span><br>
recover secret key : <span name="recoverSec"></span><br>
recover public key : <span name="recoverPub"></span><br>
recover signature : <span name="recoverSig"></span><br>
</div>
<hr>
<button type="text" id="testPairing" onclick="onClickTestPairing()">test Pairing</button>
<div>
a = <input type="text" name="a" value="3"><br>
b = <input type="text" name="b" value="4"><br>
ab = <span name="ab">0</span><br>
</div>
<div>
P = hashAndMapToG1(<input type="text" name="hash_P" value="abc">) = <span name="P">0</span><br>
Q = hashAndMapToG2(<input type="text" name="hash_Q" value="def">) = <span name="Q">0</span><br>
aP = <span name="aP">0</span><br>
bQ = <span name="bQ">0</span><br>
</div>
<hr>
<div>
e(P, Q) = <span name="ePQ">0</span><br>
e(aP, bQ) = <span name="eaPbQ">0</span><br>
e(P, Q)^ab = <span name="ePQab">0</span><br>
</div>
<hr>
<div>
e(aP, bQ) == e(P, Q)^ab is <span name="verify_pairing"></span>
</div>
<hr>
<button type="text" id="testMisc" onclick="onClickTestMisc()">test misc</button>
<div>
id(dec) = <input type="text" name="idDec" value="256"><br>
sec = <input type="text" name="sec1" value="1a2b3c"><br>
</div>
id(dec) again = <span name="idDec2"></span><br>
id(hex) = <span name="idHex"></span><br>
sec.serialize = <span name="secSerialize"></span><br>
<div>
</div>
</body>
</html>