public void CanStoreMultipleKeysIndependently()
        {
            const string appId   = "myKeyTest";
            string       tenant1 = Guid.NewGuid().ToString();
            string       tenant2 = Guid.NewGuid().ToString();
            const string pwd1    = "password one";
            const string pwd2    = "second password";

            using (SecureString ss = SecureStringFromString(pwd1))
            {
                ServicePrincipalKeyStore.SaveKey(appId, tenant1, ss);
            }

            using (SecureString ss = SecureStringFromString(pwd2))
            {
                ServicePrincipalKeyStore.SaveKey(appId, tenant2, ss);
            }
            try
            {
                using (SecureString ss = ServicePrincipalKeyStore.GetKey(appId, tenant1))
                {
                    Assert.Equal(pwd1, StringFromSecureString(ss));
                }

                using (SecureString ss = ServicePrincipalKeyStore.GetKey(appId, tenant2))
                {
                    Assert.Equal(pwd2, StringFromSecureString(ss));
                }
            }
            finally
            {
                ServicePrincipalKeyStore.DeleteKey(appId, tenant1);
                ServicePrincipalKeyStore.DeleteKey(appId, tenant2);
            }
        }
        public void CanStoreAndRetrieveSingleKeyCorrectly()
        {
            const string appId    = "myServiceKeyTest";
            string       tenantId = Guid.NewGuid().ToString();
            const string password = "******";

            using (SecureString secret = SecureStringFromString(password))
            {
                ServicePrincipalKeyStore.SaveKey(appId, tenantId, secret);
            }

            try
            {
                string retrievedPassword;
                using (SecureString secret = ServicePrincipalKeyStore.GetKey(appId, tenantId))
                {
                    retrievedPassword = StringFromSecureString(secret);
                }

                Assert.Equal(password, retrievedPassword);
            }
            finally
            {
                ServicePrincipalKeyStore.DeleteKey(appId, tenantId);
            }
        }
        public void RetrievingNonExistingKeyReturnsNull()
        {
            const string appId    = "myKeyTest";
            string       tenantId = Guid.NewGuid().ToString();

            SecureString ss = null;

            try
            {
                ss = ServicePrincipalKeyStore.GetKey(appId, tenantId);
                Assert.Null(ss);
            }
            finally
            {
                if (ss != null)
                {
                    ss.Dispose();
                }
            }
        }
        public void DeletingKeyWorks()
        {
            const string appId    = "myKeyTest";
            string       tenantId = Guid.NewGuid().ToString();

            using (SecureString ss = SecureStringFromString("sekret"))
            {
                ServicePrincipalKeyStore.SaveKey(appId, tenantId, ss);
            }

            using (SecureString ss = ServicePrincipalKeyStore.GetKey(appId, tenantId))
            {
                Assert.NotNull(ss);
            }

            ServicePrincipalKeyStore.DeleteKey(appId, tenantId);

            using (SecureString ss = ServicePrincipalKeyStore.GetKey(appId, tenantId))
            {
                Assert.Null(ss);
            }
        }
Exemplo n.º 5
0
 private SecureString LoadAppKey(string appId, string tenantId)
 {
     return(ServicePrincipalKeyStore.GetKey(appId, tenantId));
 }