/// <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); }
/* Encoders for ASN.1 simple type Contents */ /// <summary> BER Encode an Asn1Boolean directly into the specified output stream.</summary> public virtual void encode(Asn1Boolean b, Stream out_Renamed) { /* Encode the id */ encode(b.getIdentifier(), out_Renamed); /* Encode the length */ out_Renamed.WriteByte(0x01); /* Encode the boolean content*/ out_Renamed.WriteByte((byte)(b.booleanValue() ? (sbyte)SupportClass.Identity(0xff) : (sbyte)0x00)); }
/// <summary> BER Encode an Asn1Boolean directly into the specified output stream.</summary> public virtual void encode(Asn1Boolean b, System.IO.Stream out_Renamed) { /* Encode the id */ encode(b.getIdentifier(), out_Renamed); /* Encode the length */ out_Renamed.WriteByte((System.Byte) 0x01); /* Encode the boolean content*/ out_Renamed.WriteByte((byte) (b.booleanValue()?(sbyte) SupportClass.Identity(0xff):(sbyte) 0x00)); return ; }
/// <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)); return ; }