Beispiel #1
0
 /// <summary>
 /// Decode the name constraints and clone them if not null.
 /// </summary>
 private void setNameConstraints(
     byte[] bytes)
 {
     if (bytes == null)
     {
         ncBytes = null;
         nc      = null;
     }
     else
     {
         ncBytes = (byte[])bytes.Clone();
         // validate DER encoding
         //nc = new NameConstraintsExtension(Boolean.FALSE, bytes);
         nc = NameConstraints.GetInstance(Asn1Object.FromByteArray(bytes));
     }
 }
Beispiel #2
0
        /// <summary>
        /// Create NameConstraints extension from an X509Extension
        /// </summary>
        /// <param name="Extension">X509Extension</param>
        /// <remarks>
        /// Sub classses must provide an implementation to decode their values
        /// </remarks>
        public nameConstraints(X509Extension Extension) : base(Extension)
        {
            base.oid         = X509Extensions.NameConstraints;
            base.name        = "NameConstraints";
            base.displayName = "Name Constraints";

            NameConstraints nc = NameConstraints.GetInstance(Extension);
            // Permitted names
            Asn1Sequence perm = Asn1Sequence.GetInstance(nc.PermittedSubtrees);

            foreach (var item in perm)
            {
                permitted.Add(new OSCAGeneralName(GeneralName.GetInstance(item)));
            }

            // Excluded names
            Asn1Sequence exc = Asn1Sequence.GetInstance(nc.ExcludedSubtrees);

            foreach (var item in exc)
            {
                excluded.Add(new OSCAGeneralName(GeneralName.GetInstance(item)));
            }
        }