aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/byzantine-lab/bls/ffi/cs/readme.md
diff options
context:
space:
mode:
authorWei-Ning Huang <w@byzantine-lab.io>2019-06-23 15:39:23 +0800
committerWei-Ning Huang <w@byzantine-lab.io>2019-09-17 16:57:30 +0800
commite6f5201b178f40b516ffe7b98757df25f8aee028 (patch)
tree982d6281ac9670d0ad451ca6bbd0677488b52344 /vendor/github.com/byzantine-lab/bls/ffi/cs/readme.md
parentf6e06ac35033f9e52b6b2e3ebfe623c23a39c338 (diff)
downloadgo-tangerine-e6f5201b178f40b516ffe7b98757df25f8aee028.tar.gz
go-tangerine-e6f5201b178f40b516ffe7b98757df25f8aee028.tar.zst
go-tangerine-e6f5201b178f40b516ffe7b98757df25f8aee028.zip
import: switch consensus core to gitlab.com/tangerine-network/tangerine-consensus
Diffstat (limited to 'vendor/github.com/byzantine-lab/bls/ffi/cs/readme.md')
-rw-r--r--vendor/github.com/byzantine-lab/bls/ffi/cs/readme.md185
1 files changed, 0 insertions, 185 deletions
diff --git a/vendor/github.com/byzantine-lab/bls/ffi/cs/readme.md b/vendor/github.com/byzantine-lab/bls/ffi/cs/readme.md
deleted file mode 100644
index 2b7191871..000000000
--- a/vendor/github.com/byzantine-lab/bls/ffi/cs/readme.md
+++ /dev/null
@@ -1,185 +0,0 @@
-# C# binding of BLS threshold signature library
-
-# Installation Requirements
-
-* Visual Studio 2017 or later
-* C# 7.2 or later
-* .NET Framework 4.5.2 or later
-
-# How to build
-
-```
-md work
-cd work
-git clone https://github.com/herumi/cybozulib_ext
-git clone https://github.com/herumi/mcl
-git clone https://github.com/herumi/bls
-cd bls
-mklib dll
-```
-bls/bin/*.dll are created
-
-# How to build a sample
-
-Open bls/ffi/cs/bls.sln and exec it.
-
-* Remark. bls256 is obsolete. Please use bls.sln.
-
-# class and API
-
-## API
-
-* `Init(int curveType = BN254);`
- * initialize this library with a curve `curveType`.
- * curveType = BN254 or BLS12_381
-* `SecretKey ShareSecretKey(in SecretKey[] msk, in Id id);`
- * generate the shared secret key from a sequence of master secret keys msk and Id.
-* `SecretKey RecoverSecretKey(in SecretKey[] secVec, in Id[] idVec);`
- * recover the secret key from a sequence of secret keys secVec and idVec.
-* `PublicKey SharePublicKey(in PublicKey[] mpk, in Id id);`
- * generate the shared public key from a sequence of master public keys mpk and Id.
-* `PublicKey RecoverPublicKey(in PublicKey[] pubVec, in Id[] idVec);`
- * recover the public key from a sequence of public keys pubVec and idVec.
-* `Signature RecoverSign(in Signature[] sigVec, in Id[] idVec);`
- * recover the signature from a sequence of signatures siVec and idVec.
-
-## Id
-
-Identifier class
-
-* `byte[] Serialize();`
- * serialize Id
-* `void Deserialize(byte[] buf);`
- * deserialize from byte[] buf
-* `bool IsEqual(in Id rhs);`
- * equality
-* `void SetDecStr(string s);`
- * set by a decimal string s
-* `void SetHexStr(string s);`
- * set by a hexadecimal string s
-* `void SetInt(int x);`
- * set an integer x
-* `string GetDecStr();`
- * get a decimal string
-* `string GetHexStr();`
- * get a hexadecimal string
-
-## SecretKey
-
-* `byte[] Serialize();`
- * serialize SecretKey
-* `void Deserialize(byte[] buf);`
- * deserialize from byte[] buf
-* `bool IsEqual(in SecretKey rhs);`
- * equality
-* `string GetDecStr();`
- * get a decimal string
-* `string GetHexStr();`
- * get a hexadecimal string
-* `void Add(in SecretKey rhs);`
- * add a secret key rhs
-* `void SetByCSPRNG();`
- * set a secret key by cryptographically secure pseudo random number generator
-* `void SetHashOf(string s);`
- * set a secret key by a hash of string s
-* `PublicKey GetPublicKey();`
- * get the corresponding public key to a secret key
-* `Signature Sign(string m);`
- * sign a string m
-* `Signature GetPop();`
- * get a PoP (Proof Of Posession) for a secret key
-
-## PublicKey
-
-* `byte[] Serialize();`
- * serialize PublicKey
-* `void Deserialize(byte[] buf);`
- * deserialize from byte[] buf
-* `bool IsEqual(in PublicKey rhs);`
- * equality
-* `void Add(in PublicKey rhs);`
- * add a public key rhs
-* `string GetDecStr();`
- * get a decimal string
-* `string GetHexStr();`
- * get a hexadecimal string
-* `bool Verify(in Signature sig, string m);`
- * verify the validness of the sig with m
-* `bool VerifyPop(in Signature pop);`
- * verify the validness of PoP
-
-## Signature
-
-* `byte[] Serialize();`
- * serialize Signature
-* `void Deserialize(byte[] buf);`
- * deserialize from byte[] buf
-* `bool IsEqual(in Signature rhs);`
- * equality
-* `void Add(in Signature rhs);`
- * add a signature key rhs
-* `string GetDecStr();`
- * get a decimal string
-* `string GetHexStr();`
- * get a hexadecimal string
-
-## How to use
-
-### A minimum sample
-
-```
-using static BLS;
-
-Init(BN254); // init library
-SecretKey sec;
-sec.SetByCSPRNG(); // init secret key
-PublicKey pub = sec.GetPublicKey(); // get public key
-string m = "abc";
-Signature sig = sec.Sign(m); // create signature
-if (pub.Verify(sig, m))) {
- // signature is verified
-}
-```
-
-### Aggregate signature
-```
-Init(BN254); // init library
-const int n = 10;
-const string m = "abc";
-SecretKey[] secVec = new SecretKey[n];
-PublicKey[] pubVec = new PublicKey[n];
-Signature[] popVec = new Signature[n];
-Signature[] sigVec = new Signature[n];
-
-for (int i = 0; i < n; i++) {
- secVec[i].SetByCSPRNG(); // init secret key
- pubVec[i] = secVec[i].GetPublicKey(); // get public key
- popVec[i] = secVec[i].GetPop(); // get a proof of Possesion (PoP)
- sigVec[i] = secVec[i].Sign(m); // create signature
-}
-
-SecretKey secAgg;
-PublicKey pubAgg;
-Signature sigAgg;
-for (int i = 0; i < n; i++) {
- // verify PoP
- if (pubVec[i].VerifyPop(popVec[i]))) {
- // error
- return;
- }
- pubAgg.Add(pubVec[i]); // aggregate public key
- sigAgg.Add(sigVec[i]); // aggregate signature
-}
-if (pubAgg.Verify(sigAgg, m)) {
- // aggregated signature is verified
-}
-```
-
-# License
-
-modified new BSD License
-http://opensource.org/licenses/BSD-3-Clause
-
-# Author
-
-(C)2019 MITSUNARI Shigeo(herumi@nifty.com) All rights reserved.