// Helper functions /** * Helper function to create a Signing Identity and sign with it * * @param mspId * @return */ public bool TestCreatingSigningIdentityAndSign(string mspId) { bool b = false; IdemixSigningIdentity signingIdentityTest = null; try { signingIdentityTest = CreateIdemixSigningIdentity(mspId); } catch (System.Exception e) { Assert.Fail("Unexpected exception: " + e.Message); } Assert.IsNotNull(signingIdentityTest); // Test signing using this identity try { b = TestSigning(signingIdentityTest, message, null, false); } catch (System.Exception e) when(e is CryptoException || e is ArgumentException) { Assert.Fail("Unexpected exception: " + e.Message); } return(b); }
/** * Helper function for testing signing * * @param signIdentity * @return * @throws InvalidArgumentException */ public bool TestSigning(IdemixSigningIdentity signIdentity, byte[] msg, byte[] sigInput, bool useInputSig) { byte[] sig = signIdentity.Sign(msg); byte[] otherMsg = { 1, 1, 1, 1 }; if (useInputSig) { Assert.IsFalse(signIdentity.VerifySignature(otherMsg, sigInput)); return(signIdentity.VerifySignature(msg, sigInput)); } Assert.IsFalse(signIdentity.VerifySignature(otherMsg, sig)); return(signIdentity.VerifySignature(msg, sig)); }
public static void Setup(TestContext context) { // Parse crypto material from files IdemixMSPSignerConfig signerConfig = null; try { signerConfig = ReadIdemixMSPConfig(Path.Combine(TEST_PATH, MSP1OU1, USER_PATH).Locate(), SIGNER_CONFIG); } catch (System.Exception e) { Assert.Fail("Unexpected exception while reading signerconfig: " + e.Message); } Assert.IsNotNull(signerConfig); try { revocationPk = ReadIdemixRevocationPublicKey(Path.Combine(TEST_PATH, MSP1OU1, VERIFIER_PATH).Locate(), REVOCATION_PUBLIC_KEY); } catch (System.Exception e) { Assert.Fail("Unexpected exception while reading revocation public key: " + e.Message); } Assert.IsNotNull(revocationPk); IssuerPublicKey ipkProto = null; try { ipkProto = ReadIdemixIssuerPublicKey(Path.Combine(TEST_PATH, MSP1OU1, VERIFIER_PATH).Locate(), IPK_CONFIG); } catch (IOException e1) { Assert.Fail("Unexpected exception while reading revocation public key" + e1.Message); } ipk = new IdemixIssuerPublicKey(ipkProto); Assert.IsTrue(ipk.Check()); sk = BIG.FromBytes(signerConfig.Sk.ToByteArray()); Credential credProto = null; try { credProto = Credential.Parser.ParseFrom(signerConfig.Cred); } catch (InvalidProtocolBufferException) { Assert.Fail("Could not parse a credential"); } Assert.IsNotNull(credProto); cred = new IdemixCredential(credProto); try { cri = CredentialRevocationInformation.Parser.ParseFrom(signerConfig.CredentialRevocationInformation); } catch (InvalidProtocolBufferException e) { Assert.Fail("failed to extract cri from signer config: " + e.Message); } Assert.IsNotNull(cri); try { signingIdentity = new IdemixSigningIdentity(ipk, revocationPk, MSP1OU1, sk, cred, cri, OU1, IdemixRoles.MEMBER); } catch (System.Exception e) when(e is CryptoException || e is ArgumentException) { Assert.Fail("Could not create Idemix Signing Identity" + e.Message); } Assert.IsNotNull(signingIdentity); nym = signingIdentity.Pseudonym; nymPublic = nym.Nym; proof = signingIdentity.Proof; }