Annotation of 43BSDReno/contrib/isode-beta/doc/manual/q-syntax.tex, revision 1.1.1.1

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: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.