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'])
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)
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)
def test_sigExportImport(self): sig_str = signature.signature_export(self.sig) sig = signature.signature_import(self.code, sig_str) b = groupsig.verify(sig, "Hello, World!", self.grpkey) self.assertTrue(b)
# 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'])