Beispiel #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"));
        }
Beispiel #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);
        }