예제 #1
0
        public void GetPolicyByName()
        {
            CertPolicyManager mgr    = CreateManager();
            CertPolicy        policy = mgr.Get("Policy1");

            policy.Name.Should().BeEquivalentTo("Policy1");
        }
예제 #2
0
        public ConfigStore(string connectString, TimeSpan timeout)
        {
            if (string.IsNullOrEmpty(connectString))
            {
                throw new ArgumentException("connectString");
            }
            if (timeout.Ticks <= 0)
            {
                throw new ArgumentException("timeout");
            }

            m_timeout = timeout;
            m_connectString = connectString;
            m_domains = new DomainManager(this);
            m_addresses = new AddressManager(this);
            m_certificates = new CertificateManager(this);
            m_anchors = new AnchorManager(this);
            m_dnsRecords = new DnsRecordManager(this);
            m_administrators = new AdministratorManager(this);
            m_properties = new PropertyManager(this);
            m_blobs = new NamedBlobManager(this);
            m_Mdns = new MdnManager(this);
            m_bundles = new BundleManager(this);
            m_certPolicies = new CertPolicyManager(this, new CertPolicyParseValidator());
            m_certPolicyGroups = new CertPolicyGroupManager(this);
        }
예제 #3
0
        public void StoreTest()
        {
            CertPolicyManager mgr    = CreateManager();
            ConfigStore       actual = mgr.Store;

            Assert.Equal(mgr.Store, actual);
        }
예제 #4
0
        public void Delete2PoliciesTest()
        {
            CertPolicyManager mgr = CreateManager();

            mgr.Count().Should().Be(9);
            mgr.Remove(new long[] { 1, 2 });

            mgr.Count().Should().Be(7);
        }
예제 #5
0
        public void DeletePolicyTest()
        {
            CertPolicyManager mgr    = CreateManager();
            CertPolicy        policy = mgr.Get("Policy2");

            mgr.Remove(policy.ID);

            mgr.Get("Policy2").Should().BeNull();
        }
예제 #6
0
        public void DeletePoliciesTest()
        {
            CertPolicyManager mgr = CreateManager();

            mgr.Count().Should().Be(9);
            long[] ids = mgr.Select(certPolicy => certPolicy.ID).ToArray();
            mgr.Remove(ids);

            mgr.Count().Should().Be(0);
        }
예제 #7
0
        public void AddPolicy()
        {
            CertPolicyManager mgr = CreateManager();

            CertPolicy expectedPolicy = new CertPolicy("UnitTestPolicy", "", "1 = 1".ToBytesUtf8());

            mgr.Add(expectedPolicy);

            CertPolicy actualCertPolicy = mgr.Get("UnitTestPolicy");

            expectedPolicy.Name.Should().BeEquivalentTo("UnitTestPolicy");
            expectedPolicy.CreateDate.Should().BeCloseTo(actualCertPolicy.CreateDate);
        }
예제 #8
0
        public void UpdatePolicyDescriptionTest()
        {
            CertPolicyManager mgr = CreateManager();

            CertPolicy newCertPolicy = new CertPolicy("UnitTestPolicy", "UnitTest Policy Description", "1 = 1".ToBytesUtf8());

            mgr.Add(newCertPolicy);
            CertPolicy actualCertPolicy = mgr.Get("UnitTestPolicy");

            actualCertPolicy.Should().NotBeNull();

            actualCertPolicy.Description = "blank";
            mgr.Update(actualCertPolicy);

            CertPolicy updatedCertPolicy = mgr.Get("UnitTestPolicy");

            updatedCertPolicy.Description.ShouldBeEquivalentTo("blank");
        }
