Example #1
0
        public void Create_WhenDistinguishedNameNull_Throws()
        {
            var exception = Assert.Throws <ArgumentNullException>(
                () => GeneralName.Create(distinguishedName: null));

            Assert.Equal("distinguishedName", exception.ParamName);
        }
Example #2
0
        public void Read_WithDistinguishedName_ReturnsGeneralName()
        {
            var bytes = new BcGeneralName(BcGeneralName.DirectoryName, new X509Name("CN=test")).GetDerEncoded();

            var generalName = GeneralName.Read(bytes);

            Assert.NotNull(generalName);
            Assert.Equal("CN=test", generalName.DirectoryName.Name);
        }
Example #3
0
        public void Read_WithUnsupportedChoice_Throws()
        {
            var bytes = new BcGeneralName(BcGeneralName.RegisteredID, new DerObjectIdentifier("1.2.3")).GetDerEncoded();

            var exception = Assert.Throws <SignatureException>(
                () => GeneralName.Read(bytes));

            Assert.Equal("The ASN.1 data is unsupported.", exception.Message);
        }
Example #4
0
        public void Create_WithDistinguishedName_ReturnsGeneralName()
        {
            var distinguishedName = new X500DistinguishedName(
                "CN=leaf.test,OU=Test Organizational Unit Name,O=Test Organization Name,L=Redmond,S=WA,C=US",
                X500DistinguishedNameFlags.UseCommas);

            var generalName = GeneralName.Create(distinguishedName);

            Assert.Same(distinguishedName, generalName.DirectoryName);
        }
Example #5
0
        public static IssuerSerial Create(X509Certificate2 certificate)
        {
            if (certificate == null)
            {
                throw new ArgumentNullException(nameof(certificate));
            }

            var generalNames = new [] { GeneralName.Create(certificate.IssuerName) };
            var serialNumber = certificate.GetSerialNumber();

            // Convert from little endian to big endian.
            Array.Reverse(serialNumber);

            return(new IssuerSerial(generalNames, serialNumber));
        }
Example #6
0
        private static IReadOnlyList <GeneralName> ReadGeneralNames(DerSequenceReader reader)
        {
            var sequenceReader = reader.ReadSequence();
            var generalNames   = new List <GeneralName>(capacity: 1);

            var generalName = GeneralName.Read(sequenceReader);

            if (generalName != null)
            {
                generalNames.Add(generalName);
            }

            if (sequenceReader.HasData)
            {
                throw new SignatureException(Strings.InvalidAsn1);
            }

            return(generalNames.AsReadOnly());
        }
Example #7
0
 public void Read_WithInvalidAsn1_Throws()
 {
     Assert.Throws <CryptographicException>(
         () => GeneralName.Read(new byte[] { 0x30, 0x07 }));
 }