Пример #1
0
        public void testErrors()
        {
            PibMemory pibImpl = new PibMemory();

            PibKeyContainer container = new PibKeyContainer(fixture.id1, pibImpl);

            try {
                container.add(fixture.id2Key1.buf(), fixture.id2Key1Name);
                Assert.Fail("Did not throw the expected exception");
            } catch (ArgumentException ex) {
            } catch (Exception ex_0) {
                Assert.Fail("Did not throw the expected exception");
            }

            try {
                container.remove(fixture.id2Key1Name);
                Assert.Fail("Did not throw the expected exception");
            } catch (ArgumentException ex_1) {
            } catch (Exception ex_2) {
                Assert.Fail("Did not throw the expected exception");
            }

            try {
                container.get(fixture.id2Key1Name);
                Assert.Fail("Did not throw the expected exception");
            } catch (ArgumentException ex_3) {
            } catch (Exception ex_4) {
                Assert.Fail("Did not throw the expected exception");
            }
        }
Пример #2
0
        public void setUp()
        {
            // Don't show INFO log messages.
            ILOG.J2CsMapping.Util.Logging.Logger.getLogger("").setLevel(ILOG.J2CsMapping.Util.Logging.Level.WARNING);

            policyConfigDirectory_ = net.named_data.jndn.tests.integration_tests.IntegrationTestsCommon
                                     .getPolicyConfigDirectory();

            testCertFile_ = new FileInfo(System.IO.Path.Combine(new FileInfo(System.IO.Path.Combine(policyConfigDirectory_.FullName, "certs")).FullName, "test.cert"));

            pibImpl_       = new PibMemory();
            tpmBackEnd_    = new TpmBackEndMemory();
            policyManager_ = new ConfigPolicyManager(policyConfigDirectory_
                                                     + "/simple_rules.conf", new CertificateCacheV2());

            identityName_ = new Name("/TestConfigPolicyManager/temp");
            // To match the anchor cert.
            keyName_ = new Name(identityName_).append("KEY").append(
                "ksk-1416010123");
            pibImpl_.addKey(identityName_, keyName_, TEST_RSA_PUBLIC_KEY_DER);
            // Set the password null since we have an unencrypted PKCS #8 private key.
            tpmBackEnd_.importKey(keyName_, TEST_RSA_PRIVATE_KEY_PKCS8, null);

            keyChain_ = new KeyChain(pibImpl_, tpmBackEnd_, policyManager_);

            PibKey pibKey = keyChain_.getPib().getIdentity(identityName_)
                            .getKey(keyName_);

            // selfSign adds to the PIB.
            keyChain_.selfSign(pibKey);
        }
Пример #3
0
        public void testErrors()
        {
            PibMemory pibImpl = new PibMemory();

            try {
                new PibIdentityImpl(fixture.id1, pibImpl, false);
                Assert.Fail("Did not throw the expected exception");
            } catch (Pib.Error ex) {
            } catch (Exception ex_0) {
                Assert.Fail("Did not throw the expected exception");
            }

            PibIdentityImpl identity1 = new PibIdentityImpl(fixture.id1, pibImpl,
                                                            true);

            identity1.addKey(fixture.id1Key1.buf(), fixture.id1Key1Name);
            try {
                identity1.addKey(fixture.id2Key1.buf(), fixture.id2Key1Name);
                Assert.Fail("Did not throw the expected exception");
            } catch (ArgumentException ex_1) {
            } catch (Exception ex_2) {
                Assert.Fail("Did not throw the expected exception");
            }

            identity1.addKey(fixture.id1Key1.buf(), fixture.id1Key1Name);
            try {
                identity1.removeKey(fixture.id2Key1Name);
                Assert.Fail("Did not throw the expected exception");
            } catch (ArgumentException ex_3) {
            } catch (Exception ex_4) {
                Assert.Fail("Did not throw the expected exception");
            }

            identity1.addKey(fixture.id1Key1.buf(), fixture.id1Key1Name);
            try {
                identity1.getKey(fixture.id2Key1Name);
                Assert.Fail("Did not throw the expected exception");
            } catch (ArgumentException ex_5) {
            } catch (Exception ex_6) {
                Assert.Fail("Did not throw the expected exception");
            }

            identity1.addKey(fixture.id1Key1.buf(), fixture.id1Key1Name);
            try {
                identity1.setDefaultKey(fixture.id2Key1.buf(), fixture.id2Key1Name);
                Assert.Fail("Did not throw the expected exception");
            } catch (ArgumentException ex_7) {
            } catch (Exception ex_8) {
                Assert.Fail("Did not throw the expected exception");
            }

            identity1.addKey(fixture.id1Key1.buf(), fixture.id1Key1Name);
            try {
                identity1.setDefaultKey(fixture.id2Key1Name);
                Assert.Fail("Did not throw the expected exception");
            } catch (ArgumentException ex_9) {
            } catch (Exception ex_10) {
                Assert.Fail("Did not throw the expected exception");
            }
        }
