예제 #1
0
        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"));
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        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();
        }
예제 #5
0
 private Task SelectedItemChangedAsync(SoftwareVault item)
 {
     SelectedSoftwareVault = item;
     StateHasChanged();
     return(Task.CompletedTask);
 }