Beispiel #1
0
        private byte[] GetUniqueName(X509ExtensionCollection extensions, byte[] serial = null)
        {
            // We prefer Subject Key Identifier as the unique name
            // as it will provide faster lookups
            X509Extension ext = extensions ["2.5.29.14"];

            if (ext == null)
            {
                return(null);
            }

            SubjectKeyIdentifierExtension ski = new SubjectKeyIdentifierExtension(ext);

            if (serial == null)
            {
                return(ski.Identifier);
            }
            else
            {
                byte[] uniqueWithSerial = new byte[ski.Identifier.Length + serial.Length];
                System.Buffer.BlockCopy(ski.Identifier, 0, uniqueWithSerial, 0, ski.Identifier.Length);
                System.Buffer.BlockCopy(serial, 0, uniqueWithSerial, ski.Identifier.Length, serial.Length);
                return(uniqueWithSerial);
            }
        }
Beispiel #2
0
        public void EmptyIdentifier()
        {
            SubjectKeyIdentifierExtension ext = new SubjectKeyIdentifierExtension();
            SubjectKeyIdentifierExtension ski = new SubjectKeyIdentifierExtension(ext);

            Empty(ski);
        }
Beispiel #3
0
        static byte [] GetSubjectKeyIdentifier(X509Extension ext)
        {
            if (ext == null)
            {
                return(null);
            }

            SubjectKeyIdentifierExtension ski = new SubjectKeyIdentifierExtension(ext);

            return(ski.Identifier);
        }
Beispiel #4
0
        public X509ExtensionsList SetSubjectKeyIdentifier(byte[] id)
        {
            if (id == null)
            {
                throw new ArgumentNullException(nameof(id));
            }
            var subjectKeyIdentifier = new SubjectKeyIdentifierExtension(id);

            Add(subjectKeyIdentifier);
            return(this);
        }
        private byte[] GetUniqueName(X509ExtensionCollection extensions)
        {
            X509Extension x509Extension = extensions["2.5.29.14"];

            if (x509Extension == null)
            {
                return(null);
            }
            SubjectKeyIdentifierExtension subjectKeyIdentifierExtension = new SubjectKeyIdentifierExtension(x509Extension);

            return(subjectKeyIdentifierExtension.Identifier);
        }
Beispiel #6
0
        public void Constructor_Empty()
        {
            SubjectKeyIdentifierExtension ski = new SubjectKeyIdentifierExtension();

            ski.Identifier = new byte[] {
                0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00
            };
            Empty(ski);
        }
Beispiel #7
0
 private void Empty(SubjectKeyIdentifierExtension ski)
 {
     Assert.IsFalse(ski.Critical, "Critical");
     Assert.AreEqual("2.5.29.14", ski.Oid, "Oid");
     Assert.IsNotNull(ski.Name, "Name");
     Assert.IsFalse(ski.Name == ski.Oid, "Name!=Oid");
     Assert.AreEqual(new byte[] {
         0x00, 0x00, 0x00, 0x00, 0x00,
         0x00, 0x00, 0x00, 0x00, 0x00,
         0x00, 0x00, 0x00, 0x00, 0x00,
         0x00, 0x00, 0x00, 0x00, 0x00
     }, ski.Identifier, "Identifier");
 }
Beispiel #8
0
        public void Constructor_ASN1()
        {
            SubjectKeyIdentifierExtension ext = new SubjectKeyIdentifierExtension();

            ext.Identifier = new byte[] {
                0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00
            };
            SubjectKeyIdentifierExtension ski = new SubjectKeyIdentifierExtension(ext.ASN1);

            Empty(ski);
        }
Beispiel #9
0
        private byte[] GetUniqueName(X509ExtensionCollection extensions)
        {
            // We prefer Subject Key Identifier as the unique name
            // as it will provide faster lookups
            X509Extension ext = extensions ["2.5.29.14"];

            if (ext == null)
            {
                return(null);
            }

            SubjectKeyIdentifierExtension ski = new SubjectKeyIdentifierExtension(ext);

            return(ski.Identifier);
        }
Beispiel #10
0
        public void AuthorityKeyIdentifier_Critical()
        {
            SubjectKeyIdentifierExtension ski = new SubjectKeyIdentifierExtension();

            ski.Critical   = true;
            ski.Identifier = new byte[] {
                0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00
            };
            Assert.AreEqual("30-20-06-03-55-1D-0E-01-01-FF-04-16-04-14-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00", BitConverter.ToString(ski.GetBytes()), "GetBytes");

            SubjectKeyIdentifierExtension ski2 = new SubjectKeyIdentifierExtension(ski.ASN1);

            Assert.IsTrue(ski2.Critical, "Critical");
            Assert.AreEqual(new byte[] {
                0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00
            }, ski2.Identifier, "Identifier");
        }