Пример #4
0
        public void testBasic()
        {
            PibMemory       pibImpl   = new PibMemory();
            PibIdentityImpl identity1 = new PibIdentityImpl(fixture.id1, pibImpl,
                                                            true);

            Assert.AssertTrue(fixture.id1.equals(identity1.getName()));
        }
Пример #5
0
        public void testOverwrite()
        {
            PibMemory       pibImpl   = new PibMemory();
            PibIdentityImpl identity1 = new PibIdentityImpl(fixture.id1, pibImpl,
                                                            true);

            identity1.addKey(fixture.id1Key1.buf(), fixture.id1Key1Name);
            Assert.AssertTrue(identity1.getKey(fixture.id1Key1Name).getPublicKey()
                              .equals(fixture.id1Key1));

            // Overwriting the key should work.
            identity1.addKey(fixture.id1Key2.buf(), fixture.id1Key1Name);
            Assert.AssertTrue(identity1.getKey(fixture.id1Key1Name).getPublicKey()
                              .equals(fixture.id1Key2));
        }
Пример #6
0
        public void testOverwrite()
        {
            PibMemory pibImpl = new PibMemory();

            try {
                new PibKeyImpl(fixture.id1Key1Name, pibImpl);
                Assert.Fail("Did not throw the expected exception");
            } catch (Pib.Error ex) {
            } catch (Exception ex_0) {
                Assert.Fail("Did not throw the expected exception");
            }

            new PibKeyImpl(fixture.id1Key1Name, fixture.id1Key1.buf(), pibImpl);
            PibKeyImpl key1 = new PibKeyImpl(fixture.id1Key1Name, pibImpl);

            // Overwriting the key should work.
            new PibKeyImpl(fixture.id1Key1Name, fixture.id1Key2.buf(), pibImpl);
            PibKeyImpl key2 = new PibKeyImpl(fixture.id1Key1Name, pibImpl);

            // key1 should have cached the original public key.
            Assert.AssertTrue(!key1.getPublicKey().equals(key2.getPublicKey()));
            Assert.AssertTrue(key2.getPublicKey().equals(fixture.id1Key2));

            key1.addCertificate(fixture.id1Key1Cert1);
            // Use the wire encoding to check equivalence.
            Assert.AssertTrue(key1.getCertificate(fixture.id1Key1Cert1.getName())
                              .wireEncode().equals(fixture.id1Key1Cert1.wireEncode()));

            CertificateV2 otherCert = new CertificateV2(fixture.id1Key1Cert1);

            ((Sha256WithRsaSignature)otherCert.getSignature()).getValidityPeriod()
            .setPeriod(net.named_data.jndn.util.Common.getNowMilliseconds(),
                       net.named_data.jndn.util.Common.getNowMilliseconds() + 1000);
            // Don't bother resigning so we don't have to load a private key.

            Assert.AssertTrue(fixture.id1Key1Cert1.getName().equals(otherCert.getName()));
            Assert.AssertTrue(otherCert.getContent().equals(
                                  fixture.id1Key1Cert1.getContent()));
            Assert.AssertFalse(otherCert.wireEncode().equals(
                                   fixture.id1Key1Cert1.wireEncode()));

            key1.addCertificate(otherCert);

            Assert.AssertTrue(key1.getCertificate(fixture.id1Key1Cert1.getName())
                              .wireEncode().equals(otherCert.wireEncode()));
        }
