internal static KerberosTransitedEncoding Parse(DERValue value)
        {
            if (!value.CheckSequence())
            {
                throw new InvalidDataException();
            }
            KerberosTransitedEncodingType type = 0;

            byte[] data = null;
            foreach (var next in value.Children)
            {
                if (next.Type != DERTagType.ContextSpecific)
                {
                    throw new InvalidDataException();
                }
                switch (next.Tag)
                {
                case 0:
                    type = (KerberosTransitedEncodingType)next.ReadChildInteger();
                    break;

                case 1:
                    data = next.ReadChildOctetString();
                    break;

                default:
                    throw new InvalidDataException();
                }
            }

            if (data == null)
            {
                throw new InvalidDataException();
            }
            return(new KerberosTransitedEncoding(type, data));
        }
 private KerberosTransitedEncoding(KerberosTransitedEncodingType type, byte[] data)
 {
     TransitedType = type;
     Data          = data;
 }