aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/byzantine-lab/bls/bls_smpl.py
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/byzantine-lab/bls/bls_smpl.py')
-rw-r--r--vendor/github.com/byzantine-lab/bls/bls_smpl.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/vendor/github.com/byzantine-lab/bls/bls_smpl.py b/vendor/github.com/byzantine-lab/bls/bls_smpl.py
new file mode 100644
index 000000000..f834d80aa
--- /dev/null
+++ b/vendor/github.com/byzantine-lab/bls/bls_smpl.py
@@ -0,0 +1,40 @@
+import os, sys, subprocess
+
+EXE='bin/bls_smpl.exe'
+
+def init():
+ subprocess.check_call([EXE, "init"])
+
+def sign(m, i=0):
+ subprocess.check_call([EXE, "sign", "-m", m, "-id", str(i)])
+
+def verify(m, i=0):
+ subprocess.check_call([EXE, "verify", "-m", m, "-id", str(i)])
+
+def share(n, k):
+ subprocess.check_call([EXE, "share", "-n", str(n), "-k", str(k)])
+
+def recover(ids):
+ cmd = [EXE, "recover", "-ids"]
+ for i in ids:
+ cmd.append(str(i))
+ subprocess.check_call(cmd)
+
+def main():
+ m = "hello bls threshold signature"
+ n = 10
+ ids = [1, 5, 3, 7]
+ k = len(ids)
+ init()
+ sign(m)
+ verify(m)
+ share(n, k)
+ for i in ids:
+ sign(m, i)
+ verify(m, i)
+ subprocess.check_call(["rm", "sample/sign.txt"])
+ recover(ids)
+ verify(m)
+
+if __name__ == '__main__':
+ main()