Пример #7
0
        public void testBasic()
        {
            PibMemory  pibImpl = new PibMemory();
            PibKeyImpl key11   = new PibKeyImpl(fixture.id1Key1Name,
                                                fixture.id1Key1.buf(), pibImpl);

            Assert.AssertTrue(fixture.id1Key1Name.equals(key11.getName()));
            Assert.AssertTrue(fixture.id1.equals(key11.getIdentityName()));
            Assert.AssertEquals(net.named_data.jndn.security.KeyType.RSA, key11.getKeyType());
            Assert.AssertTrue(key11.getPublicKey().equals(fixture.id1Key1));

            PibKeyImpl key11FromBackend = new PibKeyImpl(fixture.id1Key1Name,
                                                         pibImpl);

            Assert.AssertTrue(fixture.id1Key1Name.equals(key11FromBackend.getName()));
            Assert.AssertTrue(fixture.id1.equals(key11FromBackend.getIdentityName()));
            Assert.AssertEquals(net.named_data.jndn.security.KeyType.RSA, key11FromBackend.getKeyType());
            Assert.AssertTrue(key11FromBackend.getPublicKey().equals(fixture.id1Key1));
        }
        public void testBasic()
        {
            PibMemory pibImpl = new PibMemory();

            // Start with an empty container.
            PibIdentityContainer container = new PibIdentityContainer(pibImpl);

            Assert.AssertEquals(0, container.size());
            Assert.AssertEquals(0, container.getIdentities_().Count);

            // Add the first identity.
            PibIdentity identity11 = container.add(fixture.id1);

            Assert.AssertTrue(fixture.id1.equals(identity11.getName()));
            Assert.AssertEquals(1, container.size());
            Assert.AssertEquals(1, container.getIdentities_().Count);
            Assert.AssertTrue(container.getIdentities_().Contains(fixture.id1));

            // Add the same identity again.
            PibIdentity identity12 = container.add(fixture.id1);

            Assert.AssertTrue(fixture.id1.equals(identity12.getName()));
            Assert.AssertEquals(1, container.size());
            Assert.AssertEquals(1, container.getIdentities_().Count);
            Assert.AssertTrue(container.getIdentities_().Contains(fixture.id1));

            // Add the second identity.
            PibIdentity identity21 = container.add(fixture.id2);

            Assert.AssertTrue(fixture.id2.equals(identity21.getName()));
            Assert.AssertEquals(2, container.size());
            Assert.AssertEquals(2, container.getIdentities_().Count);
            Assert.AssertTrue(container.getIdentities_().Contains(fixture.id1));
            Assert.AssertTrue(container.getIdentities_().Contains(fixture.id2));

            // Get identities.
            try {
                container.get(fixture.id1);
            } catch (Exception ex) {
                Assert.Fail("Unexpected exception: " + ex.Message);
            }
            try {
                container.get(fixture.id2);
            } catch (Exception ex_0) {
                Assert.Fail("Unexpected exception: " + ex_0.Message);
            }
            try {
                container.get(new Name("/non-existing"));
                Assert.Fail("Did not throw the expected exception");
            } catch (Pib.Error ex_1) {
            } catch (Exception ex_2) {
                Assert.Fail("Did not throw the expected exception");
            }

            // Check the identity.
            PibIdentity identity1 = container.get(fixture.id1);
            PibIdentity identity2 = container.get(fixture.id2);

            Assert.AssertTrue(fixture.id1.equals(identity1.getName()));
            Assert.AssertTrue(fixture.id2.equals(identity2.getName()));

            // Create another container from the same PibImpl. The cache should be empty.
            PibIdentityContainer container2 = new PibIdentityContainer(pibImpl);

            Assert.AssertEquals(2, container2.size());
            Assert.AssertEquals(0, container2.getIdentities_().Count);

            // Get keys. The cache should be filled.
            try {
                container2.get(fixture.id1);
            } catch (Exception ex_3) {
                Assert.Fail("Unexpected exception: " + ex_3.Message);
            }
            Assert.AssertEquals(2, container2.size());
            Assert.AssertEquals(1, container2.getIdentities_().Count);

            try {
                container2.get(fixture.id2);
            } catch (Exception ex_4) {
                Assert.Fail("Unexpected exception: " + ex_4.Message);
            }
            Assert.AssertEquals(2, container2.size());
            Assert.AssertEquals(2, container2.getIdentities_().Count);

            // Remove a key.
            container2.remove(fixture.id1);
            Assert.AssertEquals(1, container2.size());
            Assert.AssertEquals(1, container2.getIdentities_().Count);
            Assert.AssertTrue(!container2.getIdentities_().Contains(fixture.id1));
            Assert.AssertTrue(container2.getIdentities_().Contains(fixture.id2));

            // Remove another key.
            container2.remove(fixture.id2);
            Assert.AssertEquals(0, container2.size());
            Assert.AssertEquals(0, container2.getIdentities_().Count);
            Assert.AssertTrue(!container2.getIdentities_().Contains(fixture.id2));
        }
