public async Task Exchange_IdentityBackup() { var vault = new SoftwareVault(new TestStorage()); var identity = await vault.CreateIdentity("Test", "passphrase"); // Backup var document = IdentityBackupDocument.Pack(identity); var serialized = document.ToJson(); // Restore var deserialized = Document.FromJson(serialized); var received = new IdentityBackupDocument(deserialized); var keypair = new KeyPair ( new PublicKey(received.PublicKey), new PrivateKey(received.EncryptedPrivateKey) ); var restored = await vault.ImportIdentity(received.Name, keypair, received.Stereotype); Assert.AreEqual(identity.Name, restored.Name); Assert.AreEqual(identity.Stereotype, restored.Stereotype); Assert.AreEqual(identity.PublicKey, restored.PublicKey); Assert.IsTrue(vault.Unlock(identity.AccountID, "passphrase")); }
public async Task Vault_StoreIdentity() { var storage = new InMemoryStore(); var vault = new SoftwareVault(storage); await vault.Initialize(); // Create and store identity var identity = await vault.CreateIdentity("Identity", "Passphrase", "Stereotype"); // Reopen Vault vault = new SoftwareVault(storage); await vault.Initialize(); var storedIdentities = vault.IdentityIDs; Assert.IsNotNull(storedIdentities); Assert.AreEqual(1, storedIdentities.Count()); var storedID = storedIdentities.First(); Assert.AreEqual(identity.AccountID, storedID); // Identities will be created via IProvideSigning var restored = new Identity( new PublicKey(vault.GetPublicKey(storedID)), vault); Assert.IsNotNull(restored); Assert.AreEqual(identity.Name, restored.Name); Assert.AreEqual(identity.Stereotype, restored.Stereotype); Assert.AreEqual(identity.PublicKey, restored.PublicKey); }
private async Task OpenDialogSoftwareVaultDetailsAsync(SoftwareVault softwareVault) { if (!await VerifyAdUserAsync()) { return; } RenderFragment body = (builder) => { builder.OpenComponent(0, typeof(SoftwareVaultDetails)); builder.AddAttribute(1, nameof(SoftwareVaultDetails.SoftwareVault), softwareVault); builder.CloseComponent(); }; await ModalDialogService.ShowAsync("Software vault details", body); }
private async Task LoadTableDataAsync() { var currentTotalRows = TotalRecords; TotalRecords = await SoftwareVaultService.GetVaultsCountAsync(SearchText, Filter); if (currentTotalRows != TotalRecords) { CurrentPage = 1; } SoftwareVaults = await SoftwareVaultService.GetSoftwareVaultsAsync((CurrentPage - 1) *DisplayRows, DisplayRows, SortedColumn, SortDirection, SearchText, Filter); SelectedSoftwareVault = null; StateHasChanged(); }
private Task SelectedItemChangedAsync(SoftwareVault item) { SelectedSoftwareVault = item; StateHasChanged(); return(Task.CompletedTask); }