§
    ńb¬  ć                   óā    d dl Z d dlZd dlZd dlmZ dZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZd Zd Zd Zd Zd Zd Zd Zd Z  G d de¦  «        Z! G d de¦  «        Z"dS ) é    N)ŚTestCaseó   Jó   kó   `ó   aó   ó   £ó   có   dó    ó   ó   1ó   "ó   ó   ó   ó   
ó   0c                 ón    || t          d¦  «        z   S | t          t          |¦  «        ¦  «        z   |z   S )z Encode an ASN.1 BER element. Nr   )Śencode_lengthŚlen)Śber_typeŚdatas     ś6/usr/lib/python3/dist-packages/samba/tests/ldap_raw.pyŚencode_elementr   E   s8    ą|Ų-ØŃ*Ō*Ń*Š*Ųm„CØ”I¤IŃ.Ō.Ń.°Ń5Š5ó    c                 ó&   | dk    rd|                       dd¦  «        z   S | dk    rd|                       dd¦  «        z   S | dk    rd	|                       d
d¦  «        z   S | dk    rd|                       dd¦  «        z   S |                       dd¦  «        S )z- Encode the length of an ASN.1 BER element.  i’’’ ó   é   Śbigé’’  ó   é   é’   ó   é   é   ó   é   )Śto_bytes)Ślengths    r   r   r   L   s¢    š ŅŠŲØØEŃ2Ō2Ń2Š2ŲŲØØEŃ2Ō2Ń2Š2Ų}}ŲØØEŃ2Ō2Ń2Š2Ų}}ŲØØEŃ2Ō2Ń2Š2Ų??1eŃ$Ō$Š$r   c                 ó,    t          t          | ¦  «        S )z Encode an octet string )r   ŚOCTET_STRING)Śstrings    r   Śencode_stringr/   Z   s    å,ØŃ/Ō/Š/r   c                 óZ    | rt          t          d¦  «        S t          t          d¦  «        S )z Encode a boolean value ó   ’r   )r   ŚBOOLEAN)Śbooleans    r   Śencode_booleanr4   _   s*    ąš 0Żg wŃ/Ō/Š/Ż' 7Ń+Ō+Š+r   c                 ó    |                       ¦   «         }|dz  dz   }t          t          |                      |d¦  «        ¦  «        S )z Encode an integer value é   r)   r    )Ś
bit_lengthr   ŚINTEGERr*   )ŚintegerŚbit_lenŚbyte_lens      r   Śencode_integerr<   f   sA    ą× Ņ Ń"Ō"GŲ1 Ń!HŻ' 7×#3Ņ#3°HøeŃ#DŌ#DŃEŌEŠEr   c                 óT    t          t          |                      dd¦  «        ¦  «        S )z Encode an enumerated value r)   r    )r   Ś
ENUMERATEDr*   )Śenums    r   Śencode_enumeratedr@   m   s     å* d§m¢m°A°uŃ&=Ō&=Ń>Ō>Š>r   c                 ó,    t          t          | ¦  «        S )z Encode a sequence )r   ŚSEQUENCE)Śsequences    r   Śencode_sequencerD   r   s    å( HŃ-Ō-Š-r   c                 ól   | dS t          | ¦  «        dk     rdS | dd         }t                               | dd         d¬¦  «        }|dz  rGd|dz  z   }t                               | d|         d¬¦  «        }| |||z            }| ||z   d         }n|}| dd|z            }| d|z   d         }||||fS )	z!
    decode an ASN.1 element
    Nr&   r   r)   r    ©Ś	byteorderé   i’’’)r   ŚintŚ
from_bytes)r   r   ŚencŚl_endr+   ŚelementŚrests          r   Śdecode_elementrO   w   sā    š |Ųtå
4yy1}}ŲtąAaCyHŻ
..a cØe.Ń
4Ō
4CŲ
Tzš !ŲS5[Ń!Ż  Q u W¤øŃ?Ō?ŲuU V^Š+Ō,ŲEFNOOŌ$ąŲqV|Ō$ŲAJKKŌ ąfg tŠ,Š,r   c                   ó     e Zd ZdZ fdZ fdZd Zd Zd Zdd	Z	d
 Z
d Zd Zd Zd Zd Zd Zd Zd Zd Zd Z xZS )ŚRawLdapTestzČ
    A raw Ldap Test case.
    The ldap connections are made over https on port 636

    Uses the following environment variables:
        SERVER
        USERNAME
        PASSWORD
        DNSNAME
    c                 óŗ   t          t          | ¦  «                             ¦   «          t          j                             d¦  «        | _        d| _        d | _        t          j                             d¦  «        | _	        t          j                             d¦  «        | _
        t          j                             d¦  «        | _        |                      ¦   «          d S )NŚSERVERi|  ŚUSERNAMEŚPASSWORDŚDNSNAME)ŚsuperrQ   ŚsetUpŚsambaŚtestsŚenv_get_var_valueŚhostŚportŚsocketŚuserŚpasswordŚdns_nameŚconnect©ŚselfŚ	__class__s    r   rX   zRawLdapTest.setUp   s   ų Żk4Ń Ō ×&Ņ&Ń(Ō(Š(åK×1Ņ1°(Ń;Ō;	Ų	ŲŻK×1Ņ1°*Ń=Ō=	Ż×5Ņ5°jŃAŌAŻ×5Ņ5°iŃ@Ō@Ųr   c                 ó~    |                       ¦   «          t          t          | ¦  «                             ¦   «          d S ©N)Ś
disconnectrW   rQ   ŚtearDownrc   s    r   ri   zRawLdapTest.tearDown§   s5   ų ŲŃŌŠŻk4Ń Ō ×)Ņ)Ń+Ō+Š+Š+Š+r   c                 óX    | j         dS | j                              ¦   «          d| _         dS ©z; Disconnect from and clean up the connection to the server N©r^   Śclose©rd   s    r   rh   zRawLdapTest.disconnect«   ó.    ą;ŠŲFŲ×ŅŃŌŠŲr   c                 óņ   t          j        ¦   «         }d|_        t           j        |_        d}	 t          j        t
          j        t
          j        ¦  «        }|                     d¦  «         | 	                    | j
        | j        f¦  «         |                     || j
        ¬¦  «        | _        dS # t
          j        $ r6 |                     ¦   «          | j        | j                             ¦   «           w xY w)z2 Establish an ldaps connection to the test server FNé
   )Śserver_hostname)ŚsslŚcreate_default_contextŚcheck_hostnameŚ	CERT_NONEŚverify_moder^   ŚAF_INETŚSOCK_STREAMŚ