Пример #9
0
        public void testBasic()
        {
            PibMemory pibImpl = new PibMemory();

            // Start with an empty container.
            PibKeyContainer container = new PibKeyContainer(fixture.id1, pibImpl);

            Assert.AssertEquals(0, container.size());
            Assert.AssertEquals(0, container.getKeys_().Count);

            // Add the first key.
            PibKey key11 = container
                           .add(fixture.id1Key1.buf(), fixture.id1Key1Name);

            Assert.AssertTrue(fixture.id1Key1Name.equals(key11.getName()));
            Assert.AssertTrue(key11.getPublicKey().equals(fixture.id1Key1));
            Assert.AssertEquals(1, container.size());
            Assert.AssertEquals(1, container.getKeys_().Count);
            Assert.AssertTrue(container.getKeys_().Contains(fixture.id1Key1Name));

            // Add the same key again.
            PibKey key12 = container
                           .add(fixture.id1Key1.buf(), fixture.id1Key1Name);

            Assert.AssertTrue(fixture.id1Key1Name.equals(key12.getName()));
            Assert.AssertTrue(key12.getPublicKey().equals(fixture.id1Key1));
            Assert.AssertEquals(1, container.size());
            Assert.AssertEquals(1, container.getKeys_().Count);
            Assert.AssertTrue(container.getKeys_().Contains(fixture.id1Key1Name));

            // Add the second key.
            PibKey key21 = container
                           .add(fixture.id1Key2.buf(), fixture.id1Key2Name);

            Assert.AssertTrue(fixture.id1Key2Name.equals(key21.getName()));
            Assert.AssertTrue(key21.getPublicKey().equals(fixture.id1Key2));
            Assert.AssertEquals(2, container.size());
            Assert.AssertEquals(2, container.getKeys_().Count);
            Assert.AssertTrue(container.getKeys_().Contains(fixture.id1Key1Name));
            Assert.AssertTrue(container.getKeys_().Contains(fixture.id1Key2Name));

            // Get keys.
            try {
                container.get(fixture.id1Key1Name);
            } catch (Exception ex) {
                Assert.Fail("Unexpected exception: " + ex.Message);
            }
            try {
                container.get(fixture.id1Key2Name);
            } catch (Exception ex_0) {
                Assert.Fail("Unexpected exception: " + ex_0.Message);
            }
            Name id1Key3Name = net.named_data.jndn.security.pib.PibKey.constructKeyName(fixture.id1,
                                                                                        new Name.Component("non-existing-id"));

            try {
                container.get(id1Key3Name);
                Assert.Fail("Did not throw the expected exception");
            } catch (Pib.Error ex_1) {
            } catch (Exception ex_2) {
                Assert.Fail("Did not throw the expected exception");
            }

            // Get and check keys.
            PibKey key1 = container.get(fixture.id1Key1Name);
            PibKey key2 = container.get(fixture.id1Key2Name);

            Assert.AssertTrue(fixture.id1Key1Name.equals(key1.getName()));
            Assert.AssertTrue(key1.getPublicKey().equals(fixture.id1Key1));
            Assert.AssertEquals(fixture.id1Key2Name, key2.getName());
            Assert.AssertTrue(key2.getPublicKey().equals(fixture.id1Key2));

            // Create another container using the same PibImpl. The cache should be empty.
            PibKeyContainer container2 = new PibKeyContainer(fixture.id1, pibImpl);

            Assert.AssertEquals(2, container2.size());
            Assert.AssertEquals(0, container2.getKeys_().Count);

            // Get a key. The cache should be filled.
            try {
                container2.get(fixture.id1Key1Name);
            } catch (Exception ex_3) {
                Assert.Fail("Unexpected exception: " + ex_3.Message);
            }
            Assert.AssertEquals(2, container2.size());
            Assert.AssertEquals(1, container2.getKeys_().Count);

            try {
                container2.get(fixture.id1Key2Name);
            } catch (Exception ex_4) {
                Assert.Fail("Unexpected exception: " + ex_4.Message);
            }
            Assert.AssertEquals(2, container2.size());
            Assert.AssertEquals(2, container2.getKeys_().Count);

            // Remove a key.
            container2.remove(fixture.id1Key1Name);
            Assert.AssertEquals(1, container2.size());
            Assert.AssertEquals(1, container2.getKeys_().Count);
            Assert.AssertTrue(!container2.getKeys_().Contains(fixture.id1Key1Name));
            Assert.AssertTrue(container2.getKeys_().Contains(fixture.id1Key2Name));

            // Remove another key.
            container2.remove(fixture.id1Key2Name);
            Assert.AssertEquals(0, container2.size());
            Assert.AssertEquals(0, container2.getKeys_().Count);
            Assert.AssertTrue(!container2.getKeys_().Contains(fixture.id1Key2Name));
        }
