예제 #1
0
        public void GetVaultAccounts_with_no_items_work()
        {
            var http     = MakeJsonHttp(JsonHttpClientTest.SetupGetWithFixture("get-vault-with-no-items-response"));
            var keychain = new Keychain();

            keychain.Add(new AesKey("x4ouqoqyhcnqojrgubso4hsdga",
                                    "ce92c6d1af345c645211ad49692b22338d128d974e3b6718c868e02776c873a9".DecodeHex()));

            Client.GetVaultAccounts("ru74fjxlkipzzctorwj4icrj2a", TestData.SesionKey, keychain, http);
        }
예제 #2
0
        public void AddAndRemoveEntry()
        {
            underTest.Add(new KeyValuePair <string, string>(user, password));
            Assert.That(underTest[user], Is.EqualTo(password));
            Assert.That(underTest.Count, Is.EqualTo(1));
            Assert.That(underTest.Keys, Contains.Item(user));
            Assert.That(underTest.Values, Contains.Item(password));
            foreach (var entry in underTest)
            {
                Assert.That(entry.Key, Is.EqualTo(user));
                Assert.That(entry.Value, Is.EqualTo(password));
            }

            underTest.Remove(user);
            Assert.That(underTest.Count, Is.EqualTo(0));
            Assert.That(underTest, Is.Empty);
            Assert.That(underTest.Keys, Is.Empty);
            Assert.That(underTest.Values, Is.Empty);
        }
        public void GetVaultAccounts_returns_server_secrets()
        {
            var flow     = new RestFlow().Get(EncryptFixture("get-vault-with-server-secrets-response"));
            var keychain = new Keychain();

            keychain.Add(new AesKey("e2e2ungb5d4tl7ls4ohxwhtd2e",
                                    "518f5d0f72d118252c4a5ac0b87af54210bb0f4aee0210fe8adbe3343c8a11ea".DecodeHex()));

            var accounts = Client.GetVaultAccounts("6xkojw55yh4uo4vtdewghr5boi", keychain, TestData.SessionKey, flow);

            Assert.Contains(accounts, x => x.Name == "server-test");
        }
        public void GetVaultAccounts_with_no_items_work()
        {
            var flow     = new RestFlow().Get(EncryptFixture("get-vault-with-no-items-response"));
            var keychain = new Keychain();

            keychain.Add(new AesKey("x4ouqoqyhcnqojrgubso4hsdga",
                                    "ce92c6d1af345c645211ad49692b22338d128d974e3b6718c868e02776c873a9".DecodeHex()));

            var accounts = Client.GetVaultAccounts("ru74fjxlkipzzctorwj4icrj2a", keychain, TestData.SessionKey, flow);

            Assert.Empty(accounts);
        }
예제 #5
0
        public void DecryptRsaKey_adds_decrypted_key_to_keychain()
        {
            var encrypted = JsonConvert.DeserializeObject <R.Encrypted>(GetFixture("encrypted-rsa-key"));
            var keychain  = new Keychain();

            keychain.Add(new AesKey("szerdhg2ww2ahjo4ilz57x7cce",
                                    "bba932f6032dc4dffaa9b8f03c9fd4b810127b89a49408db7b914a131690c091".DecodeHex()));

            Util.DecryptRsaKey(encrypted, keychain);

            Assert.NotNull(keychain.GetRsa("szerdhg2ww2ahjo4ilz57x7cce"));
        }
        public void GetVaultAccounts_makes_GET_request_to_specific_url()
        {
            var flow = new RestFlow()
                       .Get(EncryptFixture("get-vault-accounts-ru74-response"))
                       .ExpectUrl("1password.com/api/v1/vault")
                       .ToRestClient(ApiUrl);
            var keychain = new Keychain();

            keychain.Add(new AesKey("x4ouqoqyhcnqojrgubso4hsdga",
                                    "ce92c6d1af345c645211ad49692b22338d128d974e3b6718c868e02776c873a9".DecodeHex()));

            Client.GetVaultAccounts("ru74fjxlkipzzctorwj4icrj2a", keychain, TestData.SessionKey, flow);
        }
예제 #7
0
        public void DecryptAesKey_adds_decrypted_key_to_keychain()
        {
            var encrypted = JsonConvert.DeserializeObject <R.Encrypted>(GetFixture("encrypted-aes-key"));
            var keychain  = new Keychain();

            keychain.Add(new AesKey("mp",
                                    "44c38e8fedb84a1ab5ba74ed98dde931f6500ae39c1d9c85e20a7268ab2074f0".DecodeHex()));

            Util.DecryptAesKey(encrypted, keychain);
            var k = keychain.GetAes("szerdhg2ww2ahjo4ilz57x7cce").Key.ToHex();

            Assert.NotNull(keychain.GetAes("szerdhg2ww2ahjo4ilz57x7cce"));
        }
예제 #8
0
        public void GetVaultAccounts_makes_GET_request_to_specific_url()
        {
            var http =
                MakeJsonHttp(
                    JsonHttpClientTest.SetupGetWithFixture("get-vault-accounts-ru74-response"));
            var keychain = new Keychain();

            keychain.Add(new AesKey("x4ouqoqyhcnqojrgubso4hsdga",
                                    "ce92c6d1af345c645211ad49692b22338d128d974e3b6718c868e02776c873a9".DecodeHex()));

            Client.GetVaultAccounts("ru74fjxlkipzzctorwj4icrj2a", TestData.SesionKey, keychain, http);

            JsonHttpClientTest.VerifyGetUrl(http.Http, "1password.com/api/v1/vault");
        }
        public void GetVaultAccounts_with_multiple_batches_returns_all_accounts()
        {
            var flow = new RestFlow()
                       .Get(EncryptFixture("get-vault-accounts-ru74-batch-1-response"))
                       .Get(EncryptFixture("get-vault-accounts-ru74-batch-2-response"))
                       .Get(EncryptFixture("get-vault-accounts-ru74-batch-3-response"));
            var keychain = new Keychain();

            keychain.Add(new AesKey("x4ouqoqyhcnqojrgubso4hsdga",
                                    "ce92c6d1af345c645211ad49692b22338d128d974e3b6718c868e02776c873a9".DecodeHex()));

            var accounts = Client.GetVaultAccounts("ru74fjxlkipzzctorwj4icrj2a", keychain, TestData.SessionKey, flow);

            Assert.Equal(3, accounts.Length);
        }