💾 Archived View for gemini.bortzmeyer.org › rfc-mirror › rfc1488.txt captured on 2023-09-28 at 22:33:23.
⬅️ Previous capture (2021-11-30)
-=-=-=-=-=-=-
Network Working Group T. Howes Request for Comments: 1488 University of Michigan S. Kille ISODE Consortium W. Yeong Performance Systems International C. Robbins NeXor Ltd. July 1993 The X.500 String Representation of Standard Attribute Syntaxes Status of this Memo This RFC specifies an IAB standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "IAB Official Protocol Standards" for the standardization state and status of this protocol. Distribution of this memo is unlimited. Abstract The Lightweight Directory Access Protocol (LDAP) [9] requires that the contents of AttributeValue fields in protocol elements be octet strings. This document defines the requirements that must be satisfied by encoding rules used to render Directory attribute syntaxes into a form suitable for use in the LDAP, then goes on to define the encoding rules for the standard set of attribute syntaxes defined in [1,2] and [3]. 1. Attribute Syntax Encoding Requirements This section defines general requirements for lightweight directory protocol attribute syntax encodings. All documents defining attribute syntax encodings for use by the lightweight directory protocols are expected to conform to these requirements. The 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. In particular, 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. Howes, Kille, Yeong & Robbins [Page 1] RFC 1488 X.500 Syntax Encoding July 1993 2. Standard Attribute Syntax Encodings For the purposes of defining the encoding rules for the standard attribute syntaxes, the following auxiliary BNF definitions will be used: <a> ::= 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z' <d> ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' <hex-digit> ::= <d> | 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' <k> ::= <a> | <d> | '-' <p> ::= <a> | <d> | ''' | '(' | ')' | '+' | ',' | '-' | '.' | '/' | ':' | '?' | ' ' <CRLF> ::= The ASCII newline character with hexadecimal value 0x0A <letterstring> ::= <a> | <a> <letterstring> <numericstring> ::= <d> | <d> <numericstring> <keystring> ::= <a> | <a> <anhstring> <anhstring> ::= <k> | <k> <anhstring> <printablestring> ::= <p> | <p> <printablestring> <space> ::= ' ' | ' ' <space> 2.1. Undefined Values of type Undefined are encoded as if they were values of type Octet String. 2.2. Case Ignore String A string of type caseIgnoreStringSyntax is encoded as the string value itself. Howes, Kille, Yeong & Robbins [Page 2] RFC 1488 X.500 Syntax Encoding July 1993 2.3. Case Exact String The encoding of a string of type caseExactStringSyntax is the string value itself. 2.4. Printable String The encoding of a string of type printableStringSyntax is the string value itself. 2.5. Numeric String The encoding of a string of type numericStringSyntax is the string value itself. 2.6. Octet String The encoding of a string of type octetStringSyntax is the string value itself. 2.7. Case Ignore IA5 String The encoding of a string of type caseIgnoreIA5String is the string value itself. 2.8. IA5 String The encoding of a string of type iA5StringSyntax is the string value itself. 2.9. T61 String The encoding of a string of type t61StringSyntax is the string value itself. 2.10. Case Ignore List Values of type caseIgnoreListSyntax are encoded according to the following BNF: <caseignorelist> ::= <caseignorestring> | <caseignorestring> '