Пример #10
0
        public void testKeyOperation()
        {
            PibMemory       pibImpl   = new PibMemory();
            PibIdentityImpl identity1 = new PibIdentityImpl(fixture.id1, pibImpl,
                                                            true);

            try {
                new PibIdentityImpl(fixture.id1, pibImpl, false);
            } catch (Exception ex) {
                Assert.Fail("Unexpected exception: " + ex.Message);
            }

            // The identity should not have any key.
            Assert.AssertEquals(0, identity1.getKeys_().size());

            // Getting non-existing key should throw Pib.Error.
            try {
                identity1.getKey(fixture.id1Key1Name);
                Assert.Fail("Did not throw the expected exception");
            } catch (Pib.Error ex_0) {
            } catch (Exception ex_1) {
                Assert.Fail("Did not throw the expected exception");
            }
            // Getting the default key should throw Pib.Error.
            try {
                identity1.getDefaultKey();
                Assert.Fail("Did not throw the expected exception");
            } catch (Pib.Error ex_2) {
            } catch (Exception ex_3) {
                Assert.Fail("Did not throw the expected exception");
            }
            // Setting a non-existing key as the default key should throw Pib.Error.
            try {
                identity1.setDefaultKey(fixture.id1Key1Name);
                Assert.Fail("Did not throw the expected exception");
            } catch (Pib.Error ex_4) {
            } catch (Exception ex_5) {
                Assert.Fail("Did not throw the expected exception");
            }

            // Add a key.
            identity1.addKey(fixture.id1Key1.buf(), fixture.id1Key1Name);
            try {
                identity1.getKey(fixture.id1Key1Name);
            } catch (Exception ex_6) {
                Assert.Fail("Unexpected exception: " + ex_6.Message);
            }

            // A new key should become the default key when there is no default.
            try {
                identity1.getDefaultKey();
            } catch (Exception ex_7) {
                Assert.Fail("Unexpected exception: " + ex_7.Message);
            }
            PibKey defaultKey0 = identity1.getDefaultKey();

            Assert.AssertTrue(fixture.id1Key1Name.equals(defaultKey0.getName()));
            Assert.AssertTrue(defaultKey0.getPublicKey().equals(fixture.id1Key1));

            // Remove a key.
            identity1.removeKey(fixture.id1Key1Name);
            try {
                identity1.setDefaultKey(fixture.id1Key1Name);
                Assert.Fail("Did not throw the expected exception");
            } catch (Pib.Error ex_8) {
            } catch (Exception ex_9) {
                Assert.Fail("Did not throw the expected exception");
            }

            try {
                identity1.getDefaultKey();
                Assert.Fail("Did not throw the expected exception");
            } catch (Pib.Error ex_10) {
            } catch (Exception ex_11) {
                Assert.Fail("Did not throw the expected exception");
            }

            // Set the default key directly.
            try {
                identity1.setDefaultKey(fixture.id1Key1.buf(), fixture.id1Key1Name);
            } catch (Exception ex_12) {
                Assert.Fail("Unexpected exception: " + ex_12.Message);
            }
            try {
                identity1.getDefaultKey();
            } catch (Exception ex_13) {
                Assert.Fail("Unexpected exception: " + ex_13.Message);
            }
            try {
                identity1.getKey(fixture.id1Key1Name);
            } catch (Exception ex_14) {
                Assert.Fail("Unexpected exception: " + ex_14.Message);
            }

            // Check for a default key.
            PibKey defaultKey1 = identity1.getDefaultKey();

            Assert.AssertTrue(fixture.id1Key1Name.equals(defaultKey1.getName()));
            Assert.AssertTrue(defaultKey1.getPublicKey().equals(fixture.id1Key1));

            // Add another key.
            identity1.addKey(fixture.id1Key2.buf(), fixture.id1Key2Name);
            Assert.AssertEquals(2, identity1.getKeys_().size());

            // Set the default key using a name.
            try {
                identity1.setDefaultKey(fixture.id1Key2Name);
            } catch (Exception ex_15) {
                Assert.Fail("Unexpected exception: " + ex_15.Message);
            }
            try {
                identity1.getDefaultKey();
            } catch (Exception ex_16) {
                Assert.Fail("Unexpected exception: " + ex_16.Message);
            }
            PibKey defaultKey2 = identity1.getDefaultKey();

            Assert.AssertTrue(fixture.id1Key2Name.equals(defaultKey2.getName()));
            Assert.AssertTrue(defaultKey2.getPublicKey().equals(fixture.id1Key2));

            // Remove a key.
            identity1.removeKey(fixture.id1Key1Name);
            try {
                identity1.getKey(fixture.id1Key1Name);
                Assert.Fail("Did not throw the expected exception");
            } catch (Pib.Error ex_17) {
            } catch (Exception ex_18) {
                Assert.Fail("Did not throw the expected exception");
            }

            Assert.AssertEquals(1, identity1.getKeys_().size());

            // Seting the default key directly again should change the default.
            try {
                identity1.setDefaultKey(fixture.id1Key1.buf(), fixture.id1Key1Name);
            } catch (Exception ex_19) {
                Assert.Fail("Unexpected exception: " + ex_19.Message);
            }
            PibKey defaultKey3 = identity1.getDefaultKey();

            Assert.AssertTrue(fixture.id1Key1Name.equals(defaultKey3.getName()));
            Assert.AssertTrue(defaultKey3.getPublicKey().equals(fixture.id1Key1));
            Assert.AssertEquals(2, identity1.getKeys_().size());

            // Remove all keys.
            identity1.removeKey(fixture.id1Key1Name);
            try {
                identity1.getKey(fixture.id1Key1Name);
                Assert.Fail("Did not throw the expected exception");
            } catch (Pib.Error ex_20) {
            } catch (Exception ex_21) {
                Assert.Fail("Did not throw the expected exception");
            }

            Assert.AssertEquals(1, identity1.getKeys_().size());
            identity1.removeKey(fixture.id1Key2Name);
            try {
                identity1.getKey(fixture.id1Key2Name);
                Assert.Fail("Did not throw the expected exception");
            } catch (Pib.Error ex_22) {
            } catch (Exception ex_23) {
                Assert.Fail("Did not throw the expected exception");
            }

            Assert.AssertEquals(0, identity1.getKeys_().size());
            try {
                identity1.getDefaultKey();
                Assert.Fail("Did not throw the expected exception");
            } catch (Pib.Error ex_24) {
            } catch (Exception ex_25) {
                Assert.Fail("Did not throw the expected exception");
            }
        }
        public void testBasic()
        {
            PibMemory pibImpl = new PibMemory();

            // Start with an empty container.
            PibCertificateContainer container = new PibCertificateContainer(
                fixture.id1Key1Name, pibImpl);

            Assert.AssertEquals(0, container.size());
            Assert.AssertEquals(0, container.getCertificates_().Count);

            // Add a certificate.
            container.add(fixture.id1Key1Cert1);
            Assert.AssertEquals(1, container.size());
            Assert.AssertEquals(1, container.getCertificates_().Count);
            Assert.AssertTrue(container.getCertificates_().Contains(
                                  fixture.id1Key1Cert1.getName()));

            // Add the same certificate again.
            container.add(fixture.id1Key1Cert1);
            Assert.AssertEquals(1, container.size());
            Assert.AssertEquals(1, container.getCertificates_().Count);
            Assert.AssertTrue(container.getCertificates_().Contains(
                                  fixture.id1Key1Cert1.getName()));

            // Add another certificate.
            container.add(fixture.id1Key1Cert2);
            Assert.AssertEquals(2, container.size());
            Assert.AssertEquals(2, container.getCertificates_().Count);
            Assert.AssertTrue(container.getCertificates_().Contains(
                                  fixture.id1Key1Cert1.getName()));
            Assert.AssertTrue(container.getCertificates_().Contains(
                                  fixture.id1Key1Cert2.getName()));

            // Get the certificates.
            try {
                container.get(fixture.id1Key1Cert1.getName());
            } catch (Exception ex) {
                Assert.Fail("Unexpected exception: " + ex.Message);
            }
            try {
                container.get(fixture.id1Key1Cert2.getName());
            } catch (Exception ex_0) {
                Assert.Fail("Unexpected exception: " + ex_0.Message);
            }
            Name id1Key1Cert3Name = new Name(fixture.id1Key1Name);

            id1Key1Cert3Name.append("issuer").appendVersion(3);
            try {
                container.get(id1Key1Cert3Name);
                Assert.Fail("Did not throw the expected exception");
            } catch (Pib.Error ex_1) {
            } catch (Exception ex_2) {
                Assert.Fail("Did not throw the expected exception");
            }

            // Check the certificates.
            CertificateV2 cert1 = container.get(fixture.id1Key1Cert1.getName());
            CertificateV2 cert2 = container.get(fixture.id1Key1Cert2.getName());

            // Use the wire encoding to check equivalence.
            Assert.AssertTrue(cert1.wireEncode().equals(fixture.id1Key1Cert1.wireEncode()));
            Assert.AssertTrue(cert2.wireEncode().equals(fixture.id1Key1Cert2.wireEncode()));

            // Create another container with the same PibImpl. The cache should be empty.
            PibCertificateContainer container2 = new PibCertificateContainer(
                fixture.id1Key1Name, pibImpl);

            Assert.AssertEquals(2, container2.size());
            Assert.AssertEquals(0, container2.getCertificates_().Count);

            // Get a certificate. The cache should be filled.
            try {
                container2.get(fixture.id1Key1Cert1.getName());
            } catch (Exception ex_3) {
                Assert.Fail("Unexpected exception: " + ex_3.Message);
            }
            Assert.AssertEquals(2, container2.size());
            Assert.AssertEquals(1, container2.getCertificates_().Count);

            try {
                container2.get(fixture.id1Key1Cert2.getName());
            } catch (Exception ex_4) {
                Assert.Fail("Unexpected exception: " + ex_4.Message);
            }
            Assert.AssertEquals(2, container2.size());
            Assert.AssertEquals(2, container2.getCertificates_().Count);

            // Remove a certificate.
            container2.remove(fixture.id1Key1Cert1.getName());
            Assert.AssertEquals(1, container2.size());
            Assert.AssertEquals(1, container2.getCertificates_().Count);
            Assert.AssertTrue(!container2.getCertificates_().Contains(
                                  fixture.id1Key1Cert1.getName()));
            Assert.AssertTrue(container2.getCertificates_().Contains(
                                  fixture.id1Key1Cert2.getName()));

            // Remove another certificate.
            container2.remove(fixture.id1Key1Cert2.getName());
            Assert.AssertEquals(0, container2.size());
            Assert.AssertEquals(0, container2.getCertificates_().Count);
            Assert.AssertTrue(!container2.getCertificates_().Contains(
                                  fixture.id1Key1Cert2.getName()));
        }
