Пример #1
0
        private static AuthorizationDataElement ParseAdIfRelevant(Asn1Element restriction, AuthorizationDataValueType type)
        {
            switch (type)
            {
            case AuthorizationDataValueType.AD_WIN2K_PAC:
                return(new PacElement(restriction[0].Value));

            case AuthorizationDataValueType.AD_ETYPE_NEGOTIATION:
                return(ParseETypes(restriction.AsEncapsulatedElement()));

            case AuthorizationDataValueType.KERB_AUTH_DATA_TOKEN_RESTRICTIONS:
                return(new RestrictionEntry().Decode(restriction.AsEncapsulatedElement()));

            case AuthorizationDataValueType.KERB_AP_OPTIONS:
                return(new KerbApOptions(restriction[0].AsInt(reverse: true)));

            case AuthorizationDataValueType.KERB_LOCAL:
                return(new KerbLocal(restriction[0].Value));

            case AuthorizationDataValueType.KERB_SERVICE_TARGET:
                return(new KerbServiceName(restriction[0].Value));

            default:
                return(null);
            }
        }
Пример #2
0
        public MechToken Decode(Asn1Element sequence, IEnumerable <MechType> mechTypes)
        {
            var firstMech = mechTypes.FirstOrDefault();

            if (ProcessedAsNegoEx(sequence, firstMech))
            {
                return(this);
            }

            sequence = sequence.AsEncapsulatedElement();

            if (ProcessedAsNtlm(sequence, firstMech))
            {
                return(this);
            }

            ProcessedAsKerberos(sequence, firstMech);

            return(this);
        }