settimeoutrb   r\   r]   Śwrap_socketŚerrorrm   )rd   ŚcontextŚsocks      r   rb   zRawLdapTest.connect²   sŚ    õ Ō,Ń.Ō.Ų!&ŌŻ!mŌąš		Ż=„¤µŌ1CŃDŌDDŲOOBŃŌŠŲLL$) T¤YŠ/Ń0Ō0Š0Ų!×-Ņ-ØdĄDÄIŠ-ŃNŌNDKKKųŻ|š 	š 	š 	ŲJJLLLŲ{Š&Ų×!Ņ!Ń#Ō#Š#Ųš		ųųųs   ÆB B1 Ā1AC6c                 ó    	 | j                              |¦  «         dS # t           j        $ r |                      ¦   «           w xY w©z  Send the request to the server N©r^   Śsendallr|   rh   ©rd   Śreqs     r   ŚsendzRawLdapTest.sendĘ   óS    š	ŲK×Ņ Ń$Ō$Š$Š$Š$ųŻ|š 	š 	š 	ŲOOŃŌŠŲš	ųųųó	    %Ar!   Nc                 ó¦   d}	 || j                              |¦  «         | j                              |d¦  «        }| j                              d¦  «         t          |¦  «        dk    r|                      ¦   «          dS nR# t           j        $ r | j                              d¦  «         Y n't           j        $ r |                      ¦   «           w xY w|S ©z+ receive an array of bytes from the server Nr   rq   ©r^   rz   Śrecvr   rh   Śtimeoutr|   ©rd   Śnum_recvr   r   s       r   r   zRawLdapTest.recvĪ   óé    ąš	ŲŠ"Ų×&Ņ& wŃ/Ō/Š/Ų;×#Ņ# HØaŃ0Ō0DŲK×"Ņ" 2Ń&Ō&Š&Ż4yyA~~ŲŃ!Ō!Š!Ųtš ųõ ~š 	'š 	'š 	'š K×"Ņ" 2Ń&Ō&Š&Š&Š&Ż|š 	š 	š 	ŲOOŃŌŠŲš	ųųųš ó   A8A? Į?)CĀ*$Cc                 óž   | j                              d¦  «        }| j                             dd¦  «                             d¦  «        }d|z   dz   |z   }| j                             d¦  «        }t          d¦  «        }|t          |¦  «        z  }|t          t          |¦  «        z  }t          t          |¦  «        }t          d¦  «        }t          ||z   ¦  «        }|                      |¦  «         |                      ¦   «         }	|                      |	¦  «         t          |	¦  «        \  }
}}}|                      t                                ¦   «         |
                     ¦   «         ¦  «         |                      |dk    ¦  «         |                      dt'          |¦  «        ¦  «         t          |¦  «        \  }
}}}|                      t(                               ¦   «         |
                     ¦   «         ¦  «         t*                               |d	¬
¦  «        }|                      d|¦  «         |                      t'          |¦  «        d¦  «         t          |¦  «        \  }
}}}|                      t0                               ¦   «         |
                     ¦   «         ¦  «         |                      dt'          |¦  «        ¦  «         t          |¦  «        \  }
}}}|                      t2                               ¦   «         |
                     ¦   «         ¦  «         |                      t4                               ¦   «         |                     ¦   «         ¦  «         |                      t'          |¦  «        d¦  «         dS )z+
            Perform a simple bind
        ŚUTF8ś.z,dc=s   cn=s   ,cn=users,dc=r#   r)   r   r    rF   N)r_   Śencodera   Śreplacer`   r<   r/   r   ŚSIMPLE_AUTHŚBINDrD   r   r   ŚassertIsNotNonerO   ŚassertEqualrB   ŚhexŚ
