예제 #1
0
 /// <summary>
 /// Note: criticality is only added if true, as per RFC 2251 sec 5.1 part
 /// (4): If a value of a type is its default value, it MUST be
 /// absent.
 /// </summary>
 public RfcControl(RfcLdapOID controlType, Asn1Boolean criticality, Asn1OctetString controlValue) : base(3)
 {
     add(controlType);
     if (criticality.booleanValue() == true)
     {
         add(criticality);
     }
     if (controlValue != null)
     {
         add(controlValue);
     }
 }
예제 #2
0
        /// <summary>
        ///     Creates a MatchingRuleAssertion.
        ///     The value null may be passed for an optional value that is not used.
        /// </summary>
        /// <param name="matchValue">
        ///     The assertion value.
        /// </param>
        /// <param name="matchingRule">
        ///     Optional matching rule.
        /// </param>
        /// <param name="type">
        ///     Optional attribute description.
        /// </param>
        /// <param name="dnAttributes">
        ///     Asn1Boolean value. (default false)
        /// </param>
        public RfcMatchingRuleAssertion(RfcMatchingRuleId matchingRule, RfcAttributeDescription type,
                                        RfcAssertionValue matchValue, Asn1Boolean dnAttributes) : base(4)
        {
            if (matchingRule != null)
            {
                add(new Asn1Tagged(new Asn1Identifier(Asn1Identifier.CONTEXT, false, 1), matchingRule, false));
            }

            if (type != null)
            {
                add(new Asn1Tagged(new Asn1Identifier(Asn1Identifier.CONTEXT, false, 2), type, false));
            }

            add(new Asn1Tagged(new Asn1Identifier(Asn1Identifier.CONTEXT, false, 3), matchValue, false));

            // if dnAttributes if false, that is the default value and we must not
            // encode it. (See RFC 2251 5.1 number 4)
            if (dnAttributes != null && dnAttributes.booleanValue())
            {
                add(new Asn1Tagged(new Asn1Identifier(Asn1Identifier.CONTEXT, false, 4), dnAttributes, false));
            }
        }