charm-crypto-framework 0.61.1__cp313-cp313-macosx_10_13_universal2.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- charm/__init__.py +5 -0
- charm/adapters/__init__.py +0 -0
- charm/adapters/abenc_adapt_hybrid.py +90 -0
- charm/adapters/dabenc_adapt_hybrid.py +145 -0
- charm/adapters/ibenc_adapt_hybrid.py +72 -0
- charm/adapters/ibenc_adapt_identityhash.py +80 -0
- charm/adapters/kpabenc_adapt_hybrid.py +91 -0
- charm/adapters/pkenc_adapt_bchk05.py +121 -0
- charm/adapters/pkenc_adapt_chk04.py +91 -0
- charm/adapters/pkenc_adapt_hybrid.py +98 -0
- charm/adapters/pksig_adapt_naor01.py +89 -0
- charm/config.py +7 -0
- charm/core/__init__.py +0 -0
- charm/core/benchmark/benchmark_util.c +353 -0
- charm/core/benchmark/benchmark_util.h +61 -0
- charm/core/benchmark/benchmarkmodule.c +476 -0
- charm/core/benchmark/benchmarkmodule.h +162 -0
- charm/core/benchmark.cpython-313-darwin.so +0 -0
- charm/core/crypto/AES/AES.c +1464 -0
- charm/core/crypto/AES.cpython-313-darwin.so +0 -0
- charm/core/crypto/DES/DES.c +113 -0
- charm/core/crypto/DES.cpython-313-darwin.so +0 -0
- charm/core/crypto/DES3/DES3.c +26 -0
- charm/core/crypto/DES3.cpython-313-darwin.so +0 -0
- charm/core/crypto/__init__.py +0 -0
- charm/core/crypto/cryptobase/XOR.c +80 -0
- charm/core/crypto/cryptobase/_counter.c +496 -0
- charm/core/crypto/cryptobase/_counter.h +54 -0
- charm/core/crypto/cryptobase/block_template.c +900 -0
- charm/core/crypto/cryptobase/block_template.h +69 -0
- charm/core/crypto/cryptobase/cryptobasemodule.c +220 -0
- charm/core/crypto/cryptobase/libtom/tomcrypt.h +90 -0
- charm/core/crypto/cryptobase/libtom/tomcrypt_argchk.h +44 -0
- charm/core/crypto/cryptobase/libtom/tomcrypt_cfg.h +186 -0
- charm/core/crypto/cryptobase/libtom/tomcrypt_cipher.h +941 -0
- charm/core/crypto/cryptobase/libtom/tomcrypt_custom.h +556 -0
- charm/core/crypto/cryptobase/libtom/tomcrypt_des.c +1912 -0
- charm/core/crypto/cryptobase/libtom/tomcrypt_hash.h +407 -0
- charm/core/crypto/cryptobase/libtom/tomcrypt_mac.h +496 -0
- charm/core/crypto/cryptobase/libtom/tomcrypt_macros.h +435 -0
- charm/core/crypto/cryptobase/libtom/tomcrypt_math.h +534 -0
- charm/core/crypto/cryptobase/libtom/tomcrypt_misc.h +103 -0
- charm/core/crypto/cryptobase/libtom/tomcrypt_pk.h +653 -0
- charm/core/crypto/cryptobase/libtom/tomcrypt_pkcs.h +90 -0
- charm/core/crypto/cryptobase/libtom/tomcrypt_prng.h +199 -0
- charm/core/crypto/cryptobase/stream_template.c +271 -0
- charm/core/crypto/cryptobase/strxor.c +229 -0
- charm/core/crypto/cryptobase.cpython-313-darwin.so +0 -0
- charm/core/engine/__init__.py +5 -0
- charm/core/engine/protocol.py +293 -0
- charm/core/engine/util.py +174 -0
- charm/core/math/__init__.py +0 -0
- charm/core/math/elliptic_curve/ecmodule.c +1986 -0
- charm/core/math/elliptic_curve/ecmodule.h +230 -0
- charm/core/math/elliptic_curve.cpython-313-darwin.so +0 -0
- charm/core/math/elliptic_curve.pyi +63 -0
- charm/core/math/integer/integermodule.c +2539 -0
- charm/core/math/integer/integermodule.h +145 -0
- charm/core/math/integer.cpython-313-darwin.so +0 -0
- charm/core/math/integer.pyi +76 -0
- charm/core/math/pairing/miracl/miracl_config.h +37 -0
- charm/core/math/pairing/miracl/miracl_interface.h +118 -0
- charm/core/math/pairing/miracl/miracl_interface2.h +126 -0
- charm/core/math/pairing/miracl/pairingmodule2.c +2094 -0
- charm/core/math/pairing/miracl/pairingmodule2.h +307 -0
- charm/core/math/pairing/pairingmodule.c +2230 -0
- charm/core/math/pairing/pairingmodule.h +241 -0
- charm/core/math/pairing/relic/pairingmodule3.c +1853 -0
- charm/core/math/pairing/relic/pairingmodule3.h +233 -0
- charm/core/math/pairing/relic/relic_interface.c +1337 -0
- charm/core/math/pairing/relic/relic_interface.h +217 -0
- charm/core/math/pairing/relic/test_relic.c +171 -0
- charm/core/math/pairing.cpython-313-darwin.so +0 -0
- charm/core/math/pairing.pyi +69 -0
- charm/core/utilities/base64.c +248 -0
- charm/core/utilities/base64.h +15 -0
- charm/schemes/__init__.py +0 -0
- charm/schemes/abenc/__init__.py +0 -0
- charm/schemes/abenc/abenc_accountability_jyjxgd20.py +647 -0
- charm/schemes/abenc/abenc_bsw07.py +146 -0
- charm/schemes/abenc/abenc_ca_cpabe_ar17.py +684 -0
- charm/schemes/abenc/abenc_dacmacs_yj14.py +298 -0
- charm/schemes/abenc/abenc_lsw08.py +159 -0
- charm/schemes/abenc/abenc_maabe_rw15.py +236 -0
- charm/schemes/abenc/abenc_maabe_yj14.py +297 -0
- charm/schemes/abenc/abenc_tbpre_lww14.py +309 -0
- charm/schemes/abenc/abenc_unmcpabe_yahk14.py +223 -0
- charm/schemes/abenc/abenc_waters09.py +144 -0
- charm/schemes/abenc/abenc_yct14.py +208 -0
- charm/schemes/abenc/abenc_yllc15.py +178 -0
- charm/schemes/abenc/ac17.py +248 -0
- charm/schemes/abenc/bsw07.py +141 -0
- charm/schemes/abenc/cgw15.py +277 -0
- charm/schemes/abenc/dabe_aw11.py +204 -0
- charm/schemes/abenc/dfa_fe12.py +144 -0
- charm/schemes/abenc/pk_hve08.py +179 -0
- charm/schemes/abenc/waters11.py +143 -0
- charm/schemes/aggrsign_MuSig.py +150 -0
- charm/schemes/aggrsign_bls.py +267 -0
- charm/schemes/blindsig_ps16.py +654 -0
- charm/schemes/chamhash_adm05.py +113 -0
- charm/schemes/chamhash_rsa_hw09.py +100 -0
- charm/schemes/commit/__init__.py +0 -0
- charm/schemes/commit/commit_gs08.py +77 -0
- charm/schemes/commit/commit_pedersen92.py +53 -0
- charm/schemes/encap_bchk05.py +62 -0
- charm/schemes/grpsig/__init__.py +0 -0
- charm/schemes/grpsig/groupsig_bgls04.py +114 -0
- charm/schemes/grpsig/groupsig_bgls04_var.py +115 -0
- charm/schemes/hibenc/__init__.py +0 -0
- charm/schemes/hibenc/hibenc_bb04.py +105 -0
- charm/schemes/hibenc/hibenc_lew11.py +193 -0
- charm/schemes/ibenc/__init__.py +0 -0
- charm/schemes/ibenc/clpkc_rp03.py +119 -0
- charm/schemes/ibenc/ibenc_CW13_z.py +168 -0
- charm/schemes/ibenc/ibenc_bb03.py +94 -0
- charm/schemes/ibenc/ibenc_bf01.py +121 -0
- charm/schemes/ibenc/ibenc_ckrs09.py +120 -0
- charm/schemes/ibenc/ibenc_cllww12_z.py +172 -0
- charm/schemes/ibenc/ibenc_lsw08.py +120 -0
- charm/schemes/ibenc/ibenc_sw05.py +238 -0
- charm/schemes/ibenc/ibenc_waters05.py +144 -0
- charm/schemes/ibenc/ibenc_waters05_z.py +164 -0
- charm/schemes/ibenc/ibenc_waters09.py +107 -0
- charm/schemes/ibenc/ibenc_waters09_z.py +147 -0
- charm/schemes/joye_scheme.py +106 -0
- charm/schemes/lem_scheme.py +207 -0
- charm/schemes/pk_fre_ccv11.py +107 -0
- charm/schemes/pk_vrf.py +127 -0
- charm/schemes/pkenc/__init__.py +0 -0
- charm/schemes/pkenc/pkenc_cs98.py +108 -0
- charm/schemes/pkenc/pkenc_elgamal85.py +122 -0
- charm/schemes/pkenc/pkenc_gm82.py +98 -0
- charm/schemes/pkenc/pkenc_paillier99.py +118 -0
- charm/schemes/pkenc/pkenc_rabin.py +254 -0
- charm/schemes/pkenc/pkenc_rsa.py +186 -0
- charm/schemes/pksig/__init__.py +0 -0
- charm/schemes/pksig/pksig_CW13_z.py +135 -0
- charm/schemes/pksig/pksig_bls04.py +87 -0
- charm/schemes/pksig/pksig_boyen.py +156 -0
- charm/schemes/pksig/pksig_chch.py +97 -0
- charm/schemes/pksig/pksig_chp.py +70 -0
- charm/schemes/pksig/pksig_cl03.py +150 -0
- charm/schemes/pksig/pksig_cl04.py +87 -0
- charm/schemes/pksig/pksig_cllww12_z.py +142 -0
- charm/schemes/pksig/pksig_cyh.py +132 -0
- charm/schemes/pksig/pksig_dsa.py +76 -0
- charm/schemes/pksig/pksig_ecdsa.py +71 -0
- charm/schemes/pksig/pksig_hess.py +104 -0
- charm/schemes/pksig/pksig_hw.py +110 -0
- charm/schemes/pksig/pksig_lamport.py +63 -0
- charm/schemes/pksig/pksig_ps01.py +135 -0
- charm/schemes/pksig/pksig_ps02.py +124 -0
- charm/schemes/pksig/pksig_ps03.py +119 -0
- charm/schemes/pksig/pksig_rsa_hw09.py +206 -0
- charm/schemes/pksig/pksig_schnorr91.py +77 -0
- charm/schemes/pksig/pksig_waters.py +115 -0
- charm/schemes/pksig/pksig_waters05.py +121 -0
- charm/schemes/pksig/pksig_waters09.py +121 -0
- charm/schemes/pre_mg07.py +150 -0
- charm/schemes/prenc/pre_afgh06.py +126 -0
- charm/schemes/prenc/pre_bbs98.py +123 -0
- charm/schemes/prenc/pre_nal16.py +216 -0
- charm/schemes/protocol_a01.py +272 -0
- charm/schemes/protocol_ao00.py +215 -0
- charm/schemes/protocol_cns07.py +274 -0
- charm/schemes/protocol_schnorr91.py +125 -0
- charm/schemes/sigma1.py +64 -0
- charm/schemes/sigma2.py +129 -0
- charm/schemes/sigma3.py +126 -0
- charm/schemes/threshold/__init__.py +59 -0
- charm/schemes/threshold/dkls23_dkg.py +556 -0
- charm/schemes/threshold/dkls23_presign.py +1089 -0
- charm/schemes/threshold/dkls23_sign.py +761 -0
- charm/schemes/threshold/xrpl_wallet.py +967 -0
- charm/test/__init__.py +0 -0
- charm/test/adapters/__init__.py +0 -0
- charm/test/adapters/abenc_adapt_hybrid_test.py +29 -0
- charm/test/adapters/dabenc_adapt_hybrid_test.py +56 -0
- charm/test/adapters/ibenc_adapt_hybrid_test.py +36 -0
- charm/test/adapters/ibenc_adapt_identityhash_test.py +32 -0
- charm/test/adapters/kpabenc_adapt_hybrid_test.py +30 -0
- charm/test/benchmark/abenc_yllc15_bench.py +92 -0
- charm/test/benchmark/benchmark_test.py +148 -0
- charm/test/benchmark_threshold.py +260 -0
- charm/test/conftest.py +38 -0
- charm/test/fuzz/__init__.py +1 -0
- charm/test/fuzz/conftest.py +5 -0
- charm/test/fuzz/fuzz_policy_parser.py +76 -0
- charm/test/fuzz/fuzz_serialization.py +83 -0
- charm/test/schemes/__init__.py +0 -0
- charm/test/schemes/abenc/__init__.py +0 -0
- charm/test/schemes/abenc/abenc_bsw07_test.py +39 -0
- charm/test/schemes/abenc/abenc_dacmacs_yj14_test.py +16 -0
- charm/test/schemes/abenc/abenc_lsw08_test.py +33 -0
- charm/test/schemes/abenc/abenc_maabe_yj14_test.py +16 -0
- charm/test/schemes/abenc/abenc_tbpre_lww14_test.py +16 -0
- charm/test/schemes/abenc/abenc_waters09_test.py +38 -0
- charm/test/schemes/abenc/abenc_yllc15_test.py +74 -0
- charm/test/schemes/chamhash_adm05_test.py +31 -0
- charm/test/schemes/chamhash_rsa_hw09_test.py +29 -0
- charm/test/schemes/commit/__init__.py +0 -0
- charm/test/schemes/commit/commit_gs08_test.py +24 -0
- charm/test/schemes/commit/commit_pedersen92_test.py +26 -0
- charm/test/schemes/dabe_aw11_test.py +45 -0
- charm/test/schemes/encap_bchk05_test.py +21 -0
- charm/test/schemes/grpsig/__init__.py +0 -0
- charm/test/schemes/grpsig/groupsig_bgls04_test.py +35 -0
- charm/test/schemes/grpsig/groupsig_bgls04_var_test.py +39 -0
- charm/test/schemes/hibenc/__init__.py +0 -0
- charm/test/schemes/hibenc/hibenc_bb04_test.py +28 -0
- charm/test/schemes/ibenc/__init__.py +0 -0
- charm/test/schemes/ibenc/ibenc_bb03_test.py +26 -0
- charm/test/schemes/ibenc/ibenc_bf01_test.py +24 -0
- charm/test/schemes/ibenc/ibenc_ckrs09_test.py +25 -0
- charm/test/schemes/ibenc/ibenc_lsw08_test.py +31 -0
- charm/test/schemes/ibenc/ibenc_sw05_test.py +32 -0
- charm/test/schemes/ibenc/ibenc_waters05_test.py +31 -0
- charm/test/schemes/ibenc/ibenc_waters09_test.py +27 -0
- charm/test/schemes/pk_vrf_test.py +29 -0
- charm/test/schemes/pkenc/__init__.py +0 -0
- charm/test/schemes/pkenc_test.py +255 -0
- charm/test/schemes/pksig/__init__.py +0 -0
- charm/test/schemes/pksig_test.py +376 -0
- charm/test/schemes/rsa_alg_test.py +340 -0
- charm/test/schemes/threshold_test.py +1792 -0
- charm/test/serialize/__init__.py +0 -0
- charm/test/serialize/serialize_test.py +40 -0
- charm/test/toolbox/__init__.py +0 -0
- charm/test/toolbox/conversion_test.py +30 -0
- charm/test/toolbox/ecgroup_test.py +53 -0
- charm/test/toolbox/integer_arithmetic_test.py +441 -0
- charm/test/toolbox/paddingschemes_test.py +238 -0
- charm/test/toolbox/policy_parser_stress_test.py +969 -0
- charm/test/toolbox/secretshare_test.py +28 -0
- charm/test/toolbox/symcrypto_test.py +108 -0
- charm/test/toolbox/test_policy_expression.py +16 -0
- charm/test/vectors/__init__.py +1 -0
- charm/test/vectors/test_bls_vectors.py +289 -0
- charm/test/vectors/test_pedersen_vectors.py +315 -0
- charm/test/vectors/test_schnorr_vectors.py +368 -0
- charm/test/zkp_compiler/__init__.py +9 -0
- charm/test/zkp_compiler/benchmark_zkp.py +258 -0
- charm/test/zkp_compiler/test_and_proof.py +240 -0
- charm/test/zkp_compiler/test_batch_verify.py +248 -0
- charm/test/zkp_compiler/test_dleq_proof.py +264 -0
- charm/test/zkp_compiler/test_or_proof.py +231 -0
- charm/test/zkp_compiler/test_proof_serialization.py +121 -0
- charm/test/zkp_compiler/test_range_proof.py +241 -0
- charm/test/zkp_compiler/test_representation_proof.py +325 -0
- charm/test/zkp_compiler/test_schnorr_proof.py +221 -0
- charm/test/zkp_compiler/test_thread_safety.py +169 -0
- charm/test/zkp_compiler/test_zkp_parser.py +139 -0
- charm/toolbox/ABEnc.py +26 -0
- charm/toolbox/ABEncMultiAuth.py +66 -0
- charm/toolbox/ABEnumeric.py +800 -0
- charm/toolbox/Commit.py +24 -0
- charm/toolbox/DFA.py +89 -0
- charm/toolbox/FSA.py +1254 -0
- charm/toolbox/Hash.py +39 -0
- charm/toolbox/IBEnc.py +62 -0
- charm/toolbox/IBSig.py +64 -0
- charm/toolbox/PKEnc.py +66 -0
- charm/toolbox/PKSig.py +56 -0
- charm/toolbox/PREnc.py +32 -0
- charm/toolbox/ZKProof.py +289 -0
- charm/toolbox/__init__.py +0 -0
- charm/toolbox/bitstring.py +49 -0
- charm/toolbox/broadcast.py +220 -0
- charm/toolbox/conversion.py +100 -0
- charm/toolbox/eccurve.py +149 -0
- charm/toolbox/ecgroup.py +143 -0
- charm/toolbox/enum.py +60 -0
- charm/toolbox/hash_module.py +91 -0
- charm/toolbox/integergroup.py +323 -0
- charm/toolbox/iterate.py +22 -0
- charm/toolbox/matrixops.py +76 -0
- charm/toolbox/mpc_utils.py +296 -0
- charm/toolbox/msp.py +175 -0
- charm/toolbox/mta.py +985 -0
- charm/toolbox/node.py +120 -0
- charm/toolbox/ot/__init__.py +22 -0
- charm/toolbox/ot/base_ot.py +374 -0
- charm/toolbox/ot/dpf.py +642 -0
- charm/toolbox/ot/mpfss.py +228 -0
- charm/toolbox/ot/ot_extension.py +589 -0
- charm/toolbox/ot/silent_ot.py +378 -0
- charm/toolbox/paddingschemes.py +423 -0
- charm/toolbox/paddingschemes_test.py +238 -0
- charm/toolbox/pairingcurves.py +85 -0
- charm/toolbox/pairinggroup.py +186 -0
- charm/toolbox/policy_expression_spec.py +70 -0
- charm/toolbox/policytree.py +189 -0
- charm/toolbox/reCompiler.py +346 -0
- charm/toolbox/redundancyschemes.py +65 -0
- charm/toolbox/schemebase.py +188 -0
- charm/toolbox/secretshare.py +104 -0
- charm/toolbox/secretutil.py +174 -0
- charm/toolbox/securerandom.py +73 -0
- charm/toolbox/sigmaprotocol.py +46 -0
- charm/toolbox/specialprimes.py +45 -0
- charm/toolbox/symcrypto.py +279 -0
- charm/toolbox/threshold_sharing.py +553 -0
- charm/toolbox/xmlserialize.py +94 -0
- charm/toolbox/zknode.py +105 -0
- charm/zkp_compiler/__init__.py +89 -0
- charm/zkp_compiler/and_proof.py +460 -0
- charm/zkp_compiler/batch_verify.py +324 -0
- charm/zkp_compiler/dleq_proof.py +423 -0
- charm/zkp_compiler/or_proof.py +305 -0
- charm/zkp_compiler/range_proof.py +417 -0
- charm/zkp_compiler/representation_proof.py +466 -0
- charm/zkp_compiler/schnorr_proof.py +273 -0
- charm/zkp_compiler/thread_safe.py +150 -0
- charm/zkp_compiler/zk_demo.py +489 -0
- charm/zkp_compiler/zkp_factory.py +330 -0
- charm/zkp_compiler/zkp_generator.py +370 -0
- charm/zkp_compiler/zkparser.py +269 -0
- charm_crypto_framework-0.61.1.dist-info/METADATA +337 -0
- charm_crypto_framework-0.61.1.dist-info/RECORD +323 -0
- charm_crypto_framework-0.61.1.dist-info/WHEEL +5 -0
- charm_crypto_framework-0.61.1.dist-info/licenses/LICENSE.txt +165 -0
- charm_crypto_framework-0.61.1.dist-info/top_level.txt +1 -0
charm/schemes/sigma3.py
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
'''
|
|
2
|
+
**Sigma Protocol 3 - Proof of Membership (Sigma3)**
|
|
3
|
+
|
|
4
|
+
*Authors:* Charm Developers
|
|
5
|
+
|
|
6
|
+
| **Notes:** Proof of membership: {(h): H = e(g,h) and W = e(h,V)}
|
|
7
|
+
|
|
8
|
+
.. rubric:: Scheme Properties
|
|
9
|
+
|
|
10
|
+
* **Type:** sigma protocol (zero-knowledge proof of membership)
|
|
11
|
+
* **Setting:** bilinear groups (pairing-based)
|
|
12
|
+
* **Assumption:** DL
|
|
13
|
+
|
|
14
|
+
.. rubric:: Implementation
|
|
15
|
+
|
|
16
|
+
:Authors: J. Ayo Akinyele
|
|
17
|
+
:Date: 2/2012
|
|
18
|
+
'''
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
from charm.toolbox.sigmaprotocol import Sigma
|
|
22
|
+
from charm.toolbox.pairinggroup import ZR,G2,pair
|
|
23
|
+
|
|
24
|
+
# Proof of Membership {(h): H = e(g,h) /and/ W = e(h,V)}
|
|
25
|
+
class SigmaProtocol3(Sigma):
|
|
26
|
+
def __init__(self, groupObj=None, common_input=None):
|
|
27
|
+
Sigma.__init__(self, groupObj, common_input)
|
|
28
|
+
# dict to hold variables from interaction
|
|
29
|
+
|
|
30
|
+
# def gen_common(self):
|
|
31
|
+
# if self.__gen_setup:
|
|
32
|
+
# x = self.group.random(ZR)
|
|
33
|
+
# v = self.group.random(ZR)
|
|
34
|
+
# g = self.group.random(G1) # , self.group.random(G2)
|
|
35
|
+
# index = self.group.init(ZR, 1) # testing message 0 at index 1
|
|
36
|
+
# V = (g ** ~(x+index)) ** v
|
|
37
|
+
# y = g ** x
|
|
38
|
+
# print("check: lhs = e(V,y) =>", pair(V,y))
|
|
39
|
+
# print("check: rhs = e(V,g)^-o * e(g,g)^v =>", (pair(V,g) ** -index) * (pair(g,g) ** v))
|
|
40
|
+
# Protocol.store(self, ('g', g), ('V', V), ('v',v), ('y',y), ('sigma', index) )
|
|
41
|
+
# return None
|
|
42
|
+
|
|
43
|
+
def prover_state1(self):
|
|
44
|
+
print("PROVER 1: ")
|
|
45
|
+
(g, V) = Sigma.get(self, ['g', 'V'])
|
|
46
|
+
r = self.group.random(G2)
|
|
47
|
+
a1 = pair(g, r)
|
|
48
|
+
a2 = pair(V, r)
|
|
49
|
+
print("send r =>", r)
|
|
50
|
+
print("send a1 =>", a1)
|
|
51
|
+
print("send a2 =>", a2)
|
|
52
|
+
pk = Sigma.get(self, ['g','V','H'], dict)
|
|
53
|
+
|
|
54
|
+
Sigma.store(self, ('r',r) )
|
|
55
|
+
Sigma.setState(self, 3)
|
|
56
|
+
return { 'a1':a1, 'a2':a2, 'pk':pk }
|
|
57
|
+
|
|
58
|
+
def prover_state3(self, input):
|
|
59
|
+
print("PROVER 3: ")
|
|
60
|
+
(r, h, c) = Sigma.get(self, ['r', 'h', 'c'])
|
|
61
|
+
print("input c =>", c)
|
|
62
|
+
z = r * (h ** -c)
|
|
63
|
+
Sigma.setState(self, 5)
|
|
64
|
+
# need store and get functions for db
|
|
65
|
+
return {'z':z }
|
|
66
|
+
|
|
67
|
+
def prover_state5(self, input):
|
|
68
|
+
print("PROVER 5: result =>", input)
|
|
69
|
+
Sigma.setState(self, None)
|
|
70
|
+
Sigma.setErrorCode(self, input)
|
|
71
|
+
return None
|
|
72
|
+
|
|
73
|
+
def verifier_state2(self, input):
|
|
74
|
+
print("VERIFIER 2: ")
|
|
75
|
+
c = self.group.random(ZR)
|
|
76
|
+
print("send c =>", c)
|
|
77
|
+
Sigma.setState(self, 4)
|
|
78
|
+
return {'c':c }
|
|
79
|
+
|
|
80
|
+
def verifier_state4(self, input):
|
|
81
|
+
print("VERIFIER 4: ")
|
|
82
|
+
(a1, a2, c, W, z, pk) = Sigma.get(self, ['a1','a2','c','W','z','pk'])
|
|
83
|
+
g, V, H = pk['g'], pk['V'], pk['H']
|
|
84
|
+
if a1 == pair(g,z) * (H ** c) and a2 == pair(V,z) * (W ** c):
|
|
85
|
+
print("SUCCESS!!!!!!!"); result = 'OK'
|
|
86
|
+
else:
|
|
87
|
+
print("Failed!!!"); result = 'FAIL'
|
|
88
|
+
Sigma.setState(self, 6)
|
|
89
|
+
Sigma.setErrorCode(self, result)
|
|
90
|
+
return result
|
|
91
|
+
|
|
92
|
+
def verifier_state6(self, input):
|
|
93
|
+
print("VERIFIER 6: done.")
|
|
94
|
+
Sigma.setState(self, None)
|
|
95
|
+
return None
|
|
96
|
+
|
|
97
|
+
#if __name__ == "__main__":
|
|
98
|
+
# if len(sys.argv) != 2:
|
|
99
|
+
# print("Usage: %s [-v or -p]" % sys.argv[0])
|
|
100
|
+
# exit(-1)
|
|
101
|
+
#
|
|
102
|
+
# if sys.argv[1] == "-v":
|
|
103
|
+
# print("Operating as verifier...")
|
|
104
|
+
# svr = socket(AF_INET, SOCK_STREAM)
|
|
105
|
+
# svr.bind((HOST, PORT))
|
|
106
|
+
# svr.listen(1)
|
|
107
|
+
# svr_sock, addr = svr.accept()
|
|
108
|
+
# print("Connected by ", addr)
|
|
109
|
+
# _name, _type, _sock = "verifier", VERIFIER, svr_sock
|
|
110
|
+
# elif sys.argv[1] == "-p":
|
|
111
|
+
# print("Operating as prover...")
|
|
112
|
+
# clt = socket(AF_INET, SOCK_STREAM)
|
|
113
|
+
# clt.connect((HOST, PORT))
|
|
114
|
+
# clt.settimeout(15)
|
|
115
|
+
# _name, _type, _sock = "prover", PROVER, clt
|
|
116
|
+
# else:
|
|
117
|
+
# print("Usage: %s -v or -p" % sys.argv[0])
|
|
118
|
+
# exit(-1)
|
|
119
|
+
#
|
|
120
|
+
# group = PairingGroup('a.param')
|
|
121
|
+
# sp = SigmaProtocol3(group)
|
|
122
|
+
# sp.setup( {'name':_name, 'type':_type, 'socket':_sock} )
|
|
123
|
+
# # run as a thread...
|
|
124
|
+
# sp.execute(_type)
|
|
125
|
+
# print("Result of protocol =>", sp.result)
|
|
126
|
+
#
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Threshold Cryptography Schemes
|
|
3
|
+
|
|
4
|
+
This module provides threshold cryptographic schemes including:
|
|
5
|
+
- DKLS23 Distributed Key Generation (DKG) for threshold ECDSA
|
|
6
|
+
- DKLS23 Presigning Protocol for threshold ECDSA
|
|
7
|
+
- DKLS23 Signing Protocol for threshold ECDSA
|
|
8
|
+
- DKLS23 Complete threshold ECDSA implementation
|
|
9
|
+
- XRPL Threshold Wallet integration
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
from charm.schemes.threshold.dkls23_dkg import DKLS23_DKG, KeyShare
|
|
13
|
+
from charm.schemes.threshold.dkls23_presign import DKLS23_Presign, Presignature, SecurityAbort
|
|
14
|
+
from charm.schemes.threshold.dkls23_sign import DKLS23_Sign, DKLS23, ThresholdSignature
|
|
15
|
+
from charm.schemes.threshold.xrpl_wallet import (
|
|
16
|
+
XRPLThresholdWallet,
|
|
17
|
+
XRPLClient,
|
|
18
|
+
get_compressed_public_key,
|
|
19
|
+
derive_account_id,
|
|
20
|
+
encode_classic_address,
|
|
21
|
+
sign_xrpl_transaction_hash,
|
|
22
|
+
sign_xrpl_transaction,
|
|
23
|
+
format_xrpl_signature,
|
|
24
|
+
get_x_address,
|
|
25
|
+
decode_x_address,
|
|
26
|
+
compute_signing_hash,
|
|
27
|
+
get_secp256k1_generator,
|
|
28
|
+
# Memo helpers
|
|
29
|
+
encode_memo_data,
|
|
30
|
+
decode_memo_data,
|
|
31
|
+
create_memo,
|
|
32
|
+
create_payment_with_memo,
|
|
33
|
+
get_transaction_memos
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
__all__ = [
|
|
37
|
+
'DKLS23_DKG', 'KeyShare',
|
|
38
|
+
'DKLS23_Presign', 'Presignature', 'SecurityAbort',
|
|
39
|
+
'DKLS23_Sign', 'DKLS23', 'ThresholdSignature',
|
|
40
|
+
# XRPL integration
|
|
41
|
+
'XRPLThresholdWallet',
|
|
42
|
+
'XRPLClient',
|
|
43
|
+
'get_compressed_public_key',
|
|
44
|
+
'derive_account_id',
|
|
45
|
+
'encode_classic_address',
|
|
46
|
+
'sign_xrpl_transaction_hash',
|
|
47
|
+
'sign_xrpl_transaction',
|
|
48
|
+
'format_xrpl_signature',
|
|
49
|
+
'get_x_address',
|
|
50
|
+
'decode_x_address',
|
|
51
|
+
'compute_signing_hash',
|
|
52
|
+
'get_secp256k1_generator',
|
|
53
|
+
# Memo helpers
|
|
54
|
+
'encode_memo_data',
|
|
55
|
+
'decode_memo_data',
|
|
56
|
+
'create_memo',
|
|
57
|
+
'create_payment_with_memo',
|
|
58
|
+
'get_transaction_memos'
|
|
59
|
+
]
|