public async Task TestProverStoreClaimWorks() { await InitCommonWallet(); await WalletUtils.CreateWallet(WALLET_NAME, WALLET_KEY); var proverWallet = await WalletUtils.OpenWallet(WALLET_NAME, WALLET_KEY); await AnonCreds.ProverCreateMasterSecretAsync(proverWallet, masterSecretName); var claimOffer = string.Format(claimOfferTemplate, issuerDid, 1); var claimRequest = await AnonCreds.ProverCreateCredentialReqAsync(proverWallet, proverDid, claimOffer, claimDef, masterSecretName); var claim = "{\"sex\":[\"male\",\"5944657099558967239210949258394887428692050081607692519917050011144233115103\"],\n" + " \"name\":[\"Alex\",\"1139481716457488690172217916278103335\"],\n" + " \"height\":[\"175\",\"175\"],\n" + " \"age\":[\"28\",\"28\"]\n" + " }"; // TODO var createClaimResult = await AnonCreds.IssuerCreateCredentialAsync(commonWallet, claimRequest, claim, -1); // var claimJson = createClaimResult.ClaimJson; // TODO await AnonCreds.ProverStoreClaimAsync(proverWallet, claimJson, createClaimResult.RevocRegUpdateJson); await proverWallet.CloseAsync(); await WalletUtils.DeleteWallet(WALLET_NAME, WALLET_KEY); }
public async Task DeleteWallet() { if (_wallet != null) { await _wallet.CloseAsync(); } await WalletUtils.DeleteWallet(WALLET_NAME, WALLET_KEY); }
public async Task TestGetClaimOffersForPlugged() { var type = "proverInmem"; var poolName = "default"; var walletName = "proverCustomWallet"; await WalletUtils.CreateWallet(WALLET_NAME, WALLET_KEY); string claimOffers = string.Empty; Wallet wallet = null; var claimOffer = string.Format(claimOfferTemplate, issuerDid, 1); var claimOffer2 = string.Format(claimOfferTemplate, issuerDid, 2); var claimOffer3 = string.Format(claimOfferTemplate, issuerDid2, 2); try { wallet = await WalletUtils.OpenWallet(WALLET_NAME, WALLET_KEY); // TODO await AnonCreds.ProverStoreCredentialOfferAsync(wallet, claimOffer); // TODO await AnonCreds.ProverStoreCredentialOfferAsync(wallet, claimOffer2); // TODO await AnonCreds.ProverStoreCredentialOfferAsync(wallet, claimOffer3); var filter = string.Format("{{\"issuer_did\":\"{0}\"}}", issuerDid); // TODO claimOffers = await AnonCreds.ProverGetClaimOffersAsync(wallet, filter); } finally { if (wallet != null) { await wallet.CloseAsync(); } await WalletUtils.DeleteWallet(WALLET_NAME, WALLET_KEY); } var claimOffersArray = JArray.Parse(claimOffers); Assert.AreEqual(2, claimOffersArray.Count); Assert.IsTrue(claimOffers.Contains(claimOffer)); Assert.IsTrue(claimOffers.Contains(claimOffer2)); }
public async Task DeleteWallet() { if (_issuerWallet != null) { await _issuerWallet.CloseAsync(); } await WalletUtils.DeleteWallet(ISSUER_WALLET, ISSUER_WALLET_KEY); if (_proverWallet != null) { await _proverWallet.CloseAsync(); } await WalletUtils.DeleteWallet(PROVER_WALLET, PROVER_WALLET_KEY); if (_pool != null) { await _pool.CloseAsync(); } }
public async Task TestLedgerDemo() { // 1. Create ledger config from genesis txn file Pool.SetProtocolVersionAsync(PoolUtils.PROTOCOL_VERSION); var poolName = PoolUtils.CreatePoolLedgerConfig(); var pool = await Pool.OpenPoolLedgerAsync(poolName, "{}"); // 2. Create and Open My Wallet await WalletUtils.CreateWallet(WALLET_NAME, WALLET_KEY); var myWallet = await WalletUtils.OpenWallet(WALLET_NAME, WALLET_KEY); // 3. Create and Open Trustee Wallet await WalletUtils.CreateWallet(TRUSTEE_WALLET_NAME, TRUSTEE_WALLET_KEY); var trusteeWallet = await WalletUtils.OpenWallet(TRUSTEE_WALLET_NAME, TRUSTEE_WALLET_KEY); // 4. Create My Did var createMyDidResult = await Did.CreateAndStoreMyDidAsync(myWallet, "{}"); Assert.IsNotNull(createMyDidResult); var myDid = createMyDidResult.Did; var myVerkey = createMyDidResult.VerKey; // 5. Create Did from Trustee1 seed var createTheirDidResult = await Did.CreateAndStoreMyDidAsync(trusteeWallet, TRUSTEE_IDENTITY_JSON); Assert.IsNotNull(createTheirDidResult); var trusteeDid = createTheirDidResult.Did; // 6. Build Nym Request var nymRequest = await Ledger.BuildNymRequestAsync(trusteeDid, myDid, myVerkey, null, null); Assert.IsNotNull(nymRequest); // 7. Trustee Sign Nym Request var nymResponseJson = await Ledger.SignAndSubmitRequestAsync(pool, trusteeWallet, trusteeDid, nymRequest); Assert.IsNotNull(nymResponseJson, "SignAndSubmitRequestAsync response is null"); /* * The format of SignAndSubmitRequestAsync response is like this. * * {"result":{ * "reqSignature":{ * "type":"ED25519", * "values":[{"value":"7kDrVBrmrKAvSs1QoQWYq6F774ZN3bRXx5e3aaUFiNvmh4F1yNqQw1951Az35nfrnGjZ99vtCmSFXZ5GqS1zLiG","from":"V4SGRU86Z58d6TV7PBUe6f"}] * }, * "txnMetadata":{ * "txnTime":1536876204, * "seqNo":36, * "txnId":"5d38ac6a242239c97ee28884c2b5cadec62248b2256bce51afd814c7847a853e" * }, * "ver":"1", * "auditPath":["DATtzSu9AMrArv8C2oribQh4wJ6TaD2K9o76t7EL2N7G","AbGuM7s9MudnT8M2eZe1yaG2EGUGxggMXSSbXCm4DFDx","3fjMoUdsbNrRfG5ZneHaQuX994oA4Z2pYPZtRRPmkngw"], * "rootHash":"A9LirjLuoBT59JJTJYvUgfQyEJA32Wb7njrbD9XqT2wc", * "txn":{ * "data":{ * "dest":"KQRpY4EmSG4MwH7md8gMoN","verkey":"B2nW4JfqZ2omHksoCmwD8zXXmtBsvbQk6WVSboazd8QB" * }, * "protocolVersion":2, * "type":"1", * "metadata":{ * "digest":"14594e0b31f751faf72d4bf4abdc6f54af34dab855fe1a0c67fe651b47bb93b5","reqId":1536876205519496000,"from":"V4SGRU86Z58d6TV7PBUe6f" * } * } * }, * "op":"REPLY"} */ var nymResponse = JObject.Parse(nymResponseJson); Assert.AreEqual(myDid, nymResponse["result"].Value <JObject>("txn").Value <JObject>("data").Value <string>("dest")); Assert.AreEqual(myVerkey, nymResponse["result"].Value <JObject>("txn").Value <JObject>("data").Value <string>("verkey")); // 8. Close and delete My Wallet await myWallet.CloseAsync(); await WalletUtils.DeleteWallet(WALLET_NAME, WALLET_KEY); // 9. Close and delete Their Wallet await trusteeWallet.CloseAsync(); await WalletUtils.DeleteWallet(TRUSTEE_WALLET_NAME, TRUSTEE_WALLET_KEY); // 10. Close Pool await pool.CloseAsync(); }