public RfcExtendedResponse(Asn1Decoder dec, System.IO.Stream in_Renamed, int len)
            : base(dec, in_Renamed, len)
        {
            // decode optional tagged elements
            if (size() > 3)
            {
                for (int i = 3; i < size(); i++)
                {
                    Asn1Tagged obj = (Asn1Tagged) get_Renamed(i);
                    Asn1Identifier id = obj.getIdentifier();
                    switch (id.Tag)
                    {

                        case RfcLdapResult.REFERRAL:
                            sbyte[] content = ((Asn1OctetString) obj.taggedValue()).byteValue();
                            System.IO.MemoryStream bais = new System.IO.MemoryStream(SupportClass.ToByteArray(content));
                            set_Renamed(i, new RfcReferral(dec, bais, content.Length));
                            referralIndex = i;
                            break;

                        case RESPONSE_NAME:
                            set_Renamed(i, new RfcLdapOID(((Asn1OctetString) obj.taggedValue()).byteValue()));
                            responseNameIndex = i;
                            break;

                        case RESPONSE:
                            set_Renamed(i, obj.taggedValue());
                            responseIndex = i;
                            break;
                        }
                }
            }
        }
示例#2
0
        public RfcExtendedResponse(Asn1Decoder dec, System.IO.Stream in_Renamed, int len) : base(dec, in_Renamed, len)
        {
            // decode optional tagged elements
            if (size() > 3)
            {
                for (int i = 3; i < size(); i++)
                {
                    Asn1Tagged     obj = (Asn1Tagged)get_Renamed(i);
                    Asn1Identifier id  = obj.getIdentifier();
                    switch (id.Tag)
                    {
                    case RfcLdapResult.REFERRAL:
                        sbyte[] content             = ((Asn1OctetString)obj.taggedValue()).byteValue();
                        System.IO.MemoryStream bais = new System.IO.MemoryStream(SupportClass.ToByteArray(content));
                        set_Renamed(i, new RfcReferral(dec, bais, content.Length));
                        referralIndex = i;
                        break;

                    case RESPONSE_NAME:
                        set_Renamed(i, new RfcLdapOID(((Asn1OctetString)obj.taggedValue()).byteValue()));
                        responseNameIndex = i;
                        break;

                    case RESPONSE:
                        set_Renamed(i, obj.taggedValue());
                        responseIndex = i;
                        break;
                    }
                }
            }
        }
示例#3
0
 public Asn1Tagged(Asn1Decoder dec, Stream in_Renamed, int len, Asn1Identifier identifier) : base(identifier)
 {
     // If we are decoding an implicit tag, there is no way to know at this
     // low level what the base type really is. We can place the content
     // into an Asn1OctetString type and pass it back to the application who
     // will be able to create the appropriate ASN.1 type for this tag.
     content = new Asn1OctetString(dec, in_Renamed, len);
 }
示例#4
0
 public RfcControls(Asn1Decoder dec, System.IO.Stream in_Renamed, int len) : base(dec, in_Renamed, len)
 {
     // Convert each SEQUENCE element to a Control
     for (int i = 0; i < size(); i++)
     {
         RfcControl tempControl = new RfcControl((Asn1Sequence)get_Renamed(i));
         set_Renamed(i, tempControl);
     }
 }
示例#5
0
        public RfcSearchResultEntry(Asn1Decoder dec, Stream in_Renamed, int len) : base(dec, in_Renamed, len)
        {
            // Decode objectName
            //      set(0, new RfcLdapDN(((Asn1OctetString)get(0)).stringValue()));

            // Create PartitalAttributeList. This does not need to be decoded, only
            // typecast.
            //      set(1, new PartitalAttributeList());
        }
示例#6
0
		public RfcControls(Asn1Decoder dec, System.IO.Stream in_Renamed, int len):base(dec, in_Renamed, len)
		{
			
			// Convert each SEQUENCE element to a Control
			for (int i = 0; i < size(); i++)
			{
				RfcControl tempControl = new RfcControl((Asn1Sequence) get_Renamed(i));
				set_Renamed(i, tempControl);
			}
		}
示例#7
0
        protected internal void decodeStructured(Asn1Decoder dec, Stream in_Renamed, int len)
        {
            var componentLen = new int[1]; // collects length of component

            while (len > 0)
            {
                add(dec.decode(in_Renamed, componentLen));
                len -= componentLen[0];
            }
        }