Пример #12
0
        public void testCertificateOperation()
        {
            PibMemory  pibImpl = new PibMemory();
            PibKeyImpl key11   = new PibKeyImpl(fixture.id1Key1Name,
                                                fixture.id1Key1.buf(), pibImpl);

            try {
                new PibKeyImpl(fixture.id1Key1Name, pibImpl);
            } catch (Exception ex) {
                Assert.Fail("Unexpected exception: " + ex.Message);
            }

            // The key should not have any certificates.
            Assert.AssertEquals(0, key11.getCertificates_().size());

            // Getting a non-existing certificate should throw Pib.Error.
            try {
                key11.getCertificate(fixture.id1Key1Cert1.getName());
                Assert.Fail("Did not throw the expected exception");
            } catch (Pib.Error ex_0) {
            } catch (Exception ex_1) {
                Assert.Fail("Did not throw the expected exception");
            }

            // Getting the non-existing default certificate should throw Pib.Error.
            try {
                key11.getDefaultCertificate();
                Assert.Fail("Did not throw the expected exception");
            } catch (Pib.Error ex_2) {
            } catch (Exception ex_3) {
                Assert.Fail("Did not throw the expected exception");
            }

            // Setting a non-existing certificate as the default should throw Pib.Error.
            try {
                key11.setDefaultCertificate(fixture.id1Key1Cert1.getName());
                Assert.Fail("Did not throw the expected exception");
            } catch (Pib.Error ex_4) {
            } catch (Exception ex_5) {
                Assert.Fail("Did not throw the expected exception");
            }

            // Add a certificate.
            key11.addCertificate(fixture.id1Key1Cert1);
            try {
                key11.getCertificate(fixture.id1Key1Cert1.getName());
            } catch (Exception ex_6) {
                Assert.Fail("Unexpected exception: " + ex_6.Message);
            }

            // The new certificate becomes the default when there was no default.
            try {
                key11.getDefaultCertificate();
            } catch (Exception ex_7) {
                Assert.Fail("Unexpected exception: " + ex_7.Message);
            }
            CertificateV2 defaultCert0 = key11.getDefaultCertificate();

            Assert.AssertTrue(fixture.id1Key1Cert1.getName()
                              .equals(defaultCert0.getName()));
            // Use the wire encoding to check equivalence.
            Assert.AssertTrue(fixture.id1Key1Cert1.wireEncode().equals(
                                  defaultCert0.wireEncode()));

            // Remove the certificate.
            key11.removeCertificate(fixture.id1Key1Cert1.getName());
            try {
                key11.getCertificate(fixture.id1Key1Cert1.getName());
                Assert.Fail("Did not throw the expected exception");
            } catch (Pib.Error ex_8) {
            } catch (Exception ex_9) {
                Assert.Fail("Did not throw the expected exception");
            }

            try {
                key11.getDefaultCertificate();
                Assert.Fail("Did not throw the expected exception");
            } catch (Pib.Error ex_10) {
            } catch (Exception ex_11) {
                Assert.Fail("Did not throw the expected exception");
            }

            // Set the default certificate directly.
            try {
                key11.setDefaultCertificate(fixture.id1Key1Cert1);
            } catch (Exception ex_12) {
                Assert.Fail("Unexpected exception: " + ex_12.Message);
            }
            try {
                key11.getDefaultCertificate();
            } catch (Exception ex_13) {
                Assert.Fail("Unexpected exception: " + ex_13.Message);
            }
            try {
                key11.getCertificate(fixture.id1Key1Cert1.getName());
            } catch (Exception ex_14) {
                Assert.Fail("Unexpected exception: " + ex_14.Message);
            }

            // Check the default cert.
            CertificateV2 defaultCert1 = key11.getDefaultCertificate();

            Assert.AssertTrue(fixture.id1Key1Cert1.getName()
                              .equals(defaultCert1.getName()));
            Assert.AssertTrue(defaultCert1.wireEncode().equals(
                                  fixture.id1Key1Cert1.wireEncode()));

            // Add another certificate.
            key11.addCertificate(fixture.id1Key1Cert2);
            Assert.AssertEquals(2, key11.getCertificates_().size());

            // Set the default certificate using a name.
            try {
                key11.setDefaultCertificate(fixture.id1Key1Cert2.getName());
            } catch (Exception ex_15) {
                Assert.Fail("Unexpected exception: " + ex_15.Message);
            }
            try {
                key11.getDefaultCertificate();
            } catch (Exception ex_16) {
                Assert.Fail("Unexpected exception: " + ex_16.Message);
            }
            CertificateV2 defaultCert2 = key11.getDefaultCertificate();

            Assert.AssertTrue(fixture.id1Key1Cert2.getName()
                              .equals(defaultCert2.getName()));
            Assert.AssertTrue(defaultCert2.wireEncode().equals(
                                  fixture.id1Key1Cert2.wireEncode()));

            // Remove a certificate.
            key11.removeCertificate(fixture.id1Key1Cert1.getName());
            try {
                key11.getCertificate(fixture.id1Key1Cert1.getName());
                Assert.Fail("Did not throw the expected exception");
            } catch (Pib.Error ex_17) {
            } catch (Exception ex_18) {
                Assert.Fail("Did not throw the expected exception");
            }

            Assert.AssertEquals(1, key11.getCertificates_().size());

            // Set the default certificate directly again, which should change the default.
            try {
                key11.setDefaultCertificate(fixture.id1Key1Cert1);
            } catch (Exception ex_19) {
                Assert.Fail("Unexpected exception: " + ex_19.Message);
            }
            CertificateV2 defaultCert3 = key11.getDefaultCertificate();

            Assert.AssertTrue(fixture.id1Key1Cert1.getName()
                              .equals(defaultCert3.getName()));
            Assert.AssertTrue(defaultCert3.wireEncode().equals(
                                  fixture.id1Key1Cert1.wireEncode()));
            Assert.AssertEquals(2, key11.getCertificates_().size());

            // Remove all certificates.
            key11.removeCertificate(fixture.id1Key1Cert1.getName());
            try {
                key11.getCertificate(fixture.id1Key1Cert1.getName());
                Assert.Fail("Did not throw the expected exception");
            } catch (Pib.Error ex_20) {
            } catch (Exception ex_21) {
                Assert.Fail("Did not throw the expected exception");
            }

            Assert.AssertEquals(1, key11.getCertificates_().size());
            key11.removeCertificate(fixture.id1Key1Cert2.getName());
            try {
                key11.getCertificate(fixture.id1Key1Cert2.getName());
                Assert.Fail("Did not throw the expected exception");
            } catch (Pib.Error ex_22) {
            } catch (Exception ex_23) {
                Assert.Fail("Did not throw the expected exception");
            }

            try {
                key11.getDefaultCertificate();
                Assert.Fail("Did not throw the expected exception");
            } catch (Pib.Error ex_24) {
            } catch (Exception ex_25) {
                Assert.Fail("Did not throw the expected exception");
            }
            Assert.AssertEquals(0, key11.getCertificates_().size());
        }
