public void CertificateAuthority_Critical()
        {
            BasicConstraintsExtension bce = new BasicConstraintsExtension();

            bce.Critical             = true;
            bce.CertificateAuthority = true;
            bce.PathLenConstraint    = 0;
            Assert.AreEqual("30-12-06-03-55-1D-13-01-01-FF-04-08-30-06-01-01-FF-02-01-00", BitConverter.ToString(bce.GetBytes()), "GetBytes");

            BasicConstraintsExtension bce2 = new BasicConstraintsExtension(bce.ASN1);

            Assert.IsTrue(bce2.Critical, "Critical");
            Assert.IsTrue(bce2.CertificateAuthority, "CertificateAuthority");
            Assert.AreEqual(0, bce2.PathLenConstraint, "PathLenConstraint");
        }
        public void CertificateAuthority_NoPathLengthConstraint()
        {
            BasicConstraintsExtension bce = new BasicConstraintsExtension();

            bce.CertificateAuthority = true;
            bce.PathLenConstraint    = BasicConstraintsExtension.NoPathLengthConstraint;
            Assert.AreEqual("30-0C-06-03-55-1D-13-04-05-30-03-01-01-FF", BitConverter.ToString(bce.GetBytes()), "GetBytes");

            BasicConstraintsExtension bce2 = new BasicConstraintsExtension(bce.ASN1);

            Assert.IsFalse(bce2.Critical, "Critical");
            Assert.IsTrue(bce2.CertificateAuthority, "CertificateAuthority");
            Assert.AreEqual(BasicConstraintsExtension.NoPathLengthConstraint, bce2.PathLenConstraint, "PathLenConstraint");
        }
        public void NotCertificateAuthority()
        {
            BasicConstraintsExtension bce = new BasicConstraintsExtension();

            bce.CertificateAuthority = false;
            // CertificateAuthority isn't encoded (default value is false)
            bce.PathLenConstraint = Int32.MaxValue;
            // PathLenConstraint is ignored (per RFC3280)
            Assert.AreEqual("30-09-06-03-55-1D-13-04-02-30-00", BitConverter.ToString(bce.GetBytes()), "GetBytes");

            BasicConstraintsExtension bce2 = new BasicConstraintsExtension(bce.ASN1);

            Assert.IsFalse(bce2.Critical, "Critical");
            Assert.IsFalse(bce2.CertificateAuthority, "CertificateAuthority");
            Assert.AreEqual(BasicConstraintsExtension.NoPathLengthConstraint, bce2.PathLenConstraint, "PathLenConstraint");
        }