示例#8
0
		public RfcSearchResultEntry(Asn1Decoder dec, System.IO.Stream in_Renamed, int len):base(dec, in_Renamed, len)
		{
			
			// Decode objectName
			//      set(0, new RfcLdapDN(((Asn1OctetString)get(0)).stringValue()));
			
			// Create PartitalAttributeList. This does not need to be decoded, only
			// typecast.
			//      set(1, new PartitalAttributeList());
			return ;
		}
 public RfcBindResponse(Asn1Decoder dec, System.IO.Stream in_Renamed, int len) : base(dec, in_Renamed, len)
 {
     // Decode optional referral from Asn1OctetString to Referral.
     if (size() > 3)
     {
         Asn1Tagged     obj = (Asn1Tagged)get_Renamed(3);
         Asn1Identifier id  = obj.getIdentifier();
         if (id.Tag == RfcLdapResult.REFERRAL)
         {
             sbyte[] content             = ((Asn1OctetString)obj.taggedValue()).byteValue();
             System.IO.MemoryStream bais = new System.IO.MemoryStream(SupportClass.ToByteArray(content));
             set_Renamed(3, new RfcReferral(dec, bais, content.Length));
         }
     }
 }
示例#10
0
 public RfcBindResponse(Asn1Decoder dec, System.IO.Stream in_Renamed, int len)
     : base(dec, in_Renamed, len)
 {
     // Decode optional referral from Asn1OctetString to Referral.
     if (size() > 3)
     {
         Asn1Tagged obj = (Asn1Tagged) get_Renamed(3);
         Asn1Identifier id = obj.getIdentifier();
         if (id.Tag == RfcLdapResult.REFERRAL)
         {
             sbyte[] content = ((Asn1OctetString) obj.taggedValue()).byteValue();
             System.IO.MemoryStream bais = new System.IO.MemoryStream(SupportClass.ToByteArray(content));
             set_Renamed(3, new RfcReferral(dec, bais, content.Length));
         }
     }
 }
示例#11
0
        public RfcIntermediateResponse(Asn1Decoder dec, Stream in_Renamed, int len)
            : base(dec, in_Renamed, len)
            //		throws IOException
        {
            //		super(dec, in, len);

            int i = 0;

            m_responseNameIndex = m_responseValueIndex = 0;

            // decode optional tagged elements. The parent class constructor will
            // have decoded these elements as ASN1Tagged objects with the value
            // stored as an ASN1OctectString object.

            if (size() >= 3) //the incorrectly encoded case, LDAPResult contains
            {
                i = 3;       //at least 3 components
            }
            else
            {
                i = 0; //correctly encoded case, can have zero components
            }
            for (; i < size(); i++)
            {
                Asn1Tagged     obj = (Asn1Tagged)get_Renamed(i);
                Asn1Identifier id  = obj.getIdentifier();
                switch (id.Tag)
                {
                case TAG_RESPONSE_NAME:
                    set_Renamed(i, new RfcLdapOID(
                                    ((Asn1OctetString)obj.taggedValue()).byteValue()));
                    m_responseNameIndex = i;
                    break;

                case TAG_RESPONSE:
                    set_Renamed(i, obj.taggedValue());
                    m_responseValueIndex = i;
                    break;
                }
            }
        }
示例#12
0
 public RfcSearchResultDone(Asn1Decoder dec, Stream in_Renamed, int len)
     : base(dec, in_Renamed, len)
 {
 }
示例#13
0
 public Asn1Enumerated(Asn1Decoder dec, System.IO.Stream in_Renamed, int len) : base(ID, (Int64)dec.decodeNumeric(in_Renamed, len))
 {
     return;
 }
示例#14
0
 public Asn1Enumerated(Asn1Decoder dec, Stream in_Renamed, int len)
     : base(ID, (long)dec.decodeNumeric(in_Renamed, len))
 {
 }
示例#15
0
 public Asn1Boolean(Asn1Decoder dec, System.IO.Stream in_Renamed, int len) : base(ID)
 {
     content = ((Boolean)dec.decodeBoolean(in_Renamed, len));
     return;
 }
