\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{lun. juil. 15 19:52:23 CEST 2013}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={rfc4515},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Représentation des chaînes dans le filtres de recherche},
CreationDate={D:20130715195223},
ModDate={D:20130715195223},
Keywords={LDAP;Lightweight Directory Access Protocol}
}}
\begin{document}
 
\begin{center}
{\Huge rfc4515 }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Représentation des chaînes dans le filtres de recherche}
 
\vspace{10mm}
 
\vspace{1cm}{\huge Définition d'un filtre de recherche }
 
\
 
{\ttfamily
Filter ::= CHOICE \{\\ \hspace{2mm}and \texttt{[}0\texttt{]} SET SIZE (1..MAX) OF filter Filter,\\ \hspace{2mm}or \texttt{[}1\texttt{]} SET SIZE (1..MAX) OF filter Filter,\\ \hspace{2mm}not \texttt{[}2\texttt{]} Filter,\\ \hspace{2mm}equalityMatch \texttt{[}3\texttt{]} AttributeValueAssertion,\\ \hspace{2mm}substrings \texttt{[}4\texttt{]} SubstringFilter,\\ \hspace{2mm}greaterOrEqual \texttt{[}5\texttt{]} AttributeValueAssertion,\\ \hspace{2mm}lessOrEqual \texttt{[}6\texttt{]} AttributeValueAssertion,\\ \hspace{2mm}present \texttt{[}7\texttt{]} AttributeDescription,\\ \hspace{2mm}approxMatch \texttt{[}8\texttt{]} AttributeValueAssertion,\\ \hspace{2mm}extensibleMatch \texttt{[}9\texttt{]} MatchingRuleAssertion \}\\ \hspace{2mm}\\ SubstringFilter ::= SEQUENCE \{\\ \hspace{2mm}type AttributeDescription, initial and final can occur at most once\\ \hspace{2mm}substrings SEQUENCE SIZE (1..MAX) OF substring CHOICE \{\\ \hspace{2mm}\hspace{2mm}initial \texttt{[}0\texttt{]} AssertionValue,\\ \hspace{2mm}\hspace{2mm}any \texttt{[}1\texttt{]} AssertionValue,\\ \hspace{2mm}\hspace{2mm}final \texttt{[}2\texttt{]} AssertionValue \} \}\\ \hspace{2mm}\\ AttributeValueAssertion ::= SEQUENCE \{\\ \hspace{2mm}attributeDesc AttributeDescription,\\ \hspace{2mm}assertionValue AssertionValue \}\\ \hspace{2mm}\\ MatchingRuleAssertion ::= SEQUENCE \{\\ \hspace{2mm}matchingRule \texttt{[}1\texttt{]} MatchingRuleId OPTIONAL,\\ \hspace{2mm}type \texttt{[}2\texttt{]} AttributeDescription OPTIONAL,\\ \hspace{2mm}matchValue \texttt{[}3\texttt{]} AssertionValue,\\ \hspace{2mm}dnAttributes \texttt{[}4\texttt{]} BOOLEAN DEFAULT FALSE \}\\ \hspace{2mm}\\ AttributeDescription ::= LDAPString Constrained to <attributedescription> \texttt{[}RFC4512\texttt{]}\\ \hspace{2mm}\\ AttributeValue ::= OCTET STRING\\ \hspace{2mm}\\ MatchingRuleId ::= LDAPString\\ \hspace{2mm}\\ AssertionValue ::= OCTET STRING\\ \hspace{2mm}\\ LDAPString ::= OCTET STRING UTF-8 encoded, \texttt{[}Unicode\texttt{]} characters \\
}
\vspace{8mm}
 
\begin{description} \normalsize
\item[\hspace{1mm} AttributeDescription]{est une représentation chaîne d'une description d'attribut}
\item[\hspace{1mm} AttributeValue et AssertionValue]{ont une forme définie dans la RFC4517}
\end{description}
 
\vspace{1cm}{\huge Définition des filtres de recherche }
 
\
 
\hspace{1mm} Un filtre LDAP est une chaîne UTF8 définis par la grammaire suivante (notation ABNF)
 
{\ttfamily
filter = LPAREN filtercomp RPAREN\\ filtercomp = and / or / not / item\\ and = AMPERSAND filterlist\\ or = VERTBAR filterlist\\ not = EXCLAMATION filter\\ filterlist = 1*filter\\ item = simple / present / substring / extensible\\ simple = attr filtertype assertionvalue\\ filtertype = equal / approx / greaterorequal / lessorequal\\ equal = EQUALS\\ approx = TILDE EQUALS\\ greaterorequal = RANGLE EQUALS\\ lessorequal = LANGLE EQUALS\\ extensible = ( attr \texttt{[}dnattrs\texttt{]}\\ \hspace{2mm}\texttt{[}matchingrule\texttt{]} COLON EQUALS assertionvalue )\\ \hspace{2mm}/ ( \texttt{[}dnattrs\texttt{]}\\ \hspace{2mm}matchingrule COLON EQUALS assertionvalue )\\ present = attr EQUALS ASTERISK\\ substring = attr EQUALS \texttt{[}initial\texttt{]} any \texttt{[}final\texttt{]}\\ initial = assertionvalue\\ any = ASTERISK *(assertionvalue ASTERISK)\\ final = assertionvalue\\ attr = attributedescription\\ dnattrs = COLON "dn"\\ matchingrule = COLON oid\\ assertionvalue = valueencoding\\ valueencoding = 0*(normal / escaped)\\ normal = UTF1SUBSET / UTFMB\\ escaped = ESC HEX HEX\\ UTF1SUBSET = \%x01-27 / \%x2B-5B / \%x5D-7F\\ \hspace{2mm}; UTF1SUBSET excludes 0x00 (NUL), LPAREN,\\ \hspace{2mm}; RPAREN, ASTERISK, and ESC.\\ EXCLAMATION = \%x21 ; exclamation mark ("!")\\ AMPERSAND = \%x26 ; ampersand (or AND symbol) ("\&")\\ ASTERISK = \%x2A ; asterisk ("*")\\ COLON = \%x3A ; colon (":")\\ VERTBAR = \%x7C ; vertical bar (or pipe) ("|")\\ TILDE = \%x7E ; tilde ("\textasciitilde")\\
}
\vspace{8mm}
 
\vspace{1cm}{\huge Exemples }
 
\
 
\hspace{1mm} \textbf{cn=Babs Jensen)} \\
\hspace{1mm} \textbf{(!(cn=Tim Howes))} \\
\hspace{1mm} \textbf{(\&(objectClass=Person)(|(sn=Jensen)(cn=Babs J*)))} \\
\hspace{1mm} \textbf{(o=univ*of*mich*)} \\
\hspace{1mm} \textbf{(seeAlso=)} \\
\hspace{1mm} utilisation du matching rule "caseExactMatch": \\
\hspace{1mm} \textbf{(cn:caseExactMatch:=Fred Flintstone)} \\
\hspace{1mm} utilisation d'un MatchingRuleAssertion sans matchingRule: \\
\hspace{1mm} \textbf{(cn:=Betty Rubble)} \\
\hspace{1mm} Utilisation de la notation :oid: \\
\hspace{1mm} \textbf{(sn:dn:2.4.6.8.10:=Barney Rubble)} \\
\hspace{1mm} equality match, excepté que le DN devrait faire partie de l'entrée: \\
\hspace{1mm} \textbf{(o:dn:=Ace Industry)} \\
\hspace{1mm} exemples de matching rules: \\
\hspace{1mm} \textbf{(:1.2.3:=Wilma Flintstone)} \\
\hspace{1mm} \textbf{(:DN:2.4.6.8.10:=Dino)} \\
\hspace{1mm} utilisation du mécanisme d'échappement: \\
\hspace{1mm} \textbf{(o=Parens R Us \textbackslash{}28for all your parenthetical needs\textbackslash{}29)} \\
\hspace{1mm} \textbf{(cn=*\textbackslash{}2A*)} \\
\hspace{1mm} \textbf{(filename=C:\textbackslash{}5cMyFile)} \\
\hspace{1mm} \textbf{(bin=\textbackslash{}00\textbackslash{}00\textbackslash{}00\textbackslash{}04)} \\
\hspace{1mm} \textbf{(sn=Lu\textbackslash{}c4\textbackslash{}8di\textbackslash{}c4\textbackslash{}87)} \\
\hspace{1mm} \textbf{(1.3.6.1.4.1.1466.0=\textbackslash{}04\textbackslash{}02\textbackslash{}48\textbackslash{}69)} \\
\end{flushleft}
\end{document}
