/** * Helper function: parse Idemix MSP Signer config (is part of the MSPConfig proto) from path * * @param configPath * @param id * @return IdemixMSPSignerConfig proto */ public static IdemixMSPSignerConfig ReadIdemixMSPConfig(string configPath, string id) { string path = Path.Combine(configPath, id); byte[] data = File.ReadAllBytes(path); IdemixMSPSignerConfig signerConfig = IdemixMSPSignerConfig.Parser.ParseFrom(data); return(signerConfig); }
public IUser GetUser(string id) { IdemixMSPSignerConfig signerConfig = ReadIdemixMSPConfig(Path.Combine(mspId, USER_PATH + id)); KeyPair revocationPk = ReadIdemixRevocationPublicKey(mspId); BIG sk = BIG.FromBytes(signerConfig.Sk.ToByteArray()); IdemixCredential cred = new IdemixCredential(Credential.Parser.ParseFrom(signerConfig.Cred)); CredentialRevocationInformation cri = CredentialRevocationInformation.Parser.ParseFrom(signerConfig.CredentialRevocationInformation); IdemixEnrollment enrollment = new IdemixEnrollment(ipk, revocationPk, mspId, sk, cred, cri, signerConfig.OrganizationalUnitIdentifier, (IdemixRoles)signerConfig.Role); return(new IdemixUser(id, mspId, enrollment)); }
public void TestIdemixMSPSignerConfigSuccess() { IdemixMSPSignerConfig signerConfig = null; try { signerConfig = ReadIdemixMSPConfig(Path.Combine(TEST_PATH, MSP1OU1, USER_PATH).Locate(), SIGNER_CONFIG); } catch (InvalidProtocolBufferException e) { Assert.Fail("Unexpected IPBException" + e.Message); } catch (IOException e) { Assert.Fail("Unexpected IOException" + e.Message); } Assert.IsNotNull(signerConfig); }
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; }