示例#16
0
		public Asn1Tagged(Asn1Decoder dec, System.IO.Stream in_Renamed, int len, Asn1Identifier identifier):base(identifier)
		{
			
			// If we are decoding an implicit tag, there is no way to know at this
			// low level what the base type really is. We can place the content
			// into an Asn1OctetString type and pass it back to the application who
			// will be able to create the appropriate ASN.1 type for this tag.
			content = new Asn1OctetString(dec, in_Renamed, len);
			return ;
		}
		public Asn1Integer(Asn1Decoder dec, System.IO.Stream in_Renamed, int len):base(ID, (System.Int64) dec.decodeNumeric(in_Renamed, len))
		{
			return ;
		}
示例#18
0
		public Asn1OctetString(Asn1Decoder dec, System.IO.Stream in_Renamed, int len):base(ID)
		{
			content = (len > 0)?(sbyte[]) dec.decodeOctetString(in_Renamed, len):new sbyte[0];
			return ;
		}
 public RfcCompareResponse(Asn1Decoder dec, System.IO.Stream in_Renamed, int len)
     : base(dec, in_Renamed, len)
 {
 }
示例#20
0
 public Asn1Sequence(Asn1Decoder dec, Stream in_Renamed, int len)
     : base(ID)
 {
     decodeStructured(dec, in_Renamed, len);
 }
示例#21
0
		public RfcLdapString(Asn1Decoder dec, System.IO.Stream in_Renamed, int len):base(dec, in_Renamed, len)
		{
		}
示例#22
0
 public Asn1Boolean(Asn1Decoder dec, Stream in_Renamed, int len) : base(ID)
 {
     content = (bool)dec.decodeBoolean(in_Renamed, len);
 }
示例#23
0
        protected internal void decodeStructured(Asn1Decoder dec, System.IO.Stream in_Renamed, int len)
        {
            int[] componentLen = new int[1]; // collects length of component

            while (len > 0)
            {
                add(dec.decode(in_Renamed, componentLen));
                len -= componentLen[0];
            }
            return ;
        }
示例#24
0
 public RfcReferral(Asn1Decoder dec, System.IO.Stream in_Renamed, int len) : base(dec, in_Renamed, len)
 {
     //convert from Asn1OctetString to RfcLdapURL here (then look at
     // LdapResponse.getReferrals())
 }
示例#25
0
        public RfcLdapMessage(Asn1Decoder dec, System.IO.Stream in_Renamed, int len)
            : base(dec, in_Renamed, len)
        {
            sbyte[] content;
            System.IO.MemoryStream bais;

            // Decode implicitly tagged protocol operation from an Asn1Tagged type
            // to its appropriate application type.
            Asn1Tagged protocolOp = (Asn1Tagged) get_Renamed(1);
            Asn1Identifier protocolOpId = protocolOp.getIdentifier();
            content = ((Asn1OctetString) protocolOp.taggedValue()).byteValue();
            bais = new System.IO.MemoryStream(SupportClass.ToByteArray(content));

            switch (protocolOpId.Tag)
            {

                case LdapMessage.SEARCH_RESPONSE:
                    set_Renamed(1, new RfcSearchResultEntry(dec, bais, content.Length));
                    break;

                case LdapMessage.SEARCH_RESULT:
                    set_Renamed(1, new RfcSearchResultDone(dec, bais, content.Length));
                    break;

                case LdapMessage.SEARCH_RESULT_REFERENCE:
                    set_Renamed(1, new RfcSearchResultReference(dec, bais, content.Length));
                    break;

                case LdapMessage.ADD_RESPONSE:
                    set_Renamed(1, new RfcAddResponse(dec, bais, content.Length));
                    break;

                case LdapMessage.BIND_RESPONSE:
                    set_Renamed(1, new RfcBindResponse(dec, bais, content.Length));
                    break;

                case LdapMessage.COMPARE_RESPONSE:
                    set_Renamed(1, new RfcCompareResponse(dec, bais, content.Length));
                    break;

                case LdapMessage.DEL_RESPONSE:
                    set_Renamed(1, new RfcDelResponse(dec, bais, content.Length));
                    break;

                case LdapMessage.EXTENDED_RESPONSE:
                    set_Renamed(1, new RfcExtendedResponse(dec, bais, content.Length));
                    break;

                case LdapMessage.INTERMEDIATE_RESPONSE:
                    set_Renamed(1, new RfcIntermediateResponse(dec, bais, content.Length));
                    break;

                case LdapMessage.MODIFY_RESPONSE:
                    set_Renamed(1, new RfcModifyResponse(dec, bais, content.Length));
                    break;

                case LdapMessage.MODIFY_RDN_RESPONSE:
                    set_Renamed(1, new RfcModifyDNResponse(dec, bais, content.Length));
                    break;

                default:
                    throw new System.SystemException("RfcLdapMessage: Invalid tag: " + protocolOpId.Tag);

            }

            // decode optional implicitly tagged controls from Asn1Tagged type to
            // to RFC 2251 types.
            if (size() > 2)
            {
                Asn1Tagged controls = (Asn1Tagged) get_Renamed(2);
                //   Asn1Identifier controlsId = protocolOp.getIdentifier();
                // we could check to make sure we have controls here....

                content = ((Asn1OctetString) controls.taggedValue()).byteValue();
                bais = new System.IO.MemoryStream(SupportClass.ToByteArray(content));
                set_Renamed(2, new RfcControls(dec, bais, content.Length));
            }
            return ;
        }