예제 #9
0
        public void UpdatePolicyDataTest()
        {
            CertPolicyManager mgr = CreateManager();

            CertPolicy newCertPolicy = new CertPolicy("UnitTestPolicy", "UnitTest Policy Description", "1 = 1".ToBytesUtf8());

            mgr.Add(newCertPolicy);
            CertPolicy actualCertPolicy = mgr.Get("UnitTestPolicy");

            actualCertPolicy.Should().NotBeNull();

            actualCertPolicy.Data = "1 != 1".ToBytesUtf8();
            mgr.Update(actualCertPolicy);

            CertPolicy updatedCertPolicy = mgr.Get("UnitTestPolicy");

            updatedCertPolicy.Data.ToUtf8String().ShouldAllBeEquivalentTo("1 != 1");
        }
        public void AssociatePolicyToGroupSessionTest()
        {
            InitCertPolicyRecords();
            InitCertPolicyGroupRecords();

            using (ConfigDatabase db = CreateConfigDatabase(CertPolicyGroupManager.DataLoadOptions))
            {
                CertPolicyGroupManager mgr         = CreateManager();
                CertPolicyGroup        policyGroup = mgr.Get(db, "PolicyGroup1");
                policyGroup.CertPolicies.Count.Should().Be(0);
                CertPolicyManager policyMgr  = CreatePolicyManager();
                CertPolicy        certPolicy = policyMgr.Get("Policy1");

                policyGroup.CertPolicies.Add(certPolicy);
                db.SubmitChanges();
                policyGroup = mgr.Get("PolicyGroup1");
                policyGroup.CertPolicies.Count.Should().Be(1);
            }
        }
예제 #11
0
        public void GetIncomingAndOutgoingCertPolicieByOwnerAndUsage_Test()
        {
            CertPolicyGroupManager groupMgr     = CreatePolicyGroupManager();
            CertPolicyGroup        policyGroup1 = groupMgr.Get("PolicyGroup1");

            policyGroup1.CertPolicies.Count.Should().Be(0);
            CertPolicyGroup policyGroup2 = groupMgr.Get("PolicyGroup2");

            policyGroup1.CertPolicies.Count.Should().Be(0);
            policyGroup2.CertPolicies.Count.Should().Be(0);



            //
            // Map cert policy group to domains
            //
            groupMgr.AssociateToOwner(policyGroup1.Name, "domain1.test.com");
            groupMgr.AssociateToOwner(policyGroup2.Name, "domain2.test.com");
            //
            // Map cert policy group to policy
            //
            groupMgr.AddPolicyUse("Policy1", "PolicyGroup1", CertPolicyUse.TRUST, true, true);
            groupMgr.AddPolicyUse("Policy2", "PolicyGroup1", CertPolicyUse.PRIVATE_RESOLVER, true, false);


            CertPolicyManager policyMgr = CreateManager();

            CertPolicy[] policies = policyMgr.GetIncomingByOwner("domain1.test.com", CertPolicyUse.TRUST);
            policies.Length.Should().Be(1);
            policies = policyMgr.GetIncomingByOwner("domain1.test.com", CertPolicyUse.PUBLIC_RESOLVER);
            policies.Length.Should().Be(0);
            policies = policyMgr.GetOutgoingByOwner("domain1.test.com", CertPolicyUse.TRUST);
            policies.Length.Should().Be(1);
            policies = policyMgr.GetOutgoingByOwner("domain1.test.com", CertPolicyUse.PRIVATE_RESOLVER);
            policies.Length.Should().Be(0);

            policies = policyMgr.GetIncomingByOwner("domain2.test.com", CertPolicyUse.PRIVATE_RESOLVER);
            policies.Length.Should().Be(0);

            policies = policyMgr.GetIncomingByOwner("domain3.test.com", CertPolicyUse.PRIVATE_RESOLVER);
            policies.Length.Should().Be(0);
        }
예제 #12
0
        public void DeletePolicyWithAssociations()
        {
            CertPolicyGroupManager groupMgr    = CreatePolicyGroupManager();
            CertPolicyGroup        policyGroup = groupMgr.Get("PolicyGroup1");

            policyGroup.CertPolicies.Count.Should().Be(0);

            CertPolicyManager policyMgr = CreateManager();

            policyMgr.Get("Policy1").Should().NotBeNull();

            groupMgr.AddPolicyUse("Policy1", "PolicyGroup1", CertPolicyUse.PRIVATE_RESOLVER, true, true);

            policyGroup = groupMgr.Get("PolicyGroup1");
            policyGroup.CertPolicies.Count.Should().Be(1);

            CertPolicyManager mgr    = CreateManager();
            CertPolicy        policy = mgr.Get("Policy1");

            mgr.Remove(policy.ID);
            policyMgr.Get("Policy1").Should().BeNull();
        }