|
|
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.