The X.500 String Representation of Standard Attribute Syntaxes
obsoleted by
- rfc-1778 — The String Representation of Standard Attribute Syntaxes
Extracted elements (31)
Many of the attribute syntax encodings defined in this document are adapted from those used in the QUIPU X.500 implementation, acknowledging prior art from that implementation's syntax specifications.
When encoding OIDs, object descriptors should be preferred over numeric dotted notation to the greatest extent possible. For example, 'organizationName' is preferable to 'ds.4.10', which is preferable to '2.5.4.10'. This improves human readability of encoded directory values.
Encoding rules defined for a given attribute syntax must produce octet strings. To the greatest extent possible, encoded octet strings should be usable in their native encoded form for display purposes.
Encoding rules for attribute syntaxes defining non-binary values should produce strings that can be displayed with little or no translation by clients implementing the lightweight directory protocols.
cACertificate values are encoded identically to userCertificate values.
caseIgnoreStringSyntax, caseExactStringSyntax, printableStringSyntax, numericStringSyntax, octetStringSyntax, caseIgnoreIA5String, iA5StringSyntax, and t61StringSyntax are all encoded as the string value itself with no transformation.
Fax attribute values are encoded as octet strings containing Group 3 Fax images as defined in CCITT Recommendation T.4.
Photo attribute values are encoded as octet strings containing JPEG images in the JPEG File Interchange Format (JFIF) as described in the JFIF 1.02 specification.
PresentationAddress values are encoded using the representation described in RFC 1278 (A String Representation for Presentation Addresses).
userPasswordSyntax values are encoded as if they were of type octetStringSyntax.
uTCTimeSyntax values are encoded as Printable Strings containing a UTCTime value.
Values of type distinguishedNameSyntax are encoded using the representation defined in RFC 1485 (A String Representation of Distinguished Names).
Values of type Undefined are encoded as if they were values of type Octet String.
Security issues are not discussed in this memo. No security analysis of the attribute syntax encoding rules is provided.
authorityRevocationList is encoded as '<signature> '#' <issuer> '#' <utc-time> [ '#' <revoked-certificates> ]' where each revoked certificate entry contains subject, algorithm, serial, and utc-time separated by '#'.
Auxiliary BNF primitives defined for use across all syntax encodings: <a> (letters), <d> (digits), <hex-digit>, <k> (letters/digits/hyphen), <p> (printable chars), <CRLF> (0x0A), and derived types <letterstring>, <numericstring>, <keystring>, <anhstring>, <printablestring>, <space>.
booleanSyntax values are encoded as the literal string "TRUE" or "FALSE": <boolean> ::= "TRUE" | "FALSE".
caseExactListSyntax is encoded as one or more Case Exact String values separated by '$': <caseexactlist> ::= <caseexactstring> | <caseexactstring> '$' <caseexactlist>.
caseIgnoreListSyntax is encoded as one or more Case Ignore String values separated by the '$' character: <caseignorelist> ::= <caseignorestring> | <caseignorestring> '$' <caseignorelist>.
crossCertificatePair values are encoded as two certificate values separated by '|': <certificate> '|' <certificate>, where each certificate follows the userCertificate BNF.
deliveryMethod values are encoded as one or more '$'-separated tokens from the set: 'any', 'mhs', 'physical', 'telex', 'teletex', 'g3fax', 'g4fax', 'ia5', 'videotex', 'telephone'.
FacsimileTelephoneNumber is encoded as <printablestring> [ '$' <faxparameters> ] where <faxparm> tokens include 'twoDimensional', 'fineResolution', 'unlimitedLength', 'b4Length', 'a3Width', 'b4Width', 'uncompressed'.
Guide (searchGuide) values encode an optional object class OID followed by a criteria expression using '&', '|', '!' operators and criteria-items of the form <attributetype> '$' <match-type> where match-type is one of EQ, SUBSTR, GE, LE, APPROX.
integerSyntax values are encoded as the decimal character representation of their value (e.g., digit '1' is represented by character '1').
mailPreferenceOption values are encoded as one of three fixed tokens: "NO-LISTS", "ANY-LIST", or "PROFESSIONAL-LISTS".
objectIdentifierSyntax values are encoded as <descr>, <descr> '.' <numericoid>, or <numericoid>. Object descriptors should be preferred over numeric OIDs where assigned and known.
otherMailboxSyntax is encoded as <mailbox-type> '$' <mailbox>, where mailbox-type is a Printable String (e.g., 'Internet' or 'MCIMail') and mailbox is an IA5 String containing the actual mailbox address.
PostalAddress values are encoded as T61String components separated by '$': <t61string> | <t61string> '$' <postal-address>, where each component is an individual address line.
teletexTerminalIdentifier values are encoded as one or more printable strings separated by '$': <printablestring> 0*( '$' <printablestring>), where each component is a portion of the teletex terminal identifier.
telexNumberSyntax values are encoded as three '$'-separated printable strings: <actual-number> '$' <country> '$' <answerback>, representing the TELEX number, country code, and terminal answerback code.
userCertificate is encoded as '<signature> '#' <issuer> '#' <validity> '#' <subject> '#' <public-key-info>', where validity is '<not-before-time> '#' <not-after-time>' and public-key-info is '<algorithm-id> '#' <encrypted-value>'.