assertTruer   r8   rI   rJ   ŚassertGreaterŚBIND_RESr>   ŚSUCCESS)rd   r_   ŚouŚdnr`   ŚbindŚbind_opŚmsg_noŚpacketr   r   r+   rM   rN   s                 r   r”   zRawLdapTest.bindć   sŌ   š
 y×Ņ Ń'Ō'Ų]×"Ņ" 3ØŃ/Ō/×6Ņ6°vŃ>Ō>Ųd]Š-Ń-°Ń2ą=×'Ņ'ØŃ/Ō/õ aŃ Ō ŲbŃ!Ō!Ń!Ų{ØHŃ5Ō5Ń5å „ tŃ,Ō,å Ń"Ō"Ż  Ø'Ń!1Ń2Ō2ą		&ŃŌŠŲyy{{Ų×ŅTŃ"Ō"Š"õ -;ø4Ń,@Ō,@Ń)67 DŲ×ŅØÆŖ©¬Ń8Ō8Š8Ų 
Ń#Ō#Š#Ų×ŅC IIŃ&Ō&Š&õ -;ø7Ń,CŌ,CŃ)67 DŲ×ŅØÆŖ©¬Ń7Ō7Š7Ż °5Ń9Ō9Ų×ŅFŃ#Ō#Š#Ų×Ņ3t99 aŃ(Ō(Š(õ -;ø4Ń,@Ō,@Ń)67 DŲ×ŅØÆŖ©¬Ń8Ō8Š8Ų×ŅC IIŃ&Ō&Š&õ -;ø7Ń,CŌ,CŃ)67 DŲ×ŅŃ)Ō)Ø8Æ<Ŗ<©>¬>Ń:Ō:Š:Ų×ŅØÆŖ©¬Ń6Ō6Š6Ų×Ņ3t99 aŃ(Ō(Š(Š(Š(r   c                 óÜ   d}t          |¦  «        \  }}}}|                      t                               ¦   «         |                     ¦   «         ¦  «         |                      d|¦  «         |                      d                     ¦   «         |                     ¦   «         ¦  «         |                      dt	          |¦  «        ¦  «         d}t          |¦  «        \  }}}}|                      t                               ¦   «         |                     ¦   «         ¦  «         |                      d|¦  «         |                      d                     ¦   «         |                     ¦   «         ¦  «         |                      dt	          |¦  «        ¦  «         d}t          |¦  «        \  }}}}|                      t                               ¦   «         |                     ¦   «         ¦  «         |                      d|¦  «         |                      d                     ¦   «         |                     ¦   «         ¦  «         |                      d                     ¦   «         |                     ¦   «         ¦  «         d	}t          |¦  «        \  }}}}|                      t
                               ¦   «         |                     ¦   «         ¦  «         |                      d
|¦  «         |                      d                     ¦   «         |                     ¦   «         ¦  «         |                      d                     ¦   «         |                     ¦   «         ¦  «         d}t          |¦  «        \  }}}}|                      t
                               ¦   «         |                     ¦   «         ¦  «         |                      d
|¦  «         |                      d                     ¦   «         |                     ¦   «         ¦  «         |                      d                     ¦   «         |                     ¦   «         ¦  «         d}t          |¦  «        \  }}}}|                      t
                               ¦   «         |                     ¦   «         ¦  «         |                      d
|¦  «         |                      d                     ¦   «         |                     ¦   «         ¦  «         |                      d                     ¦   «         |                     ¦   «         ¦  «         d}t          |¦  «        \  }}}}|                      t
                               ¦   «         |                     ¦   «         ¦  «         |                      d
|¦  «         |                      d                     ¦   «         |                     ¦   «         ¦  «         |                      d                     ¦   «         |                     ¦   «         ¦  «         dS )z% Tests for the decode_element method s   ’r)   r1   r   s    r   s   ’ s    s   Źž r&   s   Źžs   Źž s    Źž s       Źž N)rO   r   r2   r   r   r-   )rd   r   r   r+   rM   rN   s         r   Śtest_decode_elementzRawLdapTest.test_decode_element  s   š Ż,:ø4Ń,@Ō,@Ń)67 DŲ×ŅØÆŖ©¬Ń7Ō7Š7Ų×ŅFŃ#Ō#Š#Ų×ŅØÆŖ©¬Ń6Ō6Š6Ų×ŅC IIŃ&Ō&Š&š Ż,:ø4Ń,@Ō,@Ń)67 DŲ×ŅØÆŖ©¬Ń7Ō7Š7Ų×ŅFŃ#Ō#Š#Ų×ŅØÆŖ©¬Ń6Ō6Š6Ų×ŅC IIŃ&Ō&Š&š 'Ż,:ø4Ń,@Ō,@Ń)67 DŲ×ŅØÆŖ©¬Ń7Ō7Š7Ų×ŅFŃ#Ō#Š#Ų×ŅØÆŖ©¬Ń6Ō6Š6Ų×ŅŃ*Ō*ØDÆHŖH©J¬JŃ7Ō7Š7š +Ż,:ø4Ń,@Ō,@Ń)67 DŲ×Ņ×)Ņ)Ń+Ō+ØXÆ\Ŗ\©^¬^Ń<Ō<Š<Ų×ŅFŃ#Ō#Š#Ų×ŅŃ*Ō*ØGÆKŖK©M¬MŃ:Ō:Š:Ų×ŅŃ*Ō*ØDÆHŖH©J¬JŃ7Ō7Š7š /Ż,:ø4Ń,@Ō,@Ń)67 DŲ×Ņ×)Ņ)Ń+Ō+ØXÆ\Ŗ\©^¬^Ń<Ō<Š<Ų×ŅFŃ#Ō#Š#Ų×ŅŃ*Ō*ØGÆKŖK©M¬MŃ:Ō:Š:Ų×ŅŃ*Ō*ØDÆHŖH©J¬JŃ7Ō7Š7š 3Ż,:ø4Ń,@Ō,@Ń)67 DŲ×Ņ×)Ņ)Ń+Ō+ØXÆ\Ŗ\©^¬^Ń<Ō<Š<Ų×ŅFŃ#Ō#Š#Ų×ŅŃ*Ō*ØGÆKŖK©M¬MŃ:Ō:Š:Ų×ŅŃ*Ō*ØDÆHŖH©J¬JŃ7Ō7Š7š
 ?Ż,:ø4Ń,@Ō,@Ń)67 DŲ×Ņ×)Ņ)Ń+Ō+ØXÆ\Ŗ\©^¬^Ń<Ō<Š<Ų×ŅFŃ#Ō#Š#Ų×ŅŃ*Ō*ØGÆKŖK©M¬MŃ:Ō:Š:Ų×ŅŃ*Ō*ØDÆHŖH©J¬JŃ7Ō7Š7Š7Š7r   c                 ó~   |                       ¦   «          t          d¦  «        }|t          d¦  «        z  }|t          d¦  «        z  }|t          d¦  «        z  }|t          d¦  «        z  }|t	          d¦  «        z  }t          ddz  ¦  «        }t          ddz  ¦  «        }t          t          ||z   ¦  «        }t          d¦  «        }t          t          ||z   |z   ¦  «        }t          d¦  «        }t          ||z   ¦  «        }|  	                    d	t          |¦  «        ¦  «         |                      |¦  «         |                      ¦   «         }	|                      |	¦  «         t          |	¦  «        \  }
}}}|  	                    t                               ¦   «         |
                     ¦   «         ¦  «         |                      |dk    ¦  «         |  	                    dt          |¦  «        ¦  «         t          |¦  «        \  }
}}}|  	                    t$                               ¦   «         |
                     ¦   «         ¦  «         t&                               |d
¬¦  «        }|  	                    d|¦  «         |                      t          |¦  «        d¦  «         t          |¦  «        \  }
}}}|  	                    t,                               ¦   «         |
                     ¦   «         ¦  «         |  	                    dt          |¦  «        ¦  «         t          |¦  «        \  }
}}}|  	                    t.                               ¦   «         |
                     ¦   «         ¦  «         |  	                    dt          |¦  «        ¦  «         |                      t          |¦  «        d¦  «         t          |¦  «        \  }
}}}|  	                    t                               ¦   «         |
                     ¦   «         ¦  «         |  	                    dt          |¦  «        ¦  «         t          |¦  «        \  }
}}}|  	                    t                               ¦   «         |
                     ¦   «         ¦  «         |                      t          |¦  «        d¦  «         t          |¦  «        \  }
}}}|  	                    t.                               ¦   «         |
                     ¦   «         ¦  «         |                      t          |¦  «        d¦  «         |  	                    d|¦  «         t          |¦  «        \  }
}}}|  	                    t0                               ¦   «         |
                     ¦   «         ¦  «         |                      t          |¦  «        d¦  «         |  	                    dt          |¦  «        ¦  «         dS )zŹ
        Check that an LDAP search request equal to the maximum size is accepted
        This test is done on a authenticated connection so that the maximum
        non search request is 16MiB.
        Nr   Fó   xięó ó   yéėó r&   é č r    rF   ó   configurationNamingContext)r”   r/   r@   r<   r4   r   ŚEQUALSrD   ŚSEARCHr   r   r   r   r   rO   rB   r   r   r8   rI   rJ   r   Ś
SEARCH_RESr-   ŚSET©rd   ŚheaderŚxŚyŚequalsŚtrailerŚsearchr£   r¤   r   r   r+   rM   rN   s                 r   Ś)test_search_equals_maximum_permitted_sizez5RawLdapTest.test_search_equals_maximum_permitted_sizeT  s·   š 			õ tŃ$Ō$ŲÕ# AŃ&Ō&Ń&ŲÕ# AŃ&Ō&Ń&Ų. Ń#Ō#Ń#Ų. Ń#Ō#Ń#Ų. Ń'Ō'Ń'õ $ -Ń(Ō(Ż$ -Ń(Ō(Ż„ØØA©Ń.Ō.Ż! $Ń'Ō'Ż„Ø°©ø'Ń(AŃBŌBå Ń"Ō"Ż  Ø&”Ń1Ō1š 	×Ņ„ V”¤Ń-Ō-Š-ą		&ŃŌŠŲyy{{Ų×ŅTŃ"Ō"Š"õ -;ø4Ń,@Ō,@Ń)67 DŲ×ŅØÆŖ©¬Ń8Ō8Š8Ų 
Ń#Ō#Š#Ų×ŅC IIŃ&Ō&Š&õ -;ø7Ń,CŌ,CŃ)67 DŲ×ŅØÆŖ©¬Ń7Ō7Š7Ż °5Ń9Ō9Ų×ŅFŃ#Ō#Š#Ų×Ņ3t99 aŃ(Ō(Š(õ -;ø4Ń,@Ō,@Ń)67 DŲ×ŅŃ)Ō)Ø8Æ<Ŗ<©>¬>Ń:Ō:Š:Ų×ŅC IIŃ&Ō&Š&õ -;ø7Ń,CŌ,CŃ)67 DŲ×Ņ×)Ņ)Ń+Ō+ØXÆ\Ŗ\©^¬^Ń<Ō<Š<Ų×ŅC LLŃ)Ō)Š)Ų×Ņ3t99 aŃ(Ō(Š(õ -;ø4Ń,@Ō,@Ń)67 DŲ×ŅØÆŖ©¬Ń8Ō8Š8Ų×ŅC IIŃ&Ō&Š&õ -;ø7Ń,CŌ,CŃ)67 DŲ×ŅØÆŖ©¬Ń8Ō8Š8ą×Ņ3t99 aŃ(Ō(Š(õ -;ø7Ń,CŌ,CŃ)67 DŲ×Ņ×)Ņ)Ń+Ō+ØXÆ\Ŗ\©^¬^Ń<Ō<Š<Ų×Ņ3t99 aŃ(Ō(Š(Ų×ŅŠ6øŃ@Ō@Š@õ -;ø4Ń,@Ō,@Ń)67 DŲ×Ņ H§L¢L”N¤NŃ3Ō3Š3Ų×Ņ3w<<ØŃ+Ō+Š+Ų×ŅC IIŃ&Ō&Š&Š&Š&r   c                 óŠ   |                       ¦   «          t          d¦  «        }|t          d¦  «        z  }|t          d¦  «        z  }|t          d¦  «        z  }|t          d¦  «        z  }|t	          d¦  «        z  }t          ddz  ¦  «        }t          ddz  ¦  «        }t          t          ||z   ¦  «        }t          d¦  «        }t          t          ||z   |z   ¦  «        }t          d¦  «        }t          ||z   ¦  «        }|  	                    d	t          |¦  «        ¦  «         |                      |¦  «         |                      ¦   «         }	|                      |	¦  «         dS )
z×
        Test that a search query longer than the maximum permitted
        size is rejected.
        This test is done on a authenticated connection so that the maximum
        non search request is 16MiB.
        Nr   FrØ   rŖ   r©   iēó r&   éč )r”   r/   r@   r<   r4   r   r­   rD   r®   r   r   r   r   ŚassertIsNone©
rd   r²   r³   r“   rµ   r¶   r·   r£   r¤   r   s
             r   Ś*test_search_exceeds_maximum_permitted_sizez6RawLdapTest.test_search_exceeds_maximum_permitted_size®  sO   š 			õ tŃ$Ō$ŲÕ# AŃ&Ō&Ń&ŲÕ# AŃ&Ō&Ń&Ų. Ń#Ō#Ń#Ų. Ń#Ō#Ń#Ų. Ń'Ō'Ń'õ $ -Ń(Ō(Ż$ -Ń(Ō(Ż„ØØA©Ń.Ō.Ż! $Ń'Ō'Ż„Ø°©ø'Ń(AŃBŌBå Ń"Ō"Ż  Ø&”Ń1Ō1š 	×Ņ„ V”¤Ń-Ō-Š-ą		&ŃŌŠŲyy{{š 	×Ņ$ŃŌŠŠŠr   c                 ó$   t          d¦  «        }|t          d¦  «        z  }|t          t          d¦  «        z  }t          t          |¦  «        }t          d¦  «        }t          ||z   ¦  «        }|                      |¦  «         |                      ¦   «         }|                      |¦  «         t          |¦  «        \  }}}}	|  
                    t                               ¦   «         |                     ¦   «         ¦  «         |                      |dk    ¦  «         |  
                    dt          |	¦  «        ¦  «         t          |¦  «        \  }}}}	|  
                    t                               ¦   «         |                     ¦   «         ¦  «         t                                |d¬¦  «        }|  
                    d|¦  «         |                      t          |	¦  «        d¦  «         t          |	¦  «        \  }}}}	|  
                    t&                               ¦   «         |                     ¦   «         ¦  «         |  
                    dt          |	¦  «        ¦  «         t          |¦  «        \  }}}}	|  
                    t(                               ¦   «         |                     ¦   «         ¦  «         |  
                    t*                               ¦   «         |                     ¦   «         ¦  «         |                      t          |	¦  «        d¦  «         dS )z2
            Test a simple anonymous bind
        r#   r   r)   r   r    rF   N)r<   r/   r   r   r   rD   r   r   r   rO   r   rB   r   r   r   r8   rI   rJ   r   r   r>   r   ©
rd   r”   r¢   r£   r¤   r   r   r+   rM   rN   s
             r   Śtest_simple_anonymous_bindz&RawLdapTest.test_simple_anonymous_bindŲ  so   õ aŃ Ō ŲcŃ"Ō"Ń"Ų{ØCŃ0Ō0Ń0å „ tŃ,Ō,å Ń"Ō"Ż  Ø'Ń!1Ń2Ō2ą		&ŃŌŠŲyy{{Ų×ŅTŃ"Ō"Š"õ -;ø4Ń,@Ō,@Ń)67 DŲ×ŅØÆŖ©¬Ń8Ō8Š8Ų 
Ń#Ō#Š#Ų×ŅC IIŃ&Ō&Š&õ -;ø7Ń,CŌ,CŃ)67 DŲ×ŅØÆŖ©¬Ń7Ō7Š7Ż °5Ń9Ō9Ų×ŅFŃ#Ō#Š#Ų×Ņ3t99 aŃ(Ō(Š(õ -;ø4Ń,@Ō,@Ń)67 DŲ×ŅØÆŖ©¬Ń8Ō8Š8Ų×ŅC IIŃ&Ō&Š&õ -;ø7Ń,CŌ,CŃ)67 DŲ×ŅŃ)Ō)Ø8Æ<Ŗ<©>¬>Ń:Ō:Š:Ų×ŅØÆŖ©¬Ń6Ō6Š6Ų×Ņ3t99 aŃ(Ō(Š(Š(Š(r   c                 óp   t          d¦  «        }|t          ddz  ¦  «        z  }|t          t          d¦  «        z  }t          t          |¦  «        }t          d¦  «        }t          ||z   ¦  «        }|                      dt          |¦  «        ¦  «         |                      |¦  «         |  	                    ¦   «         }|  
                    |¦  «         t          |¦  «        \  }}}}	|                      t                               ¦   «         |                     ¦   «         ¦  «         |                      |dk    ¦  «         |                      dt          |	¦  «        ¦  «         t          |¦  «        \  }}}}	|                      t                               ¦   «         |                     ¦   «         ¦  «         t                                |d¬	¦  «        }|                      d|¦  «         |                      t          |	¦  «        d¦  «         t          |	¦  «        \  }}}}	|                      t&                               ¦   «         |                     ¦   «         ¦  «         |                      dt          |	¦  «        ¦  «         t          |¦  «        \  }}}}	|                      t(                               ¦   «         |                     ¦   «         ¦  «         |                      t*                               ¦   «         |                     ¦   «         ¦  «         |                      t          |	¦  «        d¦  «         d
S )zē
            Test a simple bind, with a large invalid
            user name. As the resulting packet is equal
            to the maximum unauthenticated packet size we should see
            an INVALID_CREDENTIALS response
        r#   ó    iéē r   r)   r«   r   r    rF   N)r<   r/   r   r   r   rD   r   r   r   r   r   rO   rB   r   r   r8   rI   rJ   r   r   r>   ŚINVALID_CREDENTIALSræ   s
             r   Śtest_simple_bind_at_limitz%RawLdapTest.test_simple_bind_at_limit  s   õ aŃ Ō Ųd VmŃ,Ō,Ń,Ų{ØCŃ0Ō0Ń0å „ tŃ,Ō,å Ń"Ō"Ż  Ø'Ń!1Ń2Ō2š 	×Ņ„ V”¤Ń-Ō-Š-ą		&ŃŌŠŲyy{{Ų×ŅTŃ"Ō"Š"õ -;ø4Ń,@Ō,@Ń)67 DŲ×ŅØÆŖ©¬Ń8Ō8Š8Ų 
Ń#Ō#Š#Ų×ŅC IIŃ&Ō&Š&õ -;ø7Ń,CŌ,CŃ)67 DŲ×ŅØÆŖ©¬Ń7Ō7Š7Ż °5Ń9Ō9Ų×ŅFŃ#Ō#Š#Ų×Ņ3t99 aŃ(Ō(Š(õ -;ø4Ń,@Ō,@Ń)67 DŲ×ŅØÆŖ©¬Ń8Ō8Š8Ų×ŅC IIŃ&Ō&Š&õ -;ø7Ń,CŌ,CŃ)67 DŲ×ŅŃ)Ō)Ø8Æ<Ŗ<©>¬>Ń:Ō:Š:Ų×ŅÕ,×0Ņ0Ń2Ō2°G·K²K±M“MŃBŌBŠBŲ×Ņ3t99 aŃ(Ō(Š(Š(Š(r   c                 ó¬   t          d¦  «        }|t          ddz  ¦  «        z  }|t          t          d¦  «        z  }t          t          |¦  «        }t          d¦  «        }t          ||z   ¦  «        }|                      dt          |¦  «        ¦  «         |                      |¦  «         |  	                    ¦   «         }|  
                    |¦  «         dS )zå
            Test a simple bind, with a large invalid
            user name. As the resulting packet is one greater than
            the maximum unauthenticated packet size we should see
            the connection reset.
        r#   rĀ   iźē r   r)   rŗ   N)r<   r/   r   r   r   rD   r   r   r   r   r»   )rd   r”   r¢   r£   r¤   r   s         r   Śtest_simple_bind_gt_limitz%RawLdapTest.test_simple_bind_gt_limit;  sĄ    õ aŃ Ō Ųd VmŃ,Ō,Ń,Ų{ØCŃ0Ō0Ń0å „ tŃ,Ō,å Ń"Ō"Ż  Ø'Ń!1Ń2Ō2š 	×Ņ„ V”¤Ń-Ō-Š-ą		&ŃŌŠŲyy{{Ų×Ņ$ŃŌŠŠŠr   c                 ó   ddz  }t          t          |¦  «        }t          d¦  «        }t          ||z   ¦  «        }|                      dt          |¦  «        ¦  «         |                      |¦  «         |                      ¦   «         }|                      |¦  «         t          |¦  «        \  }}}}	|                      t                               ¦   «         |                     ¦   «         ¦  «         |                      |dk    ¦  «         |                      dt          |	¦  «        ¦  «         t          |¦  «        \  }}}}	|                      t                               ¦   «         |                     ¦   «         ¦  «         t                               |d¬¦  «        }|                      d|¦  «         |                      t          |	¦  «        d¦  «         t          |	¦  «        \  }}}}	|                      t"                               ¦   «         |                     ¦   «         ¦  «         |                      dt          |	¦  «        ¦  «         t          |¦  «        \  }}}}	|                      t$                               ¦   «         |                     ¦   «         ¦  «         |                      t&                               ¦   «         |                     ¦   «         ¦  «         |                      t          |	¦  «        d¦  «         dS )	zĢ
            Test a delete, with a large invalid DN
            As the resulting packet is equal to the maximum unauthenticated
            packet size we should see an INVALID_DN_SYNTAX response
        rĀ   ióē r)   r«   r   r    rF   N)r   ŚDELETEr<   rD   r   r   r   r   r   rO   rB   r   r   r8   rI   rJ   r   Ś
DELETE_RESr>   ŚINVALID_DN_SYNTAX©
rd   r    Śdel_opr£   r¤   r   r   r+   rM   rN   s
             r   Ś$test_unauthenticated_delete_at_limitz0RawLdapTest.test_unauthenticated_delete_at_limitU  si   š F]Ż„ØŃ+Ō+å Ń"Ō"Ż  Ø&”Ń1Ō1š 	×Ņ„ V”¤Ń-Ō-Š-ą		&ŃŌŠŲyy{{Ų×ŅTŃ"Ō"Š"õ -;ø4Ń,@Ō,@Ń)67 DŲ×ŅØÆŖ©¬Ń8Ō8Š8Ų 
Ń#Ō#Š#Ų×ŅC IIŃ&Ō&Š&õ -;ø7Ń,CŌ,CŃ)67 DŲ×ŅØÆŖ©¬Ń7Ō7Š7Ż °5Ń9Ō9Ų×ŅFŃ#Ō#Š#Ų×Ņ3t99 aŃ(Ō(Š(õ -;ø4Ń,@Ō,@Ń)67 DŲ×ŅŃ)Ō)Ø8Æ<Ŗ<©>¬>Ń:Ō:Š:Ų×ŅC IIŃ&Ō&Š&õ -;ø7Ń,CŌ,CŃ)67 DŲ×ŅŃ)Ō)Ø8Æ<Ŗ<©>¬>Ń:Ō:Š:Ų×ŅÕ*×.Ņ.Ń0Ō0°'·+²+±-“-Ń@Ō@Š@Ų×Ņ3t99 aŃ(Ō(Š(Š(Š(r   c                 ó>   ddz  }t          t          |¦  «        }t          d¦  «        }t          ||z   ¦  «        }|                      dt          |¦  «        ¦  «         |                      |¦  «         |                      ¦   «         }|                      |¦  «         dS )zÅ
            Test a delete, with a large invalid DN
            As the resulting packet is greater than the maximum unauthenticated
            packet size we should see a connection reset
        rĀ   iōē r)   rŗ   N)	r   rČ   r<   rD   r   r   r   r   r»   ©rd   r    rĢ   r£   r¤   r   s         r   Ś$test_unauthenticated_delete_gt_limitz0RawLdapTest.test_unauthenticated_delete_gt_limit  s    š F]Ż„ØŃ+Ō+å Ń"Ō"Ż  Ø&”Ń1Ō1š 	×Ņ„ V”¤Ń-Ō-Š-ą		&ŃŌŠŲyy{{Ų×Ņ$ŃŌŠŠŠr   c                 ó*   ddz  }t          t          |¦  «        }|                      ¦   «          t          d¦  «        }t	          ||z   ¦  «        }|                      dt          |¦  «        ¦  «         |                      |¦  «         |                      ¦   «         }|  	                    |¦  «         t          |¦  «        \  }}}}	|                      t                               ¦   «         |                     ¦   «         ¦  «         |                      |dk    ¦  «         |                      dt          |	¦  «        ¦  «         t          |¦  «        \  }}}}	|                      t                               ¦   «         |                     ¦   «         ¦  «         t                               |d¬¦  «        }|                      d|¦  «         |                      t          |	¦  «        d¦  «         t          |	¦  «        \  }}}}	|                      t$                               ¦   «         |                     ¦   «         ¦  «         |                      dt          |	¦  «        ¦  «         t          |¦  «        \  }}}}	|                      t&                               ¦   «         |                     ¦   «         ¦  «         |                      t(                               ¦   «         |                     ¦   «         ¦  «         |                      t          |	¦  «        d¦  «         dS )	zŹ
            Test a delete, with a large invalid DN
            As the resulting packet is equal to the maximum authenticated
            packet size we should see an INVALID_DN_SYNTAX response
        rĀ   ió’’ r&   i   r   r    rF   N)r   rČ   r”   r<   rD   r   r   r   r   r   rO   rB   r   r   r8   rI   rJ   r   rÉ   r>   rŹ   rĖ   s
             r   Ś"test_authenticated_delete_at_limitz.RawLdapTest.test_authenticated_delete_at_limit  sw   š H_Ż„ØŃ+Ō+ą		å Ń"Ō"Ż  Ø&”Ń1Ō1š 	×ŅŠ)­3Øv©;¬;Ń7Ō7Š7ą		&ŃŌŠŲyy{{Ų×ŅTŃ"Ō"Š"õ -;ø4Ń,@Ō,@Ń)67 DŲ×ŅØÆŖ©¬Ń8Ō8Š8Ų 
Ń#Ō#Š#Ų×ŅC IIŃ&Ō&Š&õ -;ø7Ń,CŌ,CŃ)67 DŲ×ŅØÆŖ©¬Ń7Ō7Š7Ż °5Ń9Ō9Ų×ŅFŃ#Ō#Š#Ų×Ņ3t99 aŃ(Ō(Š(õ -;ø4Ń,@Ō,@Ń)67 DŲ×ŅŃ)Ō)Ø8Æ<Ŗ<©>¬>Ń:Ō:Š:Ų×ŅC IIŃ&Ō&Š&õ -;ø7Ń,CŌ,CŃ)67 DŲ×ŅŃ)Ō)Ø8Æ<Ŗ<©>¬>Ń:Ō:Š:Ų×ŅÕ*×.Ņ.Ń0Ō0°'·+²+±-“-Ń@Ō@Š@Ų×Ņ3t99 aŃ(Ō(Š(Š(Š(r   c                 óf   ddz  }t          t          |¦  «        }|                      ¦   «          t          d¦  «        }t	          ||z   ¦  «        }|                      dt          |¦  «        ¦  «         |                      |¦  «         |                      ¦   «         }|  	                    |¦  «         dS )zĒ
            Test a delete, with a large invalid DN
            As the resulting packet is one greater than the maximum
            authenticated packet size we should see a connection reset
        rĀ   iō’’ r&   i  N)
r   rČ   r”   r<   rD   r   r   r   r   r»   rĻ   s         r   Ś"test_authenticated_delete_gt_limitz.RawLdapTest.test_authenticated_delete_gt_limitĻ  s    š H_Ż„ØŃ+Ō+ą		å Ń"Ō"Ż  Ø&”Ń1Ō1š 	×ŅŠ-­s°6©{¬{Ń;Ō;Š;ą		&ŃŌŠŲyy{{Ų×Ņ$ŃŌŠŠŠr   ©r!   N)Ś__name__Ś
__module__Ś__qualname__Ś__doc__rX   ri   rh   rb   r   r   r”   r¦   rø   r½   rĄ   rÄ   rĘ   rĶ   rŠ   rŅ   rŌ   Ś__classcell__©re   s   @r   rQ   rQ      sL  ų     š	š 	š	š 	š 	š 	š 	š,š ,š ,š ,š ,šš š šš š š(š š šš š š š*2)š 2)š 2)šh;8š ;8š ;8šzX'š X'š X'št( š ( š ( šT,)š ,)š ,)š\3)š 3)š 3)šj š  š  š4/)š /)š /)šb š  š  š,1)š 1)š 1)šf š  š  š  š  š  š  r   rQ   c                   óR     e Zd ZdZ fdZ fdZd Zd Zd Zdd	Z	d
 Z
d Z xZS )ŚRawCldapTestz
    A raw cldap Test case.
    The ldap connections are made over UDP port 389

    Uses the following environment variables:
        SERVER
    c                 óā    t          t          | ¦  «                             ¦   «          t          j                             d¦  «        | _        d| _        d | _        |  	                    ¦   «          d S )NrS   i  )
rW   rŻ   rX   rY   rZ   r[   r\   r]   r^   rb   rc   s    r   rX   zRawCldapTest.setUpń  sU   ų ŻlDŃ!Ō!×'Ņ'Ń)Ō)Š)åK×1Ņ1°(Ń;Ō;	Ų	ŲŲr   c                 ó~    |                       ¦   «          t          t          | ¦  «                             ¦   «          d S rg   )rh   rW   rŻ   ri   rc   s    r   ri   zRawCldapTest.tearDownł  s5   ų ŲŃŌŠŻlDŃ!Ō!×*Ņ*Ń,Ō,Š,Š,Š,r   c                 óX    | j         dS | j                              ¦   «          d| _         dS rk   rl   rn   s    r   rh   zRawCldapTest.disconnectż  ro   r   c                 óL   	 t          j         t           j        t           j        ¦  «        | _         | j                              d¦  «         | j                              | j        | j        f¦  «         dS # t           j        $ r" | j         | j                              ¦   «           w xY w)z0 Establish an UDP connection to the test server rq   N)	r^   rx   Ś
SOCK_DGRAMrz   rb   r\   r]   r|   rm   rn   s    r   rb   zRawCldapTest.connect  s    š	Ż -­¬½Ō8IŃJŌJDKŲK×"Ņ" 2Ń&Ō&Š&ŲK×Ņ ¤ØD¬IŠ 6Ń7Ō7Š7Š7Š7ųŻ|š 	š 	š 	Ų{Š&Ų×!Ņ!Ń#Ō#Š#Ųš	ųųųs   A.A2 Į21B#c                 ó    	 | j                              |¦  «         dS # t           j        $ r |                      ¦   «           w xY wr   r   r   s     r   r   zRawCldapTest.send  r   r   r!   Nc                 ó¦   d}	 || j                              |¦  «         | j                              |d¦  «        }| j                              d¦  «         t          |¦  «        dk    r|                      ¦   «          dS nR# t           j        $ r | j                              d¦  «         Y n't           j        $ r |                      ¦   «           w xY w|S r   r   r   s       r   r   zRawCldapTest.recv  r   r   c                 óJ   t          d¦  «        }|t          d¦  «        z  }|t          d¦  «        z  }|t          d¦  «        z  }|t          d¦  «        z  }|t          d¦  «        z  }t          d¦  «        }t          d¦  «        }t	          t
          ||z   ¦  «        }t          d¦  «        }t	          t          ||z   |z   ¦  «        }t          d¦  «        }t          ||z   ¦  «        }|                      dt          |¦  «        ¦  «         |  
                    |¦  «         |                      ¦   «         }	|                      |	¦  «         t          |	¦  «        \  }
}}}|                      t                               ¦   «         |
                     ¦   «         ¦  «         |                      |dk    ¦  «         |                      t          |¦  «        d¦  «         t          |¦  «        \  }
}}}|                      t$                               ¦   «         |
                     ¦   «         ¦  «         t&                               |d¬	¦  «        }|                      d|¦  «         |                      t          |¦  «        d¦  «         t          |¦  «        \  }
}}}|                      t*                               ¦   «         |
                     ¦   «         ¦  «         |                      dt          |¦  «        ¦  «         t          |¦  «        \  }
}}}|                      t,                               ¦   «         |
                     ¦   «         ¦  «         |                      dt          |¦  «        ¦  «         |                      t          |¦  «        d¦  «         t          |¦  «        \  }
}}}|                      t                               ¦   «         |
                     ¦   «         ¦  «         |                      dt          |¦  «        ¦  «         t          |¦  «        \  }
}}}|                      t                               ¦   «         |
                     ¦   «         ¦  «         |                      t          |¦  «        d¦  «         t          |¦  «        \  }
}}}|                      t,                               ¦   «         |
                     ¦   «         ¦  «         |                      t          |¦  «        d¦  «         |                      d
|¦  «         t          |¦  «        \  }
}}}|                      t.                               ¦   «         |
                     ¦   «         ¦  «         |                      t          |¦  «        d¦  «         |                      dt          |¦  «        ¦  «         dS )zb
        Check that an CLDAP search request equal to the maximum size is
        accepted
        Nr   Fóė  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxsė  yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyr&   i   r    rF   r¬   )r/   r@   r<   r4   r   r­   rD   r®   r   r   r   r   r   rO   rB   r   r   r   r8   rI   rJ   rÆ   r-   r°   r±   s                 r   rø   z6RawCldapTest.test_search_equals_maximum_permitted_size-  s    õ tŃ$Ō$ŲÕ# AŃ&Ō&Ń&ŲÕ# AŃ&Ō&Ń&Ų. Ń#Ō#Ń#Ų. Ń#Ō#Ń#Ų. Ń'Ō'Ń'õ +Ń&Ō&Ż+Ń&Ō&Ż„ØØA©Ń.Ō.Ż! $Ń'Ō'Ż„Ø°©ø'Ń(AŃBŌBå Ń"Ō"Ż  Ø&”Ń1Ō1š 	×Ņs 6{{Ń+Ō+Š+ą		&ŃŌŠŲyy{{Ų×ŅTŃ"Ō"Š"õ -;ø4Ń,@Ō,@Ń)67 DŲ×ŅØÆŖ©¬Ń8Ō8Š8Ų 
Ń#Ō#Š#Ų×Ņ3t99 aŃ(Ō(Š(õ
 -;ø7Ń,CŌ,CŃ)67 DŲ×ŅØÆŖ©¬Ń7Ō7Š7Ż °5Ń9Ō9Ų×ŅFŃ#Ō#Š#Ų×Ņ3t99 aŃ(Ō(Š(õ -;ø4Ń,@Ō,@Ń)67 DŲ×ŅŃ)Ō)Ø8Æ<Ŗ<©>¬>Ń:Ō:Š:Ų×ŅC IIŃ&Ō&Š&õ -;ø7Ń,CŌ,CŃ)67 DŲ×Ņ×)Ņ)Ń+Ō+ØXÆ\Ŗ\©^¬^Ń<Ō<Š<Ų×ŅC LLŃ)Ō)Š)Ų×Ņ3t99 aŃ(Ō(Š(õ -;ø4Ń,@Ō,@Ń)67 DŲ×ŅØÆŖ©¬Ń8Ō8Š8Ų×ŅC IIŃ&Ō&Š&õ -;ø7Ń,CŌ,CŃ)67 DŲ×ŅØÆŖ©¬Ń8Ō8Š8ą×Ņ3t99 aŃ(Ō(Š(õ -;ø7Ń,CŌ,CŃ)67 DŲ×Ņ×)Ņ)Ń+Ō+ØXÆ\Ŗ\©^¬^Ń<Ō<Š<Ų×Ņ3t99 aŃ(Ō(Š(Ų×ŅŠ6øŃ@Ō@Š@õ -;ø4Ń,@Ō,@Ń)67 DŲ×Ņ H§L¢L”N¤NŃ3Ō3Š3Ų×Ņ3w<<ØŃ+Ō+Š+Ų×ŅC IIŃ&Ō&Š&Š&Š&r   c                 ó   t          d¦  «        }|t          d¦  «        z  }|t          d¦  «        z  }|t          d¦  «        z  }|t          d¦  «        z  }|t          d¦  «        z  }t          d¦  «        }t          d¦  «        }t	          t
          ||z   ¦  «        }t          d¦  «        }t	          t          ||z   |z   ¦  «        }t          d¦  «        }t          ||z   ¦  «        }|                      dt          |¦  «        ¦  «         |  
                    |¦  «         |                      ¦   «         }	|                      |	¦  «         dS )zg
        Test that a cldap request longer than the maximum permitted
        size is rejected.
        Nr   Frę   sģ  yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyr&   i  )r/   r@   r<   r4   r   r­   rD   r®   r   r   r   r   r»   r¼   s
             r   r½   z7RawCldapTest.test_search_exceeds_maximum_permitted_size  s8   õ tŃ$Ō$ŲÕ# AŃ&Ō&Ń&ŲÕ# AŃ&Ō&Ń&Ų. Ń#Ō#Ń#Ų. Ń#Ō#Ń#Ų. Ń'Ō'Ń'õ +Ń&Ō&Ż+Ń&Ō&Ż„ØØA©Ń.Ō.Ż! $Ń'Ō'Ż„Ø°©ø'Ń(AŃBŌBå Ń"Ō"Ż  Ø&”Ń1Ō1š 	×Ņs 6{{Ń+Ō+Š+ą		&ŃŌŠŲyy{{š 	×Ņ$ŃŌŠŠŠr   rÕ   )rÖ   r×   rŲ   rŁ   rX   ri   rh   rb   r   r   rø   r½   rŚ   rŪ   s   @r   rŻ   rŻ   č  s¾   ų     šš šš š š š š-š -š -š -š -šš š š
š 
š 
šš š šš š š š*X'š X'š X'št$ š $ š $ š $ š $ š $ š $ r   rŻ   )#r^   rs   Śsamba.testsrY   r   rČ   rÉ   r   r   r   Ś	SASL_AUTHr®   rÆ   r­   r   ŚOPERATIONS_ERRORrĆ   rŹ   r2   r8   r-   ŚNULLr>   rB   r°   r   r   r/   r4   r<   r@   rD   rO   rQ   rŻ   © r   r   ś<module>rķ      s  šš* Ų 



ą Š Š Š Ų  Š  Š  Š  Š  Š  š 
Ų
š ŲŲŲ	š 
Ų
Ų	š ŲŠ ŲŠ ŲŠ š
 Ų
ŲŲŲ
ŲŲš6š 6š 6š%š %š %š0š 0š 0š
,š ,š ,šFš Fš Fš?š ?š ?š
.š .š .š
-š -š -š2U	 š U	 š U	 š U	 š U	 (ń U	 ō U	 š U	 špC š C š C š C š C 8ń C ō C š C š C š C r   