Пример #13
0
        public void testErrors()
        {
            PibMemory pibImpl = new PibMemory();

            try {
                new PibKeyImpl(fixture.id1Key1Name, pibImpl);
                Assert.Fail("Did not throw the expected exception");
            } catch (Pib.Error ex) {
            } catch (Exception ex_0) {
                Assert.Fail("Did not throw the expected exception");
            }

            PibKeyImpl key11 = new PibKeyImpl(fixture.id1Key1Name,
                                              fixture.id1Key1.buf(), pibImpl);

            try {
                new PibKeyImpl(new Name("/wrong"), pibImpl);
                Assert.Fail("Did not throw the expected exception");
            } catch (ArgumentException ex_1) {
            } catch (Exception ex_2) {
                Assert.Fail("Did not throw the expected exception");
            }

            try {
                new PibKeyImpl(new Name("/wrong"), fixture.id1Key1.buf(), pibImpl);
                Assert.Fail("Did not throw the expected exception");
            } catch (ArgumentException ex_3) {
            } catch (Exception ex_4) {
                Assert.Fail("Did not throw the expected exception");
            }

            Blob wrongKey = new Blob("");

            try {
                new PibKeyImpl(fixture.id1Key2Name, wrongKey.buf(), pibImpl);
                Assert.Fail("Did not throw the expected exception");
            } catch (ArgumentException ex_5) {
            } catch (Exception ex_6) {
                Assert.Fail("Did not throw the expected exception");
            }

            key11.addCertificate(fixture.id1Key1Cert1);
            try {
                key11.addCertificate(fixture.id1Key2Cert1);
                Assert.Fail("Did not throw the expected exception");
            } catch (ArgumentException ex_7) {
            } catch (Exception ex_8) {
                Assert.Fail("Did not throw the expected exception");
            }

            try {
                key11.removeCertificate(fixture.id1Key2Cert1.getName());
                Assert.Fail("Did not throw the expected exception");
            } catch (ArgumentException ex_9) {
            } catch (Exception ex_10) {
                Assert.Fail("Did not throw the expected exception");
            }

            try {
                key11.getCertificate(fixture.id1Key2Cert1.getName());
                Assert.Fail("Did not throw the expected exception");
            } catch (ArgumentException ex_11) {
            } catch (Exception ex_12) {
                Assert.Fail("Did not throw the expected exception");
            }

            try {
                key11.setDefaultCertificate(fixture.id1Key2Cert1);
                Assert.Fail("Did not throw the expected exception");
            } catch (ArgumentException ex_13) {
            } catch (Exception ex_14) {
                Assert.Fail("Did not throw the expected exception");
            }

            try {
                key11.setDefaultCertificate(fixture.id1Key2Cert1.getName());
                Assert.Fail("Did not throw the expected exception");
            } catch (ArgumentException ex_15) {
            } catch (Exception ex_16) {
                Assert.Fail("Did not throw the expected exception");
            }
        }