示例#26
0
		public RfcAttributeDescription(Asn1Decoder dec, System.IO.Stream in_Renamed, int len):base(dec, in_Renamed, len)
		{
		}
示例#27
0
		public RfcControl(Asn1Decoder dec, System.IO.Stream in_Renamed, int len):base(dec, in_Renamed, len)
		{
		}
示例#28
0
 public Asn1Sequence(Asn1Decoder dec, System.IO.Stream in_Renamed, int len)
     : base(ID)
 {
     decodeStructured(dec, in_Renamed, len);
     return ;
 }
示例#29
0
		public RfcModifyDNResponse(Asn1Decoder dec, System.IO.Stream in_Renamed, int len):base(dec, in_Renamed, len)
		{
		}
 public RfcAttributeDescription(Asn1Decoder dec, Stream in_Renamed, int len)
     : base(dec, in_Renamed, len)
 {
 }
 public RfcSearchResultDone(Asn1Decoder dec, System.IO.Stream in_Renamed, int len)
     : base(dec, in_Renamed, len)
 {
     return ;
 }
示例#32
0
 public RfcSearchResultReference(Asn1Decoder dec, System.IO.Stream in_Renamed, int len) : base(dec, in_Renamed, len)
 {
     return;
 }
 public Asn1OctetString(Asn1Decoder dec, System.IO.Stream in_Renamed, int len) : base(ID)
 {
     content = (len > 0)?(sbyte[])dec.decodeOctetString(in_Renamed, len):new sbyte[0];
     return;
 }
示例#34
0
 public RfcModifyResponse(Asn1Decoder dec, System.IO.Stream in_Renamed, int len) : base(dec, in_Renamed, len)
 {
 }
示例#35
0
 public Asn1Boolean(Asn1Decoder dec, System.IO.Stream in_Renamed, int len)
     : base(ID)
 {
     content = ((System.Boolean) dec.decodeBoolean(in_Renamed, len));
     return ;
 }
示例#36
0
 public Asn1Set(Asn1Decoder dec, System.IO.Stream in_Renamed, int len) : base(ID)
 {
     decodeStructured(dec, in_Renamed, len);
     return;
 }
示例#37
0
 public Asn1OctetString(Asn1Decoder dec, Stream in_Renamed, int len) : base(ID)
 {
     content = len > 0 ? (sbyte[])dec.decodeOctetString(in_Renamed, len) : new sbyte[0];
 }
示例#38
0
 public RfcLdapString(Asn1Decoder dec, Stream in_Renamed, int len)
     : base(dec, in_Renamed, len)
 {
 }
示例#39
0
 public RfcAddResponse(Asn1Decoder dec, Stream in_Renamed, int len) : base(dec, in_Renamed, len)
 {
 }
示例#40
0
 public RfcControl(Asn1Decoder dec, System.IO.Stream in_Renamed, int len) : base(dec, in_Renamed, len)
 {
 }
