Пример #1
0
 def test_nonTransitiveConvert(self):
     self.addMember()
     sig1 = groupsig.sign(b"Hello, World1!", self.memkeys[0], self.grpkey)
     sig2 = groupsig.sign(b"Hello, World2!", self.memkeys[0], self.grpkey)
     b = groupsig.verify(sig1, b"Hello, World1!", self.grpkey)
     self.assertTrue(b)
     b = groupsig.verify(sig2, b"Hello, World2!", self.grpkey)
     self.assertTrue(b)
     bkey = bldkey.bldkey_random(self.code, self.grpkey)
     out = groupsig.blind(self.grpkey, sig1, "Hello, World1!", bkey)
     bsig1 = out["bsig"]
     out = groupsig.blind(self.grpkey, sig2, "Hello, World2!", bkey)
     bsig2 = out["bsig"]
     bkey_pub = bldkey.bldkey_import(constants.GL19_CODE,
                                     bldkey.bldkey_export_pub(bkey))
     csigs1 = groupsig.convert([bsig1],
                               self.grpkey,
                               bkey_pub,
                               mgrkey=self.cnvkey)
     csigs2 = groupsig.convert([bsig2],
                               self.grpkey,
                               bkey_pub,
                               mgrkey=self.cnvkey)
     nym1 = groupsig.unblind(csigs1[0], bkey)
     nym2 = groupsig.unblind(csigs2[0], bkey)
     self.assertNotEqual(nym1['nym'], nym2['nym'])
Пример #2
0
 def test_openSignature(self):
     self.addMember()
     self.addMember()
     sig = groupsig.sign(b"Hello, World!", self.memkeys[1], self.grpkey)
     gsopen = groupsig.open(sig, self.opnkey, self.grpkey, gml = self.gml)
     self.assertEqual(gsopen["index"], 1)
     proof = gsopen['proof']
     b = groupsig.open_verify(proof, sig, self.grpkey)
     self.assertTrue(b)
Пример #3
0
 def setUp(self):
     groupsig.init(constants.BBS04_CODE, 0)
     group = groupsig.setup(constants.BBS04_CODE)
     self.code = constants.BBS04_CODE
     self.mgrkey = group['mgrkey']
     self.grpkey = group['grpkey']
     self.gml = group['gml']
     self.memkeys = []
     self.addMember()
     self.sig = groupsig.sign("Hello, World!", self.memkeys[0], self.grpkey)
Пример #4
0
 def test_acceptValidSignatureBatch(self):
     self.addMember()
     sigs = []
     msgs = []
     for i in range(10):
         msg = "Hello, World "+ str(i) + "!"
         sig = groupsig.sign(msg, self.memkeys[0], self.grpkey)
         msgs.append(msg)
         sigs.append(sig)
     b = groupsig.verify_batch(sigs, msgs, self.grpkey)
     self.assertTrue(b)
Пример #5
0
 def test_rejectWrongSignatureBatch(self):
     self.addMember()
     sigs = []
     msgs = []
     for i in range(10):
         msg = "Hello, World "+ str(i) + "!"
         sig = groupsig.sign(msg, self.memkeys[0], self.grpkey)
         msgs.append(msg)
         sigs.append(sig)
     msgs[0] = "Hello, World!"
     b = groupsig.verify_batch(sigs, msgs, self.grpkey)
     self.assertFalse(b)
Пример #6
0
 def setUp(self):
     groupsig.init(constants.GL19_CODE, 0)
     group1 = groupsig.setup(constants.GL19_CODE)
     self.code = constants.GL19_CODE
     grpkey1 = group1['grpkey']
     self.isskey = group1['mgrkey']
     group2 = groupsig.setup(constants.GL19_CODE, grpkey1)
     self.cnvkey = group2['mgrkey']
     self.grpkey = group2['grpkey']
     self.memkeys = []
     self.addMember()
     self.sig = groupsig.sign("Hello, World!", self.memkeys[0], self.grpkey)
Пример #7
0
 def setUp(self):
     groupsig.init(constants.GL19_CODE, 0)
     group1 = groupsig.setup(constants.GL19_CODE)
     self.code = constants.GL19_CODE
     grpkey1 = group1['grpkey']
     self.isskey = group1['mgrkey']
     group2 = groupsig.setup(constants.GL19_CODE, grpkey1)
     self.cnvkey = group2['mgrkey']
     self.grpkey = group2['grpkey']
     self.memkeys = []
     self.addMember()
     self.sig = groupsig.sign("Hello, World!", self.memkeys[0], self.grpkey)
     bkey = bldkey.bldkey_random(self.code, self.grpkey)
     out = groupsig.blind(self.grpkey, self.sig, "Hello, World!", bkey)
     self.bsig = out["bsig"]
Пример #8
0
 def test_rejectValidSignatureWrongMessageBytes(self):
     self.addMember()
     sig = groupsig.sign(b"Hello, World!", self.memkeys[0], self.grpkey)
     b = groupsig.verify(sig, b"Hello, Worlds!", self.grpkey)
     self.assertFalse(b)
Пример #9
0
 def test_acceptValidSignatureBytes(self):
     self.addMember()
     sig = groupsig.sign(b"Hello, World!", self.memkeys[0], self.grpkey)
     b = groupsig.verify(sig, b"Hello, World!", self.grpkey)
     self.assertTrue(b)
Пример #10
0
 def test_openSignature(self):
     self.addMember()
     self.addMember()
     sig = groupsig.sign(b"Hello, World!", self.memkeys[1], self.grpkey)
     gsopen = groupsig.open(sig, self.mgrkey, self.grpkey, gml=self.gml)
     self.assertEqual(gsopen["index"], 1)
Пример #11
0
# Setup
issuer = groupsig.setup(constants.GL19_CODE)
_gpk = issuer['grpkey']
isk = issuer['mgrkey']
converter = groupsig.setup(constants.GL19_CODE, _gpk)
csk = converter['mgrkey']
gpk = converter['grpkey']

# Join
msg1 = groupsig.join_mgr(0, isk, gpk)
msg2 = groupsig.join_mem(1, gpk, msgin=msg1)
usk = msg2['memkey']
msg3 = groupsig.join_mgr(2, isk, gpk, msg2['msgout'])
msg4 = groupsig.join_mem(3, gpk, msgin=msg3, memkey=usk)
usk = msg4['memkey']

# Sign
sig = groupsig.sign("Hello, World!", usk, gpk)

# Verify
b = groupsig.verify(sig, "Hello, World!", gpk)

if b == True:
    print("VALID signature.")
else:
    print("WRONG signature.")
    sys.exit()

groupsig.clear(constants.GL19_CODE, issuer['config'])
groupsig.clear(constants.GL19_CODE, converter['config'])
Пример #12
0
import sys

from pygroupsig import groupsig
from pygroupsig import signature
from pygroupsig import blindsig
from pygroupsig import memkey
from pygroupsig import grpkey
from pygroupsig import mgrkey
from pygroupsig import bldkey
from pygroupsig import constants

if len(sys.argv) != 4:
    print("Usage: $python3 sign.py <grpkey str> <memkey str> <message>")
    sys.exit()

# Init scheme
groupsig.init(constants.GL19_CODE, 0)

# Import grpkey
gpk = grpkey.grpkey_import(constants.GL19_CODE, sys.argv[1])

# Import mem key
usk = memkey.memkey_import(constants.GL19_CODE, sys.argv[2])

# Read file
sig = groupsig.sign(sys.argv[3], usk, gpk)

ssig = signature.signature_export(sig)
print("Signature: %s" % ssig)