コード例 #1
0
        public void testValidityPeriodChecking()
        {
            Certificate certificate = new Certificate();
            certificate.setName(new Name(
                    "/ndn/site1/ksk-1416425377094/KEY/0123/%FD%00%00%01I%C9%8B"));
            certificate.getMetaInfo().setFreshnessPeriod(3600 * 1000.0d);
            certificate.setContent(new Blob(PUBLIC_KEY, false));

            certificate.setSignature(new Sha256WithRsaSignature());
            Sha256WithRsaSignature signatureInfo = (Sha256WithRsaSignature) certificate
                    .getSignature();

            signatureInfo.getKeyLocator().setType(net.named_data.jndn.KeyLocatorType.KEYNAME);
            signatureInfo.getKeyLocator().setKeyName(
                    new Name("/ndn/site1/ksk-2516425377094/KEY"));

            double notBefore = net.named_data.jndn.tests.unit_tests.UnitTestsCommon.fromIsoString("20150819T120000");
            double notAfter = net.named_data.jndn.tests.unit_tests.UnitTestsCommon.fromIsoString("20150823T120000");
            signatureInfo.getValidityPeriod().setPeriod(notBefore, notAfter);

            signatureInfo.setSignature(new Blob(SIG_VALUE, false));

            Assert.AssertEquals(false,
                    certificate
                            .isInValidityPeriod(net.named_data.jndn.tests.unit_tests.UnitTestsCommon.fromIsoString("20150819T115959")));
            Assert.AssertEquals(true,
                    certificate
                            .isInValidityPeriod(net.named_data.jndn.tests.unit_tests.UnitTestsCommon.fromIsoString("20150819T120000")));
            Assert.AssertEquals(true,
                    certificate
                            .isInValidityPeriod(net.named_data.jndn.tests.unit_tests.UnitTestsCommon.fromIsoString("20150823T120000")));
            Assert.AssertEquals(false,
                    certificate
                            .isInValidityPeriod(net.named_data.jndn.tests.unit_tests.UnitTestsCommon.fromIsoString("20150823T120001")));
            Assert.AssertEquals(false,
                    certificate
                            .isInValidityPeriod(net.named_data.jndn.tests.unit_tests.UnitTestsCommon.fromIsoString("20150921T130000")));
        }
コード例 #2
0
 public static bool isIdentityCertificate(Certificate certificate)
 {
     return isCorrectName(certificate.getName());
 }
コード例 #3
0
        public void testExtension()
        {
            // Now add an extension.
            String name = "/hello/kitty";
            int trustClass = 0;
            int trustLevel = 300;

            net.named_data.jndn.encoding.der.DerNode.DerSequence  extValueRoot = new net.named_data.jndn.encoding.der.DerNode.DerSequence ();
            net.named_data.jndn.encoding.der.DerNode.DerOctetString  extValueName = new net.named_data.jndn.encoding.der.DerNode.DerOctetString (new Blob(name).buf());
            net.named_data.jndn.encoding.der.DerNode.DerInteger  extValueTrustClass = new net.named_data.jndn.encoding.der.DerNode.DerInteger (trustClass);
            net.named_data.jndn.encoding.der.DerNode.DerInteger  extValueTrustLevel = new net.named_data.jndn.encoding.der.DerNode.DerInteger (trustLevel);

            extValueRoot.addChild(extValueName);
            extValueRoot.addChild(extValueTrustClass);
            extValueRoot.addChild(extValueTrustLevel);

            Blob extValueData = extValueRoot.encode();

            String oidString = "1.3.6.1.5.32.1";
            bool isCritical = true;
            CertificateExtension certExtension = new CertificateExtension(
                    oidString, isCritical, extValueData);
            toyCert.encode();
            Certificate cert = new Certificate(toyCert);
            cert.addExtension(certExtension);

            cert.encode();
            Blob certData = cert.getContent();
            Data plainData = new Data();
            plainData.setContent(certData);
            // The constructor Certificate(Data) calls decode().
            Certificate decodedCert = new Certificate(plainData);
            Assert.AssertEquals("Wrong number of certificate extensions after decoding",
                    1, decodedCert.getExtensionList().Count);

            CertificateExtension decodedExtension = (CertificateExtension) decodedCert
                            .getExtensionList()[0];
            Assert.AssertEquals("Certificate extension has the wrong OID after decoding",
                    oidString, "" + decodedExtension.getOid());
            Assert.AssertEquals(
                    "Certificate extension has the wrong isCritical value after decoding",
                    isCritical, decodedExtension.getIsCritical());

            // Decode and check the extension value.
            DerNode parsedExtValue = net.named_data.jndn.encoding.der.DerNode.parse(decodedExtension.getValue()
                    .buf());
            IList decodedExtValueRoot = parsedExtValue.getChildren();
            Assert.AssertEquals(
                    "Wrong number of certificate extension value items after decoding",
                    3, decodedExtValueRoot.Count);

            net.named_data.jndn.encoding.der.DerNode.DerOctetString  decodedName = (net.named_data.jndn.encoding.der.DerNode.DerOctetString ) decodedExtValueRoot[0];
            net.named_data.jndn.encoding.der.DerNode.DerInteger  decodedTrustClass = (net.named_data.jndn.encoding.der.DerNode.DerInteger ) decodedExtValueRoot[1];
            net.named_data.jndn.encoding.der.DerNode.DerInteger  decodedTrustLevel = (net.named_data.jndn.encoding.der.DerNode.DerInteger ) decodedExtValueRoot[2];
            Assert.AssertEquals("Wrong extension value name after decoding", name, ""
                    + decodedName.toVal());
            Assert.AssertEquals("Wrong extension value trust class after decoding",
                    trustClass, (int) (Int32) decodedTrustClass.toVal());
            Assert.AssertEquals("Wrong extension value trust level after decoding",
                    trustLevel, (int) (Int32) decodedTrustLevel.toVal());
        }
コード例 #4
0
        public void testEncodeDecode()
        {
            toyCert.encode();
            Blob cert_data = toyCert.getContent();
            Data plainData = new Data();
            plainData.setName(toyCert.getName());
            plainData.setContent(cert_data);
            // The constructor Certificate(Data) calls decode().
            Certificate decoded_cert = new Certificate(plainData);

            Assert.AssertEquals("Certificate representation changed after encoding", ""
                    + toyCert, "" + decoded_cert);
        }
コード例 #5
0
        public void testDecode()
        {
            Data data = new Data(new Name("/tmp"));
            data.setContent(new Blob(REAL_CERT, false));
            // The constructor Certificate(Data) calls decode().
            Certificate realCert = new Certificate(data);

            Assert.AssertEquals("Certificate representation changed after decoding",
                    REAL_CERT_STRING, "" + realCert);
        }
コード例 #6
0
        public void setUp()
        {
            toyCertNotBefore = 1388100174000L;
            toyCertNotAfter = 1388100174000L;
            Certificate cert = new Certificate();
            cert.setNotBefore(toyCertNotBefore);
            cert.setNotAfter(toyCertNotAfter);
            cert.setName(new Name(
                    "/test/KEY/ksk-1457560485494/ID-CERT/%FD%00%00%01S%80H%E1%F3"));
            cert.addSubjectDescription(new CertificateSubjectDescription(TEST_OID,
                    "TEST NAME"));
            cert.setPublicKeyInfo(new PublicKey(new Blob(PUBLIC_KEY, false)));

            toyCert = cert;
        }
コード例 #7
0
 public static bool isIdentityCertificate(Certificate certificate)
 {
     return(isCorrectName(certificate.getName()));
 }