示例#41
0
        public RfcLdapMessage(Asn1Decoder dec, Stream in_Renamed, int len) : base(dec, in_Renamed, len)
        {
            sbyte[]      content;
            MemoryStream bais;

            // Decode implicitly tagged protocol operation from an Asn1Tagged type
            // to its appropriate application type.
            Asn1Tagged     protocolOp   = (Asn1Tagged)get_Renamed(1);
            Asn1Identifier protocolOpId = protocolOp.getIdentifier();

            content = ((Asn1OctetString)protocolOp.taggedValue()).byteValue();
            bais    = new MemoryStream(SupportClass.ToByteArray(content));

            switch (protocolOpId.Tag)
            {
            case LdapMessage.SEARCH_RESPONSE:
                set_Renamed(1, new RfcSearchResultEntry(dec, bais, content.Length));
                break;

            case LdapMessage.SEARCH_RESULT:
                set_Renamed(1, new RfcSearchResultDone(dec, bais, content.Length));
                break;

            case LdapMessage.SEARCH_RESULT_REFERENCE:
                set_Renamed(1, new RfcSearchResultReference(dec, bais, content.Length));
                break;

            case LdapMessage.ADD_RESPONSE:
                set_Renamed(1, new RfcAddResponse(dec, bais, content.Length));
                break;

            case LdapMessage.BIND_RESPONSE:
                set_Renamed(1, new RfcBindResponse(dec, bais, content.Length));
                break;

            case LdapMessage.COMPARE_RESPONSE:
                set_Renamed(1, new RfcCompareResponse(dec, bais, content.Length));
                break;

            case LdapMessage.DEL_RESPONSE:
                set_Renamed(1, new RfcDelResponse(dec, bais, content.Length));
                break;

            case LdapMessage.EXTENDED_RESPONSE:
                set_Renamed(1, new RfcExtendedResponse(dec, bais, content.Length));
                break;

            case LdapMessage.INTERMEDIATE_RESPONSE:
                set_Renamed(1, new RfcIntermediateResponse(dec, bais, content.Length));
                break;

            case LdapMessage.MODIFY_RESPONSE:
                set_Renamed(1, new RfcModifyResponse(dec, bais, content.Length));
                break;

            case LdapMessage.MODIFY_RDN_RESPONSE:
                set_Renamed(1, new RfcModifyDNResponse(dec, bais, content.Length));
                break;

            default:
                throw new Exception("RfcLdapMessage: Invalid tag: " + protocolOpId.Tag);
            }

            // decode optional implicitly tagged controls from Asn1Tagged type to
            // to RFC 2251 types.
            if (size() > 2)
            {
                Asn1Tagged controls = (Asn1Tagged)get_Renamed(2);
                //   Asn1Identifier controlsId = protocolOp.getIdentifier();
                // we could check to make sure we have controls here....

                content = ((Asn1OctetString)controls.taggedValue()).byteValue();
                bais    = new MemoryStream(SupportClass.ToByteArray(content));
                set_Renamed(2, new RfcControls(dec, bais, content.Length));
            }
        }
示例#42
0
		public RfcReferral(Asn1Decoder dec, System.IO.Stream in_Renamed, int len):base(dec, in_Renamed, len)
		{
			
			//convert from Asn1OctetString to RfcLdapURL here (then look at
			// LdapResponse.getReferrals())
		}
    public RfcIntermediateResponse(Asn1Decoder dec, System.IO.Stream in_Renamed, int len) : base(dec, in_Renamed, len)
      //		throws IOException
    {
      //		super(dec, in, len);
        
      int i=0;		
      m_responseNameIndex = m_responseValueIndex = 0;

      // decode optional tagged elements. The parent class constructor will
      // have decoded these elements as ASN1Tagged objects with the value
      // stored as an ASN1OctectString object.

      if(size() >= 3) //the incorrectly encoded case, LDAPResult contains 
	i = 3;        //at least 3 components
      else
	i = 0; //correctly encoded case, can have zero components

      for(; i<size(); i++) 
      {		
	Asn1Tagged obj = (Asn1Tagged)get_Renamed(i);
	Asn1Identifier id = obj.getIdentifier();
	switch(id.Tag) 
	{
	case TAG_RESPONSE_NAME:
	  set_Renamed(i, new RfcLdapOID(
					((Asn1OctetString)obj.taggedValue()).byteValue()));
	  m_responseNameIndex = i;
	  break;

	case TAG_RESPONSE:
	  set_Renamed(i, obj.taggedValue());
	  m_responseValueIndex = i;
	  break;
	}
      }
    }