|
|
1.1 root 1: % run this through LaTeX with the appropriate wrapper
2:
3: \chapter {Attribute Syntaxes}
4: \label{syntaxes}
5:
6: All attributes recognised by Quipu have an associated ``string''
7: representation, that is used to store the data in the DSA.
8: This Chapter describes all the currently recognised syntaxes.
9:
10: For most of the syntaxes, as BNF description is given, using the following
11: base description:-
12:
13: \begin{quote}\small\begin{verbatim}
14: <a> ::= any of the 52 upper and lower case IA5 letters
15: <d> ::= any IA5 digit 0-9
16: <k> ::= any of the 52 upper and lower case IA5 letters,
17: IA5 digits, and "-" (hyphen)
18: <p> ::= any IA5 character in ASN.1 PrintableSting
19: <CRLF> ::= IA5 Newline
20: <letterstring> ::= <a> | <a> <letterstring>
21: <numericstring> ::= <d> | <d> <numericstring>
22: <keystring> ::= <k> | <k> <keystring>
23: <printablestring> ::= <p> | <p> <printablestring>
24: \end{verbatim}\end{quote}
25:
26: The BNF description of attributes can be found in
27: Appendix~\ref{bnf}, but this does not repeat the BNF used for syntaxes
28: given below.
29:
30: \section{Standard Syntaxes}
31:
32: This section describes the Attribute Syntaxes defined by X.500.
33:
34: There are many attributes that are represented by a sequence of
35: printable characters. There are various was in which the contents of the
36: string is restricted, each is represented by a different syntax, which are
37: described below.
38:
39: \subsection{PrintableString}
40: \index{PrintableString}
41: \begin{center}
42: \begin{tabular}{|l|}\hline
43: Standard Attributes \\ \hline
44: serialNumber\\
45: \hline
46: \end{tabular}
47: \end{center}
48:
49: The printable string characters are:
50: \begin{quote}\begin{tabular}{l}
51: \verb"A" through \verb"Z"\\
52: \verb"a" through \verb"z"\\
53: \verb"0" through \verb"9"\\
54: \verb"'" (apostrophe)\\
55: \verb"(" (left parenthesis)\\
56: \verb")" (right parenthesis)\\
57: \verb"+" (plus-sign)\\
58: \verb"," (comma)\\
59: \verb"-" (hyphen)\\
60: \verb"." (period)\\
61: \verb"/" (solidus)\\
62: \verb":" (colon)\\
63: \verb"?" (question-mark)\\
64: space
65: \end{tabular}\end{quote}
66:
67: The value can be any character listed above, with matching as for
68: CaseExactString.
69:
70: When matching multiple white spaces and tabs are treated as a single space
71: character.
72:
73: Approximate matching is supported for this syntax.
74:
75: The only attribute of this type is \verb+serialNumber+, this is used in the
76: \verb+device+ objectClass, and represents the serial number of the device.
77:
78: \subsection{CaseExactString}
79: \index{CaseExactString}
80:
81: No attributes currently use this syntax.
82:
83: \label{T61String}
84: The value for this syntax can be one of two types, either a printable
85: string, or a T.61 string represented as follows:
86: \begin{verbatim}
87: <StringValue> ::= "{T.61}" <T61String> | <printablestring>
88: <T61String> ::= Any character defined to be in T.61 String.
89: \end{verbatim}
90:
91: Characters in T.61 string that can not be represented by an equivalent ASCII
92: character are quoted, using ``\verb+\xx+'' where ``\verb+xx+'' is the
93: hexadecimal value of the character.
94:
95: Matching is as for PrintableString.
96:
97: \subsection{CaseIgnoreString}
98: \index{CaseIgnoreString}
99: \begin{center}
100: \begin{tabular}{|l|}\hline
101: Standard Attributes \\ \hline
102: knowledgeInformation\\
103: commonName\\
104: surname\\
105: localityName\\
106: stateOrProvinceName\\
107: streetAddress\\
108: organizationName\\
109: organizationalUnitName\\
110: title\\
111: description\\
112: businessCategory\\
113: postalCode\\
114: postOfficeBox\\
115: physicalDeliveryOfficeName\\
116: \hline
117: \end{tabular}
118: \end{center}
119:
120: \begin{center}
121: \begin{tabular}{|l|}\hline
122: RARE Attributes \\ \hline
123: userid\\
124: textEncodedORaddress\\
125: info\\
126: favouriteDrink\\
127: roomNumber\\
128: userClass\\
129: host\\
130: documentIdentifier\\
131: documentTitle\\
132: documentVersion\\
133: documentLocation\\
134: durName\\
135: wkdName\\
136: protocolProfile\\
137: objectID\\
138: friendlyCountryName\\
139: \hline
140: \end{tabular}
141: \end{center}
142: The syntax is the same as CaseExactString, except that when matching
143: ``characters that differ only in their case are considered identical''.
144:
145: Approximate matching is supported for this syntax.
146:
147: The use of some of the attributes is now described, the more obvious ones
148: are omitted.
149:
150: \begin{describe}
151: \item [knowledgeInformation] A description of knowledge mastered by a DSA.
152: \item [localityName] Used to identify the geographical area or locality in
153: which the object is physically located e.g.,
154: \begin{quote}\small\begin{verbatim}
155: London
156: \end{verbatim}\end{quote}
157: \item [stateOrProvinceName]
158: describes the state in which
159: the \verb"locality" is found; e.g.,
160: \begin{quote}\small\begin{verbatim}
161: New York
162: \end{verbatim}\end{quote}
163: \item [title]
164: An objects job title, e.g.,
165: \begin{quote}\small\begin{verbatim}
166: Technical Manager
167: \end{verbatim}\end{quote}
168:
169: \item [businessCategory]
170: describes the business of the object, e.g.,
171: \begin{quote}\small\begin{verbatim}
172: networking
173: \end{verbatim}\end{quote}
174: This is used to find people sharing the same occupation.
175:
176: \item [physicalDeliveryOfficeName]
177: describes the geographical location
178: of the physical delivery office which services the
179: postal address of this object; e.g.,
180: \begin{quote}\small\begin{verbatim}
181: Troy
182: \end{verbatim}\end{quote}
183:
184: \item [friendlyCountryName]
185: A `nice' name for countries, as opposed to the two letter codes enforced by
186: use of \verb+CountryName+, for example
187: \begin{quote}\small\begin{verbatim}
188: Great Britain
189: \end{verbatim}\end{quote}
190:
191: \end{describe}
192:
193: \subsection{CountryString}
194: \index{CountryString}
195: \begin{center}
196: \begin{tabular}{|l|}\hline
197: Standard Attributes \\ \hline
198: countryName\\
199: \hline
200: \end{tabular}
201: \end{center}
202: This syntax is treated as a PrintableString, with matching rules as for
203: CaseIgnoreString, and the restriction that the string must consist of
204: exactly two characters.
205:
206: \subsection{IA5String}
207: \index{IA5String}\index{quipuVrsion attribute}
208: \begin{center}
209: \begin{tabular}{|l|}\hline
210: QUIPU Attributes \\ \hline
211: control\\
212: quipuVersion\\
213: \hline
214: \end{tabular}
215: \end{center}
216:
217: \begin{center}
218: \begin{tabular}{|l|}\hline
219: RARE Attributes \\ \hline
220: aRecord\\
221: mDRecord\\
222: mXRecord\\
223: nSRecord\\
224: sOARecord\\
225: cNAMERecord\\
226: \hline
227: \end{tabular}
228: \end{center}
229:
230: This syntax is handled as PrintableString, except a wider range of
231: characters are recognised (i.e any character in IA5 string, characters such
232: as NewLine are quoted using the same mechanism as described for T61 string
233: in Section~\ref{T61String}), with matching rules as for CaseExactString.
234:
235:
236:
237: \subsection{VisibleString}
238: \index{VisibleString}
239: \begin{center}
240: \begin{tabular}{|l|}\hline
241: RARE Attributes \\ \hline
242: nRSSystemDescription\\
243: \hline
244: \end{tabular}
245: \end{center}
246: This is currently treated as an ASN attribute (see Section~\ref{ASN_syntax}).
247:
248:
249: \subsection{OctetString}
250: \index{OctetString}
251:
252: No attributes use this syntax directly.
253:
254: Characters that can not be printed as an ACSII are represented using the
255: quoting mechanism described in Section~\ref{T61String}.
256:
257: \subsection{NumericString}
258: \index{NumericString}
259: \begin{center}
260: \begin{tabular}{|l|}\hline
261: Standard Attributes \\ \hline
262: x121Address\\
263: internationaliSDNNumber\\
264: \hline
265: \end{tabular}
266: \end{center}
267: The value is simply a numeric string:
268: \begin{verbatim}
269: <NumericValue> ::= <numericstring>
270: \end{verbatim}
271:
272: The two attributes are used thus:
273: \begin{describe}
274: \item[x121Address] defines the X.121 Address of an object as defined by the
275: CCITT Recommendation X.121
276: \item[internationaliSDNNumber]
277: An International ISDN Number as defined by CCITT Recommendation E.164.
278: \end{describe}
279:
280: \subsection{DestinationString}
281: \index{DestinationString}
282: \begin{center}
283: \begin{tabular}{|l|}\hline
284: Standard Attributes \\ \hline
285: destinationIndicator\\
286: \hline
287: \end{tabular}
288: \end{center}
289: Behaves as a \verb+<printablestring>+, with CaseIgnoreString matching rules.
290:
291: The only attribute of the type \verb+destinationIndicator+ is used to define
292: the addressee as required by the Public Telegram Service.
293:
294: \subsection{TelephoneNumber}
295: \index{TelephoneNumber}
296: \begin{center}
297: \begin{tabular}{|l|}\hline
298: Standard Attributes \\ \hline
299: telephoneNumber\\
300: \hline
301: \end{tabular}
302: \end{center}
303:
304: \begin{center}
305: \begin{tabular}{|l|}\hline
306: RARE Attributes \\ \hline
307: homePhone\\
308: \hline
309: \end{tabular}
310: \end{center}
311:
312:
313: \begin{center}
314: \begin{tabular}{|l|}\hline
315: NYSER Attributes \\ \hline
316: mobileTelephoneNumber\\
317: pagerTelephoneNumber\\
318: \hline
319: \end{tabular}
320: \end{center}
321:
322: The value should be a string describing the phone number of the object
323: using the international notation; e.g.,
324: \begin{quote}\begin{verbatim}
325: +1 518-283-8860
326: \end{verbatim}\end{quote}
327: or
328: \begin{quote}\begin{verbatim}
329: +1 518-283-8860 x1234
330: \end{verbatim}\end{quote}
331: In general, the syntax is:
332: \begin{quote}\begin{verbatim}
333: "+" <country code> <national number> [ "x" <extension> ]
334: \end{verbatim}\end{quote}
335:
336: Matching is as defined for CaseExactString, except that all space and `-'
337: characters are skipped during the comparison.
338:
339: \subsection{PostalAddress}
340: \index{PostalAddress}
341:
342: \begin{center}
343: \begin{tabular}{|l|}\hline
344: Standard Attributes \\ \hline
345: postalAddress\\
346: registeredAddress\\
347: homePostalAddress\\
348: \hline
349: \end{tabular}
350: \end{center}
351:
352: \begin{verbatim}
353: <PostalAddressValue> ::= <address_component> |
354: <address_component> `$' <address>
355: <address_component> = <StringValue>
356: \end{verbatim}
357: For example \verb+UCL $ Gower Street $ London+.
358: You are limited to a maximum of 6 \verb+<address_component>+'s, each with a
359: maximum of 30 characters.
360: (Note each \verb+<address_component>+ can include T61 strings -- see
361: Section~\ref{T61String} for details of this).
362:
363: Please note: substring matching is not supported by Quipu for this syntax.
364:
365: \subsection{DN}
366: \index{DN}\index{masterDSA attribute}
367: \begin{center}
368: \begin{tabular}{|l|}\hline
369: Standard Attributes \\ \hline
370: aliasedObjectName\\
371: member\\
372: owner\\
373: roleOccupant\\
374: seeAlso\\
375: \hline
376: \end{tabular}
377: \end{center}
378:
379: \begin{center}
380: \begin{tabular}{|l|}\hline
381: QUIPU Attributes \\ \hline
382: masterDSA\\
383: slaveDSA\\
384: \hline
385: \end{tabular}
386: \end{center}
387:
388: \begin{center}
389: \begin{tabular}{|l|}\hline
390: RARE Attributes \\ \hline
391: manager\\
392: documentAuthor\\
393: secretary\\
394: lastModifiedBy\\
395: associatedName\\
396: \hline
397: \end{tabular}
398: \end{center}
399:
400: \begin{center}
401: \begin{tabular}{|l|}\hline
402: MHS Attributes \\ \hline
403: mhsMessageStoreName\\
404: \hline
405: \end{tabular}
406:
407: \end{center}
408: \begin{verbatim}
409: <DNValue> ::= <name>
410: \end{verbatim}
411: Distinguished names are discussed in Section~\ref{quipu_name}, the BNF is
412: repeated for completeness:
413: \begin{verbatim}
414: <DNValue> ::= <rdn> | <rdn> "@" <DNValue>
415: <rdn> ::= <attribute> | <attribute> "%" <rdn>
416: \end{verbatim}
417:
418: The DNs held by the attribute have the following meanings:-
419: \begin{describe}
420: \item[aliasedObjectName] The name of an aliased object.
421: \item[member] Specifies a member of a \verb+gruopOfNames+.
422: \item[owner] The name of the person responsible for the associated object.
423: \item[roleOccupant] The person that fills an organisational role.
424: \item[seeAlso] Other objects that may be of interest.
425: \item[masterDSA] The DSA holding the master EDB file.
426: \item[slaveDSA] DSAs holding slave EDB files.
427: \item[manager] The manager of a DSA.
428: \item[documentAuthor] Author of a document!
429: \item[secretary] The name of an person Secretary.
430: \item[lastModifiedBy] The object that last modified the referenced object!
431: \end{describe}
432:
433: \subsection{OID}
434: \index{OID}
435: \begin{center}
436: \begin{tabular}{|l|}\hline
437: Standard Attributes \\ \hline
438: supportedApplicationContext\\
439: \hline
440: \end{tabular}
441: \end{center}
442:
443: \begin{center}
444: \begin{tabular}{|l|}\hline
445: MHS Attributes \\ \hline
446: mhsDeliverableContentTypes\\
447: mhsDeliverableEits\\
448: mhsSupportedAutomaticActions\\
449: mhsSupportedContentTypes\\
450: mhsSupportedOptionalAttributes\\
451: \hline
452: \end{tabular}
453: \end{center}
454: \begin{verbatim}
455: <OIDValue> ::= <oid>
456: \end{verbatim}
457:
458: All the syntaxes in this section are represented by OIDs as follows:
459: \begin{verbatim}
460: <oid> ::= <keystring> "." <numericoid> |
461: <keystring> |
462: <numericoid>
463: <numericoid> ::= <numericstring> |
464: <numericstring> "." <numericoid>
465: \end{verbatim}
466: For example \verb+2.3.4.2+ or \verb+attribute.6+.
467:
468: In general, the value will be a string using oidtable mappings.
469:
470: \subsection{ObjectClass}
471: \index{objectClass attribute}
472: \begin{center}
473: \begin{tabular}{|l|}\hline
474: Standard Attributes \\ \hline
475: objectClass\\
476: \hline
477: \end{tabular}
478: \end{center}
479: Although essentially an OID, a separate syntax is provided an OID has
480: additional semantics when used as an object class.
481:
482: \subsection{TelexNumber}
483: \index{TelexNumber}
484: \begin{center}
485: \begin{tabular}{|l|}\hline
486: Standard Attributes \\ \hline
487: telexNumber\\
488: \hline
489: \end{tabular}
490: \end{center}
491:
492: \begin{verbatim}
493: <TelexNumberValue> ::= <printablestring> "$" <printablestring>
494: "$" <printablestring>
495: \end{verbatim}
496: This is used to represent \verb+number $ country $ answerback+, for example
497: \verb+28722 $ G $ UCLPHYS+.
498:
499: \subsection{TeletexTerminalIdentifier}
500: \index{TeletexTerminalIdentifier}
501: \begin{center}
502: \begin{tabular}{|l|}\hline
503: Standard Attributes \\ \hline
504: teletexTerminalIdentifier\\
505: \hline
506: \end{tabular}
507: \end{center}
508:
509: \begin{verbatim}
510: <TeletexTerminalIdentifierValue> ::= <printablestring>
511: "$" <optstr> "$" <optstr> "$" <optstr>
512: "$" <optstr> "$" <optstr>
513: <optstr> ::= <printablestring> | (null)
514: \end{verbatim}
515: Used to represent
516: \begin{quote}\begin{verbatim}
517: terminal $ graphic $ control $ page $ misc $ private
518: \end{verbatim}\end{quote}
519:
520: \subsection{FacsimileTelephoneNumber}
521: \index{FacsimileTelephoneNumber}
522: \begin{center}
523: \begin{tabular}{|l|}\hline
524: Standard Attributes \\ \hline
525: facsimileTelephoneNumber\\
526: \hline
527: \end{tabular}
528: \end{center}
529: \begin{verbatim}
530: <FacsimileTelephoneNumberValue> ::= <printablestring>
531: [ "$" <faxparameters> ]
532: <faxparameters> ::= <faxparm> | <faxparm>
533: "$" <faxparameters>
534: <faxparm> ::= "twoDimensional" | "fineResolution" |
535: "unlimitedLength" | "b4Length" |
536: "a3Width" | "b4Width" | "uncompressed"
537: \end{verbatim}
538: For example \verb+123-4567 $ twoDimensional+
539:
540:
541: \subsection{DeliveryMethod}
542: \index{DeliveryMethod}
543: \begin{center}
544: \begin{tabular}{|l|}\hline
545: Standard Attributes \\ \hline
546: preferredDeliveryMethod\\
547: \hline
548: \end{tabular}
549: \end{center}
550:
551: \begin{center}
552: \begin{tabular}{|l|}\hline
553: MHS Attributes \\ \hline
554: mhsPreferredDeliveryMethods\\
555: \hline
556: \end{tabular}
557: \end{center}
558:
559: \begin{verbatim}
560: <DeliveryValue> = <pdm_component> | <pdm_component> "$" <pdm>
561: pdm_component = "any" | "mhs" | "physical" | "telex" |
562: "teletex" | "g3fax" | "g4fax" | "ia5" |
563: "videotex" | "telephone"
564: \end{verbatim}
565: For example \verb+mhs $ telephone+.
566:
567: \subsection{PresentationAddress}
568: \index{presentation addresses}
569: \begin{center}
570: \begin{tabular}{|l|}\hline
571: Standard Attributes \\ \hline
572: presentationAddress\\
573: \hline
574: \end{tabular}
575: \end{center}
576: For more details see \volone/ of this manual and \cite{String.Addresses}.
577:
578: \subsection{Password}
579: \index{Password}\index{user password attribute}
580: \begin{center}
581: \begin{tabular}{|l|}\hline
582: Standard Attributes \\ \hline
583: userPassword\\
584: \hline
585: \end{tabular}
586: \end{center}
587: See Section~\ref{Passwords} for a discussion of this attribute.
588:
589: \subsection{Certificate}
590: \index{Certificate}
591: \begin{center}
592: \begin{tabular}{|l|}\hline
593: Standard Attributes \\ \hline
594: userCertificate\\
595: cACertificate\\
596: \hline
597: \end{tabular}
598: \end{center}
599:
600:
601: \begin{verbatim}
602: <CertificateValue> ::= <Algorithm> "#" <EncryptedValue> "#"
603: <Issuer> "#" <Subject> "#" <Algorithm> "#"
604: <ProtocolVersion> "#" <Serial> "#" <Validity> "#"
605: <Algorithm> "#" <EncryptedValue>
606: \end{verbatim}
607: % Give LaTeX a sporting chance of pagebreaking sensibly.
608: \begin{verbatim}
609: <Algorithm> ::= <OID> "#" <AlgorithmParameters>
610: <AlgorithmParameters> ::= | <IntegerValue> |
611: "{ASN}" <HexString>
612: <Issuer> ::= <DN>
613: <Subject> ::= <DN>
614: <ProtocolVersion> ::= <IntegerValue>
615: <Serial> ::= <IntegerValue>
616: <Validity> ::= <UTCTime> "#" <UTCTime>
617: <EncryptedValue> ::= <HexString> | <HexString> "-" <Digit>
618: \end{verbatim}
619:
620: \subsection{CertificatePair}
621: \index{CertificatePair}
622: \begin{center}
623: \begin{tabular}{|l|}\hline
624: Standard Attributes \\ \hline
625: crossCertificatePair\\
626: \hline
627: \end{tabular}
628: \end{center}
629:
630: \begin{verbatim}
631: <CertificatePairValue> ::= [<CertificateValue>] "|"
632: [<CertificateValue>]
633: \end{verbatim}
634: At least one certificate should be present, although QUIPU will not enforce
635: this.
636:
637: \subsection{CertificateList}
638: \index{CertificateList}
639: \begin{center}
640: \begin{tabular}{|l|}\hline
641: Standard Attributes \\ \hline
642: authorityRevocationList\\
643: certificateRevocationList\\
644: \hline
645: \end{tabular}
646: \end{center}
647:
648: \begin{verbatim}
649: <CertificateListValue> ::= <AlgorithmValue> "#" <Issuer> "#"
650: <AlgorithmValue> "#" <EncryptedValue> "#"
651: <UTCTime> ["#" <RevokedCertificates>]
652:
653: <RevokedCertificates> ::= <AlgorithmValue> "#"
654: <EncryptedValue>
655: [ "#" *(<RevokedCertificate> "#") ]
656:
657: <RevokedCertificate> ::= <Subject> "#" <AlgorithmValue> "#"
658: <SerialNumber> "#" <UTCTime>
659:
660: \end{verbatim}
661:
662: \subsection{Guide}
663: \index{Guide}
664: \begin{center}
665: \begin{tabular}{|l|}\hline
666: Standard Attributes \\ \hline
667: searchGuide\\
668: \hline
669: \end{tabular}
670: \end{center}
671:
672: \begin{verbatim}
673: <GuideValue> ::= [<objectClass> "#"] <Criteria>
674: <Criteria> ::= <CriteriaItem> | <CriteriaSet> |
675: "!" <Criteria>
676: <CrtieriaSet> ::= ["("] Criteria "@" CriteriaSet [")"] |
677: ["("] Criteria "|" CriteriaSet [")"]
678: <CriteriaItem> ::= ["("] <attributetype> "$" <matchType> [")"]
679: <matchType> ::= "EQ" | "SUBSTR" | "GE" | "LE" | "APPROX"
680: \end{verbatim}
681:
682: Note the use of \verb+@+ for `and', as the \verb+&+ symbol has other meaning
683: here.
684:
685: Some examples of Search Guide are:
686: \begin{quote}\begin{verbatim}
687: Person # commonName $ APPROX
688: ( organization $ EQ ) @ (commonName $ SUBSTR)
689: ( organization $ EQ ) @ ((commonName $ SUBSTR) | \
690: (commonName $ EQ))
691: \end{verbatim}\end{quote}
692:
693: \subsection{UTCTime}
694: \index{UTCTime}
695: \begin{center}
696: \begin{tabular}{|l|}\hline
697: Standard Attributes \\ \hline
698: lastModifiedTime\\
699: \hline
700: \end{tabular}
701: \end{center}
702: \begin{verbatim}
703: <UTCTimeValue> ::= <printablestring>
704: \end{verbatim}
705: The string should be formatted using the template \verb+yymmddhhmmssz+
706: where
707: \verb+yy+ represents the year;
708: \verb+mm+ represents the month;
709: \verb+dd+ represents the day;
710: \verb+hh+ represents hours;
711: \verb+mm+ represents minutes;
712: \verb+ss+ represents seconds;
713: \verb+z+ represents the timezone.
714:
715: For example the string \verb+890602093221Z+ is used to represent
716: 09:32:21 at GMT, on June~$2^{\underline{\mbox{\scriptsize nd}}}$,
717: {\oldstyle 1989}.
718:
719: \subsection{Boolean}
720: \index{Boolean}
721:
722: No attributes use this syntax.
723:
724: \begin{verbatim}
725: <BooleanValue> ::= <boolean>
726: <boolean> ::= "TRUE" | "FALSE"
727: \end{verbatim}
728:
729: \subsection{Integer}
730: \index{Integer}
731:
732: \begin{center}
733: \begin{tabular}{|l|}\hline
734: MHS Attributes \\ \hline
735: mhsDeliverableContentLength\\
736: \hline
737: \end{tabular}
738: \end{center}
739:
740: \begin{verbatim}
741: <IntegerValue> ::= <d>
742: \end{verbatim}
743:
744:
745: \section{QUIPU Attribute Syntaxes}
746:
747: \subsection{ACL}
748: \label{acl_syntax}
749: \index{acl attribute}\
750: \begin{center}
751: \begin{tabular}{|l|}\hline
752: QUIPU Attributes \\ \hline
753: accessControlList\\
754: \hline
755: \end{tabular}
756: \end{center}
757: \begin{verbatim}
758: <aclvalue> ::= <aclwho> "#" <aclwhat> "#" <acltype> ["#"]
759: <aclwho> ::= "self" | "others" | "group #" <namelist> |
760: "prefix #" <namelist>
761: <aclwhat> ::= "none" | "detect" | "compare" |
762: "read" | "add" | "write"
763: <acltype> ::= "child" | "entry" | "default" |
764: "attributes #" <oidlist>
765: <oidlist> ::= <oid> | <oidlist> "$" <oid>
766: \end{verbatim}
767: The use of ACL is discussed in Section~\ref{disc_acl}.
768:
769: \subsection{Schema}
770: \label{tree_struct}
771: \index{Schema}\index{treeStructure attribute}
772: \begin{center}
773: \begin{tabular}{|l|}\hline
774: QUIPU Attributes \\ \hline
775: treeStructure\\
776: \hline
777: \end{tabular}
778: \end{center}
779: Schema is currently represented by a single OID, and discussed fully in
780: Section~\ref{adding_data}.
781:
782: \subsection{ProtectedPassword}
783: \index{ProtectedPassword}
784: \begin{center}
785: \begin{tabular}{|l|}\hline
786: QUIPU Attributes \\ \hline
787: protectedPassword\\
788: \hline
789: \end{tabular}
790: \end{center}
791:
792: \begin{verbatim}
793: <ProtectedPasswordValue> ::= <StringValue>
794: \end{verbatim}
795:
796: The password encryption mechanism is encapsulated within the matching rules
797: for this attribute; two values are `equal' if they are identically equal or
798: if one is an encrypted representation of the other.
799:
800: Note that `equals' is not transitive for this attribute:
801: If $a = b$ and $b = c$, testing $a = c$ may give `incomparable' rather than
802: `true' as the result. The reason for this is that in some circumstances
803: properly testing
804: this attribute for equality would consume an unacceptable amount of time. The
805: security of the encryption mechanism depends on this!
806:
807: \subsection{SecurityPolicy}
808: \index{SecurityPolicy}
809: \begin{center}
810: \begin{tabular}{|l|}\hline
811: QUIPU Attributes \\ \hline
812: entrySecurityPolicy\\
813: dsaDefaultSecurityPolicy\\
814: dsaPermittedSecurityPolicy\\
815: \hline
816: \end{tabular}
817: \end{center}
818:
819: This attribute is currently handled as ``ASN'', see Section~\ref{ASN_syntax}.
820:
821: \subsection{EdbInfo}
822: \index{edbInfo attribute}
823: \begin{center}
824: \begin{tabular}{|l|}\hline
825: QUIPU Attributes \\ \hline
826: eDBinfo\\
827: \hline
828: \end{tabular}
829: \end{center}
830: \begin{verbatim}
831: <EdbInfoValue> ::= <name> "#" <name> "#" <namelist> ["#"]
832: \end{verbatim}
833: This attribute is discussed in Section~\ref{slave_update}.
834:
835:
836:
837: \section{RARE Attribute Syntaxes}
838:
839: These syntaxes are also described in \cite{thorn-na}.
840:
841: \subsection{Mailbox}
842: \index{Mailbox}
843: \begin{center}
844: \begin{tabular}{|l|}\hline
845: RARE Attributes \\ \hline
846: otherMailbox\\
847: \hline
848: \end{tabular}
849: \end{center}
850: \begin{verbatim}
851: <MailboxValue> ::= <printablestring> "$" <IA5String>
852: \end{verbatim}
853: For example \verb+internet $ [email protected]+.
854:
855: \subsection{CaseIgnoreIA5String}
856: \index{CaseIgnoreIA5String}
857: \begin{center}
858: \begin{tabular}{|l|}\hline
859: RARE Attributes \\ \hline
860: rfc822Mailbox\\
861: domainComponent\\
862: nRSTextualDescription\\
863: associatedDomain\\
864: \hline
865: \end{tabular}
866: \end{center}
867:
868: These attributes are handled as IA5Strings, but use the matching rules
869: for the CaseIgnoreString syntax.
870:
871:
872: \subsection{Photo}
873: \index{Photo}\index{ASN}
874: \begin{center}
875: \begin{tabular}{|l|}\hline
876: RARE Attributes \\ \hline
877: photo\\
878: \hline
879: \end{tabular}
880: \end{center}
881: Photos are a special case of ``ASN'' (see Section~\ref{ASN_syntax}), but the
882: output format is different.
883: Your attention is drawn to Section~\ref{file_attr} which discusses storing
884: large attributes in a separate file.
885:
886: The attribute should be encoded as a bitstring, in a G3FacsimilePage encoding
887: (as per Recommendation T.4).
888:
889: \section{THORN System Attribute Syntaxes}
890:
891: Syntaxes in this section are not recognised by Quipu,
892: and are thus handled as ASN --- see Section~\ref{ASN_syntax}.
893: However, Quipu compatible syntax handlers
894: for them are available as part of the
895: THORN\index{thorn}\cite{thorn} project.
896:
897:
898: \subsection{ThornACL}
899: \begin{center}
900: \begin{tabular}{|l|}\hline
901: THORN System Attributes \\ \hline
902: thornACL\\
903: \hline
904: \end{tabular}
905: \end{center}
906:
907: \subsection{RDType}
908: \begin{center}
909: \begin{tabular}{|l|}\hline
910: THORN System Attributes \\ \hline
911: ruleDescription\\
912: \hline
913: \end{tabular}
914: \end{center}
915:
916: \subsection{ODType}
917: \begin{center}
918: \begin{tabular}{|l|}\hline
919: THORN System Attributes \\ \hline
920: objectDescription\\
921: \hline
922: \end{tabular}
923: \end{center}
924:
925: \subsection{ADType}
926: \begin{center}
927: \begin{tabular}{|l|}\hline
928: THORN System Attributes \\ \hline
929: attributeDescription\\
930: \hline
931: \end{tabular}
932: \end{center}
933:
934: \subsection{KnowledgeReference}
935: \begin{center}
936: \begin{tabular}{|l|}\hline
937: THORN System Attributes \\ \hline
938: knowledgeReference\\
939: \hline
940: \end{tabular}
941: \end{center}
942:
943: \subsection{NRSInformation}
944: \begin{center}
945: \begin{tabular}{|l|}\hline
946: THORN System Attributes \\ \hline
947: forwardOnlyInformation\\
948: reverseOnlyInformation\\
949: forwardAndReverseInformation\\
950: \hline
951: \end{tabular}
952: \end{center}
953: (There is not a syntax handler for this from THORN [yet!].)
954:
955: \section{MHS Attribute Syntaxes}
956:
957: Syntaxes in this section are not currently recognised by Quipu,
958: and are thus handled as raw ASN (see Section~\ref{ASN_syntax}).
959:
960: \subsection{ORAddress}
961: \index{ORAddress}
962: \begin{center}
963: \begin{tabular}{|l|}\hline
964: MHS Attributes \\ \hline
965: mhsORaddresses\\
966: \hline
967: \end{tabular}
968: \end{center}
969:
970:
971: \subsection{ORName}
972: \index{ORName}
973: \begin{center}
974: \begin{tabular}{|l|}\hline
975: MHS Attributes \\ \hline
976: mhsDLMembers\\
977: \hline
978: \end{tabular}
979: \end{center}
980:
981:
982: \subsection{DLSubmitPermissions}
983: \index{DLSubmitPermissions}
984: \begin{center}
985: \begin{tabular}{|l|}\hline
986: MHS Attributes \\ \hline
987: mhsDLSubmitPermissions\\
988: \hline
989: \end{tabular}
990: \end{center}
991:
992:
993: \section{ASN}
994: \label{ASN_syntax}
995: As the preceding Sections in this Chapter have mentioned, not all syntaxes
996: have a string representation defined by Quipu, so are represented by the raw
997: ASN.
998:
999: An example would be:
1000: \begin{verbatim}
1001: photo= {ASN} 0308207b4001488001fd...
1002: \end{verbatim}
1003: where \verb+0308+\ldots is a hexadecimal representation (encoded using the
1004: ``Basic Encoding Rules'') of the ASN.1 defined attribute.
1005:
1006: Attributes stored as ASN.1, will usually be matched correctly, with
1007: the following exceptions:
1008:
1009: \begin{itemize}
1010: \item
1011: There is an IMPLICIT Set in the ASN.1. The DSA will not detect the
1012: set, and so will not know to match components in arbitrary order.
1013:
1014: \item
1015: If special matching rules apply: for example, special rules to
1016: determine equivalence of telephone numbers. Such rules would need
1017: to be represented by code in the DSA.
1018: \end{itemize}
1019:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.