public void TestParseX509AuthorityKeyIdentifierExtension3()
        {
            // Setup
            var authority    = "CN=TestAuthority";
            var keyId        = "32362340932423";
            var serialNumber = new SerialNumber(40);

            // Act
            var extension1 = new X509AuthorityKeyIdentifierExtension(
                authority, serialNumber, keyId, false);

            var buffer = extension1.RawData;

            var extension2 = new X509AuthorityKeyIdentifierExtension(buffer);
            var extension3 = new X509AuthorityKeyIdentifierExtension(extension2, true);

            // Assert

            Assert.Equal(extension1.AuthorityNames, extension3.AuthorityNames);
            Assert.Single(extension3.AuthorityNames);
            Assert.Equal(authority, extension1.AuthorityNames.Single());
            Assert.Equal(extension1.SerialNumber, extension3.SerialNumber);
            Assert.Equal(serialNumber, extension3.SerialNumber);
            Assert.Equal(extension1.KeyId, extension3.KeyId);
            Assert.Equal(keyId, extension3.KeyId);
            Assert.Equal(Oids.AuthorityKeyIdentifier,
                         extension1.Oid.Value);
            Assert.Equal(Oids.AuthorityKeyIdentifier,
                         extension3.Oid.Value);
            Assert.True(extension3.Critical);
        }
        public void TestParseX509AuthorityKeyIdentifierExtension2()
        {
            // Setup
            var authorities = new List <string> {
                "CN=TestAuthority", "CN=test", "CN=ttttttt"
            };
            var keyId        = "32362340932423";
            var serialNumber = new SerialNumber();

            // Act
            var extension1 = new X509AuthorityKeyIdentifierExtension(
                authorities, serialNumber, keyId, false);
            var sm1 = extension1.Format(true);
            var s1  = extension1.Format(false);

            var buffer = extension1.RawData;

            var extension2 = new X509AuthorityKeyIdentifierExtension(buffer, true);
            var sm2        = extension2.Format(true);
            var s2         = extension2.Format(false);

            // Assert

            Assert.Equal(extension1.AuthorityNames, extension2.AuthorityNames);
            Assert.Equal(authorities, extension1.AuthorityNames);
            Assert.Equal(extension1.SerialNumber, extension2.SerialNumber);
            Assert.Equal(serialNumber, extension2.SerialNumber);
            Assert.Equal(extension1.KeyId, extension2.KeyId);
            Assert.Equal(keyId, extension2.KeyId);
            Assert.Equal(Oids.AuthorityKeyIdentifier,
                         extension1.Oid.Value);
            Assert.Equal(Oids.AuthorityKeyIdentifier,
                         extension2.Oid.Value);
            Assert.True(extension2.Critical);
            Assert.Equal(sm1, sm2);
            Assert.Equal(s1, s2);
        }
        public void TestParseX509AuthorityKeyIdentifierExtension1()
        {
            // Setup
            var authority = "CN=TestAuthority";
            var keyId     = "32362340932423";

            var serialNumber = new SerialNumber(4);

            // Act
            var extension1 = new X509AuthorityKeyIdentifierExtension(
                authority, serialNumber, keyId, false);
            var sm1 = extension1.Format(true);
            var s1  = extension1.Format(false);

            var buffer = extension1.RawData;

            var extension2 = new X509AuthorityKeyIdentifierExtension(buffer);
            var sm2        = extension2.Format(true);
            var s2         = extension2.Format(false);

            // Assert

            Assert.Equal(extension1.AuthorityNames, extension2.AuthorityNames);
            Assert.Single(extension2.AuthorityNames);
            Assert.Equal(authority, extension1.AuthorityNames.Single());
            Assert.Equal(extension1.SerialNumber, extension2.SerialNumber);
            Assert.Equal(serialNumber, extension2.SerialNumber);
            Assert.Equal(extension1.KeyId, extension2.KeyId);
            Assert.Equal(keyId, extension2.KeyId);
            Assert.Equal(Oids.AuthorityKeyIdentifier,
                         extension1.Oid.Value);
            Assert.Equal(Oids.AuthorityKeyIdentifier,
                         extension2.Oid.Value);
            Assert.Equal(sm1, sm2);
            Assert.Equal(s1, s2);
        }