3 M(Yh@sddlmZmZmZmZmZejdZGdddejZ GdddejZ Gddde Z Gd d d e Z Gd d d e Z Gd dde ZGdddejZGdddejZGdddejZGdddejZGdddejZGddde ZGdddejZGdddejZGdd d e ZGd!d"d"ejZGd#d$d$ejZGd%d&d&ejZGd'd(d(ejZGd)d*d*ejZGd+d,d,ejZ Gd-d.d.ejZ!Gd/d0d0ejZ"Gd1d2d2ejZ#Gd3d4d4ejZ$Gd5d6d6ejZ%Gd7d8d8ejZ&Gd9d:d:ej'Z(Gd;d<dd>ejZ*Gd?d@d@ejZ+GdAdBdBe*Z,GdCdDdDejZ-GdEdFdFejZ.GdGdHdHe*Z/GdIdJdJejZ0GdKdLdLejZ1GdMdNdNe*Z2GdOdPdPe*Z3GdQdRdRe*Z4GdSdTdTejZ5GdUdVdVe*Z6GdWdXdXejZ7GdYdZdZe*Z8Gd[d\d\e*Z9Gd]d^d^ejZ:Gd_d`d`ejZ;GdadbdbejZeZdZejejdeejdej dej dej Z dS)ControlZ controlTypeZ criticalityFalseZ controlValueN) rr r rrrr DefaultedNamedTyperBooleanOptionalNamedType OctetStringrr r r r rJs rc@seZdZeZdS)ControlsN)rr r rrr r r r r$Rsr$c@s eZdZdS)LDAPURLN)rr r r r r r r%Vsr%c@seZdZeZdS)ReferralN)rr r r%rr r r r r&Zsr&c@s.eZdZejejdeejdej Z dS)SaslCredentialsZ mechanism credentialsN) rr r rrrrr"rr#rr r r r r'^s r'c @seZdZejejdejje j e j e j ddejdejje j e j e j ddejdejje j e j e j ddejde je j e j e j d dZd S) AuthenticationChoicesimpler) implicitTagz reserved-1z reserved-2ZsaslN)rr r rrrrr#subtyperTagtagClassContexttagFormatSimpler'rr r r r r)esr)c@sfeZdZejjjejej ej dZe j e j dejjejddde j dee j deZdS) BindRequestrversionr,) subtypeSpecnameZauthenticationN)rr r rSequencetagSet tagImplicitlyrr0tagClassApplicationtagFormatConstructedrrrIntegerr/rValueRangeConstraintrr)rr r r r r3rs  r3c@s<eZdZejejejdeejdej e ddZ dS)PartialAttributeListrr)rN) rr r rr8rrrrrrrr r r r r?}s r?c@sHeZdZejjjejej ej dZe j e j dee j deZdS)SearchResultEntryZ objectName attributesN)rr r rr8r9r:rr0r;r<rrrrr?rr r r r r@s  r@c @seZdZejejdejej ej ej ddejde jej ej ej ddej dejej ej ej ddejdejd jej ej ej d dZd S) MatchingRuleAssertionZ matchingRuler,)r+rr-Z matchValuer.Z dnAttributesrrAN)rr r rrr"rr/rr0r1r2rrrr rr!rr r r r rCs  rCc@seZdZejejdeejdejej ejejde j e j e je jddejde j e j e je jddejde j e j e je jd dd d Zd S) SubstringFilterr substringsinitialr)r+anyr,finalr-)rN)rr r rrrrr SequenceOfChoicerr/rr0r1r2rr r r r rDs rDc@seZdZejejdejej ej ej ddejde jej ej ej ddejdejej ej ej ddejdejej ej ej d dejd e jej ej ejd dejd ejej ej ej d dejdejej ej ej ddZdS)Filter3 equalityMatchr.)r+rErAgreaterOrEqual lessOrEqualpresent approxMatchextensibleMatch N)rr r rrrrr/rr0r1r<rDrr2rCrr r r r rKs       rKc@sxeZdZejejdejedj e j e j e j ddejdejedj e j e j e j ddejdej e j e j e j ddejd ej e j e j e j d dejd ej e j e j e j d dejd ej e j e j e j ddejdej e j e j e j ddejdej e j e j e jddejdej e j e j e j ddejdej e j e j e j dd ZdS)Filter2and)rr)r+orr,notr-rLr.rErArMrNrOrPrQrRrSrTrUrVN)rr r rrrrrrKr/rr0r1r<rrDrr2rCrr r r r rWs*       rWc@sxeZdZejejdejedj e j e j e j ddejdejedj e j e j e j ddejdej e j e j e j ddejd ej e j e j e j d dejd ej e j e j e j d dejd ej e j e j e j ddejdej e j e j e j ddejdej e j e j e jddejdej e j e j e j ddejdej e j e j e j dd ZdS)FilterrX)rr)r+rYr,rZr-rLr.rErArMrNrOrPrQrRrSrTrUrVN)rr r rrrrrrWr/rr0r1r<rrDrr2rCrr r r r r[s*       r[c @seZdZejjjejej ej dZe j e j dee j dejejdddd e j d ejejddddd e j dejjejdede j dejjejdede j deje j dee j deZdS) SearchRequestr. baseObjectZscoper singleLevelr, wholeSubtreer-) namedValuesZ derefAliasesneverDerefAliasesderefInSearchingderefFindingBaseObj derefAlwaysZ sizeLimit)r6Z timeLimitZ typesOnlyfilterrBN)r]r)r^r,)r_r-)rar)rbr,)rcr-)rdr.)rr r rr8r9r:rr0r;r<rrrr Enumeratedr NamedValuesr=r/rr>maxIntr!r[rrr r r r r\s      r\c@s(eZdZejjjejej ej dZdS) UnbindRequestr-N) rr r rr8r9r:rr0r;r2r r r r risric:@s eZdZejjjejej ej dZe j e j dejejdpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddddddddddddddddddddddd4dje j dkee j dlee jdejejejej d dme jdnejjejejej ddmZdoS) BindResponser, resultCodesuccessroperationsError protocolErrorr-timeLimitExceededr.sizeLimitExceededrA compareFalserN compareTruerPauthMethodNotSupportedrRstrongAuthRequiredrT reserved-9rVreferral adminLimitExceeded unavailableCriticalExtension confidentialityRequired saslBindInProgressnoSuchAttributeundefinedAttributeTypeinappropriateMatchingconstraintViolationattributeOrValueExistsinvalidAttributeSyntax noSuchObject aliasProblem!invalidDNSyntax" reserved-35#aliasDereferencingProblem$inappropriateAuthentication0invalidCredentials1insufficientAccessRights2busy3 unavailable4unwillingToPerform5 loopDetect6namingViolation@objectClassViolationAnotAllowedOnNonLeafBnotAllowedOnRDNCentryAlreadyExistsDobjectClassModsProhibitedE reserved-70FaffectsMultipleDSAsGotherP reserved-81Q reserved-82R reserved-83S reserved-84T reserved-85U reserved-86V reserved-87W reserved-88X reserved-89Y reserved-90Z)r` matchedDN errorMessage)r+ZserverSaslCredsN)rlr)rmr,)rnr-)ror.)rprA)rqrN)rrrP)rsrR)rtrT)rurV)rvrw)rxry)rzr{)r|r})r~r)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr r rr8r9r:rr0r;r<rrrrfrrgrrr"r&r/r1r#rr r r r rjs>     rjc:@seZdZejejdejej dodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddddd4djejdke ejdle ej de jejejejd dmZdnS) LDAPResultrkrlrrmr,rnr-ror.rprArqrNrrrPrsrRrtrT reserved-9rVrvrwrxryrzr{r|r}r~rrrrrrrrrrrrrrrrrrr reserved-35rrrrrrrrrrrrrrrrrrrrrrrrrrrrr reserved-70rrrrr reserved-81r reserved-82r reserved-83r reserved-84r reserved-85r reserved-86r reserved-87r reserved-88r reserved-89r reserved-90r)r`rr)r+N)rlr)rmr,)rnr-)ror.)rprA)rqrN)rrrP)rsrR)rtrT)rrV)rvrw)rxry)rzr{)r|r})r~r)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr r rrrrrfrrgrrr"r&r/rr0r1r<rr r r r r<s6     rc@s.eZdZejjjejej ej dZe Z dS)SearchResultReferencerN) rr r rr8r9r:rr0r;r<r%rr r r r r[src@s(eZdZejjjejej ej dZdS)SearchResultDonerNN) rr r rr8r9r:rr0r;r<r r r r rbsrc@s4eZdZejejdeejdeje dZ dS)AttributeTypeAndValuesrr)rN) rr r rrrrrrrrr r r r rhs rc@seZdZejjjejej ej dZe j e j dee j dejeje j e j dejejdddd e j ded d Zd S) ModifyRequestrPobjectZ modificationZ operationaddrdeleter,replacer-)r`)rN)rr)rr,)rr-)rr r rr8r9r:rr0r;r<rrrrrIrfrrgrrr r r r ros rc@s(eZdZejjjejej ej dZdS)ModifyResponserRN) rr r rr8r9r:rr0r;r<r r r r rsrc@s<eZdZejejejdeejdej e ddZ dS) AttributeListrr)rN) rr r rr8rrrrrrrr r r r rs rc@sHeZdZejjjejej ej dZe j e j dee j deZdS) AddRequestrTentryrBN)rr r rr8r9r:rr0r;r<rrrrrrr r r r rs  rc@s(eZdZejjjejej ej dZdS) AddResponserVN) rr r rr8r9r:rr0r;r<r r r r rsrc@s(eZdZejjjejej ej dZdS) DelRequestrwN) rr r rr8r9r:rr0r;r<r r r r rsrc@s(eZdZejjjejej ej dZdS) DelResponseryN) rr r rr8r9r:rr0r;r<r r r r rsrc @sxeZdZejjjejej ej dZe j e j dee j dee j deje jdejejejejddZdS) ModifyDNRequestr{rZnewrdnZ deleteoldrdnZ newSuperiorr)r+N)rr r rr8r9r:rr0r;r<rrrrrr!r"r/r1r2rr r r r rs  rc@s(eZdZejjjejej ej dZdS)ModifyDNResponser}N) rr r rr8r9r:rr0r;r<r r r r rsrc@sHeZdZejjjejej ej dZe j e j dee j deZdS)CompareRequestrrZavaN)rr r rr8r9r:rr0r;r<rrrrrrr r r r rs  rc@s(eZdZejjjejej ej dZdS)CompareResponseN) rr r rr8r9r:rr0r;r<r r r r rsrc@s(eZdZejjjejej ej dZdS)AbandonRequestrN) rr r rr8r9r:rr0r;r<r r r r rsrc @sveZdZejjjejej ej dZe j e j dejejejejdde jdejjejejejddZdS)ExtendedRequestZ requestNamer)r+Z requestValuer,N)rr r rr8r9r:rr0r;r<rrrr r/r1r2r"r#rr r r r rsrc:@s.eZdZejjjejej ej dZe j e j dejejdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddddddddddddddddddddddddd4dke j dlee j dmee jdejejejej d dne jdoejejejejddne jdpejjejejejddnZdqS)ExtendedResponserkrlrrmr,rnr-ror.rprArqrNrrrPrsrRrtrT reserved-9rVrvrwrxryrzr{r|r}r~rrrrrrrrrrrrrrrrrrr reserved-35rrrrrrrrrrrrrrrrrrrrrrrrrrrrr reserved-70rrrrr reserved-81r reserved-82r reserved-83r reserved-84r reserved-85r reserved-86r reserved-87r reserved-88r reserved-89r reserved-90r)r`rr)r+Z responseNameresponseN)rlr)rmr,)rnr-)ror.)rprA)rqrN)rrrP)rsrR)rtrT)rrV)rvrw)rxry)rzr{)r|r})r~r)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr r rr8r9r:rr0r;r<rrrrfrrgrrr"r&r/r1r r2r#rr r r r rsB      rc@s eZdZejjejdeZdS) MessageIDrN) rr r rr=r6rr>rhr r r r r s rc@sHeZdZejejdeejdejejejde ejde ejde ejde ejde ejdeejd eejd eejd eejd eejd eejdeejdeejdeejdeejdeejdeejdeejdeejdedejdeje j!e j"e j#ddZ$dS) LDAPMessageZ messageIDZ protocolOpZ bindRequestZ bindResponseZ unbindRequestZ searchRequestZsearchResEntryZ searchResDoneZ searchResRefZ modifyRequestZmodifyResponseZ addRequestZ addResponseZ delRequestZ delResponseZ modDNRequestZ modDNResponseZcompareRequestZcompareResponseZabandonRequestZ extendedReqZ extendedResp)rcontrolsr)r+N)%rr r rrrrrrJr3rjrir\r@rrrrrrrrrrrrrrrr"r$r/rr0r1r<rr r r r rs6                     rN)>Z pyasn1.typerrrrrr=rhr#rr rrrrrIrrrr8rrrrr$r%r&r'rJr)r3r?r@rCrDrKrWr[r\ZNullrirjrrrrrrrrrrrrrrrrrrrrr r r r sd      $    '