public static KerbAuthDataTokenRestrictions Parse(AuthorizationDataElement element)
        {
            if (element.ad_type.Value != (int)AuthorizationData_elementType.KERB_AUTH_DATA_TOKEN_RESTRICTIONS)
            {
                throw new Exception();
            }
            var entry = new KERB_AD_RESTRICTION_ENTRY();

            entry.BerDecode(new Asn1DecodingBuffer(element.ad_data.ByteArrayValue));

            LSAP_TOKEN_INFO_INTEGRITY ltii = new LSAP_TOKEN_INFO_INTEGRITY();

            ltii.GetElements(entry.restriction);

            return(new KerbAuthDataTokenRestrictions(
                       (int)entry.restriction_type.Value,
                       (uint)ltii.flags.Value,
                       (uint)ltii.tokenIL.Value,
                       Encoding.UTF8.GetString(ltii.machineID.ByteArrayValue)));
        }
        public static KerbAuthDataTokenRestrictions Parse(AuthorizationDataElement element)
        {
            if (element.ad_type.Value != (int)AuthorizationData_elementType.KERB_AUTH_DATA_TOKEN_RESTRICTIONS)
                throw new Exception();
            var entry = new KERB_AD_RESTRICTION_ENTRY();
            entry.BerDecode(new Asn1DecodingBuffer(element.ad_data.ByteArrayValue));

            LSAP_TOKEN_INFO_INTEGRITY ltii = new LSAP_TOKEN_INFO_INTEGRITY();
            ltii.GetElements(entry.restriction);

            return new KerbAuthDataTokenRestrictions(
                (int)entry.restriction_type.Value,
                (uint)ltii.flags.Value,
                (uint)ltii.tokenIL.Value,
                Encoding.UTF8.GetString(ltii.machineID.ByteArrayValue));
        }