diff options
Diffstat (limited to 'doc/rfc/rfc2157.txt')
-rw-r--r-- | doc/rfc/rfc2157.txt | 2747 |
1 files changed, 2747 insertions, 0 deletions
diff --git a/doc/rfc/rfc2157.txt b/doc/rfc/rfc2157.txt new file mode 100644 index 0000000..6c7848b --- /dev/null +++ b/doc/rfc/rfc2157.txt @@ -0,0 +1,2747 @@ + + + + + + +Network Working Group H. Alvestrand +Request for Comments: 2157 UNINETT +Category: Standards Track January 1998 + + + Mapping between X.400 and RFC-822/MIME Message Bodies + +Status of this Memo + + This document specifies an Internet standards track protocol for the + Internet community, and requests discussion and suggestions for + improvements. Please refer to the current edition of the "Internet + Official Protocol Standards" (STD 1) for the standardization state + and status of this protocol. Distribution of this memo is unlimited. + +Copyright Notice + + Copyright (C) The Internet Society (1998). All Rights Reserved. + +Table of Contents + + 1 Introduction ........................................... 2 + 1.1 Glossary ............................................. 3 + 2 Basic rules for body part conversion ................... 4 + 2.1 Generating the IPM Body from MIME .................... 5 + 2.2 Generating the MIME Body from the IPMS.Body .......... 6 + 2.3 Mapping the EMA FTBP parameters ...................... 7 + 2.3.1 Mapping GraphicStrings ............................. 7 + 2.3.2 Mapping specific parameters ........................ 7 + 2.3.3 Summary of FTBP elements generated ................. 10 + 2.4 Information that is lost when mapping ................ 11 + 3 Encapsulation of body parts ............................ 11 + 3.1 Encapsulation of MIME in X.400 ....................... 12 + 3.1.1 FTBP encapsulating body part ....................... 12 + 3.1.2 BP15 encapsulating body part ....................... 13 + 3.1.3 Encapsulation using IA5 (HARPOON) .................. 15 + 3.1.4 Content passing using BP14 ......................... 16 + 3.2 Encapsulating X.400 Body Parts in MIME ............... 16 + 3.3 Encapsulating FTBP body parts in MIME ................ 17 + 4 User control over the gateway choice ................... 18 + 4.1 Conversion from MIME to X.400 ........................ 18 + 4.2 Conversion from X.400 to MIME ........................ 20 + 5 The equivalence registry ............................... 21 + 5.1 What information one must give about a mapping + ..................................................... 21 + 5.2 Equivalence summary for known X.400 and MIME + Types ................................................ 22 + 5.3 MIME to X.400 Table .................................. 23 + + + +Alvestrand Standards Track [Page 1] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + 5.4 X.400 to MIME Table .................................. 23 + 5.5 Use of OBJECT IDENTIFIERs and ASN.1 MACROS ........... 24 + 6 Defined Equivalences ................................... 26 + 6.1 IA5Text - text/plain ................................. 26 + 6.2 GeneralText - text/plain (ISO-8859) .................. 27 + 6.3 BilaterallyDefined - application/octet-stream + ...................................................... 29 + 6.4 FTBP EMA Unknown Attachment - + application/octet-stream ............................. 29 + 6.5 MessageBodyPart - message/RFC822 ..................... 30 + 6.6 MessageBodyPart - multipart/* ........................ 31 + 6.7 Teletex - Text/Plain (Teletex) ....................... 32 + 7 Body parts where encapsulation is recommended .......... 33 + 7.1 message/external-body ................................ 34 + 7.2 message/partial ...................................... 35 + 7.3 multipart/signed ..................................... 35 + 7.4 multipart/encrypted .................................. 36 + 8 Conformance requirements ............................... 37 + 9 Security Considerations ................................ 38 + 10 Author's Address ...................................... 38 + 11 Acknowledgements ...................................... 38 + References .............................................. 38 + APPENDIXES .............................................. 41 + Appendix A: Escape code normalization ................... 41 + Appendix B: OID Assignments ............................. 44 + Appendix C: Registration information for the + Teletex character set ............................... 46 + Appendix D: IANA Registration form for new + mappings ................................................ 48 + Full Copyright Statement ................................. 49 + +1. Introduction + + This document is a companion to [MIXER], which defines the principles + and translation of headers for interworking between MIME-based RFC- + 822 mail and X.400 mail. + + This document defines how to map body parts of X.400 messages into + MIME entities and vice versa, including the handling of multipart + messages and forwarded messages. + + + + + + + + + + + +Alvestrand Standards Track [Page 2] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + +1.1. Glossary + + The following terms are defined in this document: + + Body part + Part of a message that has a unique type. This term comes from + X.400; the corresponding term in MIME (RFC 2046) is limited to use + in parts of a multipart message; the term "body" may correspond + better. + + Content-type + Type information indicating what the content of a body part + actually is. This term comes from MIME; the corresponding X.400 + term is "body part type". + + Mapping + (noun): A description of how to transform an X.400 body part into + a MIME body part, or how to transform a MIME body part into an + X.400 body part. + + Equivalence + A set of two mappings that taken together provide a lossless + conversion between an X.400 body part and a MIME body part + + Encapsulation + The process of wrapping something from one of the mail systems in + such a way that it can be carried inside the other mail system. + When encapsulating, it is not expected that the other mail system + can make reasonable sense of the body part, but a gateway back + into the first system will always be able to convert the body part + without loss back to its original format. + + HARPOON encapsulation + The encapsulating of a MIME body part by putting it inside an IA5 + body with all headers and encoding intact. First described in RFC + 1496 [HARPOON]. + + Tunneling + What happens when one gateway encapsulates a message and sends it + to another gateway that decapsulates it. The hope is that this + will cause minimal damage to the message in transit. + + DISCUSSION + At many points in this document, the author has found it useful to + include material that explains part of the reasoning behind the + specification. These sections all start with DISCUSSION: and + continue to the next numbered section heading; they do not dictate + any additional requirements on a gateway. + + + +Alvestrand Standards Track [Page 3] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + The words MUST, SHOULD and MAY, when capitalized, are used as defined + in RFC 2119 [MUST]. + +2. Basic rules for body part conversion + + The basic approach for translating body parts is described in section + 2.1 and 2.2. + + Chapter 3 gives details on "encapsulation", which allows you to be + certain that no information is lost even when unknown types are + encountered. + + Chapter 6 gives the core mappings for various body parts. + + The conformance requirements in chapter 8 describe what the minimum + conformance for a MIXER gateway is with respect to body part + conversion. + + DISCUSSION: + + At the moment both the MIME and the X.400 worlds seem to be in a + stable state of flux with regards to carrying around stuff that is + not text. In such a situation, there is little chance of defining a + mapping between them that is the best for all people, all of the + time. For this reason, this specification allows a gateway + considerable latitude in deciding exactly what conversion to apply. + + The decision taken by the gateway may be based on various information + sources: + + (1) If the gateway knows what body parts or content + types the recipient is able to handle, or has + registered a particular set of preferences for a + user, and knows how to convert the message + reasonably to those body parts, the gateway may + choose to convert body parts in the message to + those types only. + + (2) If the gateway gets indications (via special + headers or heading-extensions defined for the + purpose) that the sender wanted a particular + representation on the "other side", and the gateway + is able to satisfy the request, it may do so. Such + a mechanism is defined in chapter 4 of this + document. + + + + + + +Alvestrand Standards Track [Page 4] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + (3) If the gateway gets a message that might be + appropriate to send as one out of several types, + but where the typing information does not tell you + which one to use (like an X.400 BP14, FTAM "just a + file", or MIME application/octet-stream), it may + apply heuristics like looking at content or looking + at filenames to figure out how to deal with the + message. + + (4) If the gateway knows that the next hop for the + message has limited capabilities (like X.400/84), + it may choose to perform conversions appropriate + for that medium. + + (5) Where no mapping is known by the gateway, it + may choose to drop the body part, reject the + message, or encapsulate the body part as + described in chapter 3. The choice may be + configurable, but a conformant MIXER gateway MUST + be able to be configured for encapsulation. + + In many cases, a message that goes SMTP->X.400->SMTP will arrive + without loss of information. + + In some cases, the reverse translation may not be possible, or two + gateways may choose to apply different translations, based on the + criteria above, leading to an apparently inconsistent service. + + In addition, service will vary because some gateways will have + implemented conversions not implemented by other gateways. + + This is believed to be unavoidable. + +2.1. Generating the IPM Body from MIME + + When converting the body of a message from MIME to X.400, the + following steps are taken: + + If the header does not contain a 822.MIME-Version field, then + generate an IPMS.Body with a single IPMS.BodyPart of type + IPMS.IA5TextBodyPart containing the body of the RFC 822 message with + IPMS.IA5TextBodyPart.parameters.repertoire set to the default (IA5). + + If 822.MIME-Version is present, the body is analyzed as a MIME + message and the body is converted according to the mappings + configured and implemented in the gateway. + + + + + +Alvestrand Standards Track [Page 5] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + +2.2. Generating the MIME Body from the IPMS.Body + + When converting the body of a message from X.400 to MIME, the + following steps are taken: + + If there is more than one body part, and the first body part is IA5 + and starts with the string "RFC-822-Headers:" as the first line, + then the remainder of this body part shall be appended to the RFC 822 + header. This relies upon the theory that this body part has been + generated according to Appendix B of MIXER. A gateway shall check + the consistency and syntax of this body part, to ensure that the + resulting message is conformant with RFC 822. + + If the remaining IPMS.Body consists of a single IPMS.Bodypart, there + are three possibilities. + + (1) If it is of type IPMS.IA5Text, and the first line + is "MIME-Version: 1.0", it is assumed to be a + HARPOON-encapsulated body part. The complete body + content is then appended to the headers; the + separating blank line is inside the message. If an + RFC 822 syntax error is discovered inside the + message, it may be mapped directly as described + below instead. + + + (2) If it is of type IPMS.IA5Text, then this is mapped + directly and the default MIME encoding (7bit) is + used, unless very long lines or non-ASCII or + control characters are found in the body part, in + which case Quoted-Printable SHOULD be used. + + + (3) All other types are mapped according to the + mappings configured and implemented in the gateway. + + + If the IPMS.Body contains multiple IPMS.Bodypart fields, then a MIME + message of content type multipart is generated. If all of the body + parts are messages, then this is multipart/digest. Otherwise it is + multipart/mixed. The components of the multipart are generated in + the same order as in the IPMS.Body. + + Each component is mapped according to the mappings configured and + implemented in the gateway; any IA5 body parts are checked to see if + they are HARPOON mappings, as described above. + + + + + +Alvestrand Standards Track [Page 6] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + +2.3. Mapping the EMA FTBP parameters + + DISCUSSION: + + EMA has defined a profile for use of the File Transfer Body Part + (FTBP). [MAWG] + + New mappings are expected to use this as the mechanism for carrying + body parts, and since it is important to have a consistent mapping + for the special FTBP parameters, these are defined here. + + The mapping of the body will depend on the content-type in MIME and + on the application-reference in FTBP, and is not specified here. + + However, in many cases, we expect that the translation will involve + simply copying the octets from one format to the other; that is, "no + conversion". + +2.3.1. Mapping GraphicStrings + + Some parameters of the EMA Profile are encoded as ASN.1 + GraphicStrings, which are troublesome because they can contain any + ISO registered graphic character set. To map these to ASCII for use + in mail headers, the gateway may either: + + (1) Use the RFC 2047 [MIME-HDR] encoding mechanism to + create appropriate encoded-words for the headers + involved. Note that in some cases, such as within + Content-Disposition filenames, the encoded-words + must be in quotes, which is not the normal usage of + encoded-words. + + (2) Apply the normalization procedure given in Appendix + A to identify the ASCII characters of the string, + and replace all non-ASCII characters with the + question mark (?). + + Both procedures are valid for MIXER gateways; the simplified + procedure of ignoring escape sequences and bit-stripping the result + is NOT valid. + +2.3.2. Mapping specific parameters + + The following parameters are mapped in both directions: + + Content-ID + + The mapping of this element is complex. + + + +Alvestrand Standards Track [Page 7] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + The Content-ID is encoded as an IPM.MessageIdentifier and entered + into the FTBP.FileTransferParameters.related-stored-file. file- + identifier.cross-reference.message-reference. + + FTBP.FileTransferParameters.related-stored-file. + relationship.descriptive-relationship is set to the string + "Internet MIME Body Part". + + FTBP.FileTransferParameters.related-stored-file. file- + identifier.cross-reference.application-crossreference is set to a + null OCTET STRING. + + The reverse mapping is only performed if the + FTBP.FileTransferParameters.related-stored-file. + relationship.descriptive-relationship has the string value + "Internet MIME Body Part". + + Content-Description + + The value of this field is mapped to and from the first string in + FTBP.FileTransferParameters.environment.user-visible-string. + + Content-Disposition + + This field is defined in [CDISP]. It has multiple components; the + handling of each component is given below. + + The "disposition" component is ignored on MIME -> X.400 mapping, + and is always "attachment" on X.400 -> MIME mapping. + + C-D: filename + + The filename component of the C-D header is mapped to and from + FileTransferParameters.file-attributes.pathname. + + The EBNF.disposition-type is ignored when creating the FTBP + pathname, and always set to "attachment" when creating the + Content-Disposition header. For example: + + Content-Disposition: attachment; filename=dodo.doc + + or + + Content-Disposition: attachment; filename=/etc/passwd + + + + + + + +Alvestrand Standards Track [Page 8] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + The filename will be carried as a single incomplete-pathname + string. No special significance is assumed for the characters "/" + and "\". Note that normal security precautions MUST be taken in + using a filename on a local file system; this should be obvious + from the second example. + + This is done to be conformant with the EMA Profile. + + C-D: Creation-date + + Mapped to and from FileTransferParameters.file-attributes.date- + and-time-of-creation + + For this and all other date fields, the RFC-822 date format is + used (822.date-time). Note that the parameter syntax of [CDISP] + requires that all dates be quoted! + + C-D: Modification-date + + Mapped to and from FileTransferParameters.file-attributes.date- + and-time-of-last-modification + + C-D: Read-date + + Mapped to and from FileTransferParameters.file-attributes.date- + and-time-of-last-read-access + + C-D: Size + + Mapped to and from FileTransferParameters.file-attributes.object- + size. If the value is "no-value-available", the component is NOT + generated. + + Other RFC-822 headers + + Mapped to extension in FTBP.FileTransferParameters.extensions + using the rfc-822-field HEADING-EXTENSION from [MIXER]. + + NOTE: + The set of headers that are mapped will depend on the placement of + the body part (single body part or multipart). + When it is the only body of a message, headers starting with + "content-" SHOULD be put into the FTAM extension, and all other + headers should be put into the IPMS extension for the message. + When it is a single bodypart of a multipart, ALL headers on the + body part are included, since there is nowhere else to put them. + Note that only headers that start with "content-" have defined + semantics in this case. + + + +Alvestrand Standards Track [Page 9] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + EMA NOTE + + The EMA profile, version 1.5, specifies that handling of + extensions is Optional for reception. This means that some non- + MIXER gateways may not implement handling of this field, and some + UAs may not have the possibility of showing the content of this + field to the user. + + An alternative approach using + FTBP.FileTransferParameters.environment.user-visible-string was + suggested to EMA, and the EMA MAWG recommended in its April 1996 + conference that the IETF MIXER group should rather choose this + approach. + +2.3.3. Summary of FTBP elements generated + + This is a summary of the preceding section, and does not add new + information. + + The following elements of the FTBP parameters are mapped or used (the + rightmost column gives their status in the EMA profile; M=Mandatory, + O=Optional, R=Recommended for Origination/Receipt): + +FileTransferParameters M/M + Related-Stored-File O/O + file-identifier + cross-reference + application-crossreference NULL + message-reference Content-ID + descriptive-relationship Used as marker + contents-type Must be unstructured-binary M/M + environment M/M + application-reference Selects mapping M/M + user-visible-string Content-description R/M + file-attributes + pathname C-D: Filename R/M + date-and-time-of-creation C-D: Creation-Date O/O + date-and-time-of-last-modification C-D: Modification-Date R/M + date-and-time-of-last-read-access C-D: Read-Date O/O + object-size C-D: Size R/M + extensions Other headers O/O + + All other elements of the FTBP parameters are discarded. + + + + + + + + +Alvestrand Standards Track [Page 10] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + NOTE: There is ongoing work on defining a more complete + mapping between FTBP headers and a set of RFC-822 headers. + A gateway MAY choose to support the larger set once it is + available, but MUST support this limited set. + +2.4. Information that is lost when mapping + + MIME defines fields which add information to MIME contents. Two of + these are "Content-ID", and "Content-Description", which have special + rules here, but MIME allows new fields to be defined at any time. + + The possibilities are limited about what one can do with this + information: + + (1) When using encapsulation, the information can be + preserved + + (2) When using mapping to FTBP, the information can be + preserved in the FileTransferParameters.extensions + defined for that purpose. + + (3) When mapping to a single-body message, the + information can be preserved as P22 header + extensions + + (4) When mapping to other body part types, the + information must be discarded. + +3. Encapsulation of body parts + + Where no mapping is possible, the gateway may choose any of the + following alternatives: + + - Discard the body part, leaving a "marker" saying what + happened + + - Reject the message + + - "Encapsulate" the body part, by wrapping it in a body + part defined for that purpose in the other mail + system + + The choice to be made should be configurable in the gateway, and may + depend on both policy and knowledge of the recipient's capabilities. + + + + + + + +Alvestrand Standards Track [Page 11] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + +3.1. Encapsulation of MIME in X.400 + + Four body parts are defined here to encapsulate MIME body parts in + X.400. + + This externally-defined body part is backwards compatible with RFC + 1494. The FTBP body part is compatible with the EMA MAWG document + [MAWG], version 1.5, but has some extensions, in particular the one + for extra headers. + + The imagined scenarios for each body part are: + + FTBP For use when sending to recipients that can handle + generic FTBP, and for tunnelling MIME to a MIME UA + + BP15 For use when tunnelling MIME to a MIME UA through an + X.400(88) network, or to UAs that have been written + to RFC 1494 + + IA5 For use when tunneling MIME to a MIME UA through an + X.400 network, where some of the links may involve + X.400(84). + + BP14 For use when the recipient may be an X.400(84) UA + with BP14 handling capability, and the loss of + information in headers is not regarded as important. + + but the gateway is free to use any method it finds appropriate in any + situation. + + FTBP is expected to be the most useful body part in sending to + X.400(92) systems, while the BP14 content passing is primarily useful + for sending to X.400(84) systems. + +3.1.1. FTBP encapsulating body part + + This body part utilizes the fundamental assumption in MIME that all + message content can be legally and completely represented by a single + octet stream, the "canonical format". + + The FTBP encapsulating body part is defined by the application- + reference id-mime-ftbp-data; all headers are mapped to the FTBP + headers, including putting the "Content-type:" header inside the FTBP + ExtensionsField. + + Translation from the MIME body part is done by: + + - Undoing the content-transfer-encoding + + + +Alvestrand Standards Track [Page 12] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + - Setting the "FileTransferData.FTdata.value.octet- + aligned" to the resulting string of octets + + - Putting the appropriate parameters into the headers. + + Reversing the translation is done by: + + - Extracting the headers + + - Applying an appropriate content-transfer-encoding to + the body. If this is for some reason different from + the content-transfer-encoding: header retrieved from + the headers, the old one must be deleted. + + This mapping is lossless, and therefore counts as "no conversion". + + Note that this mapping does not work with multipart types; the + multipart must first be mapped to a ForwardedIPMessage. + +3.1.2. BP15 encapsulating body part + + This section defines an extended body part, based on body part 15, + which may be used to hold any MIME content. + + mime-body-part EXTENDED-BODY-PART-TYPE + PARAMETERS MimeParameters + IDENTIFIED BY id-mime-bp-parameters + DATA OCTET STRING + ::= id-mime-bp-data + + MimeParameters ::= + SEQUENCE { + content-type IA5String, + content-parameters SEQUENCE OF + SEQUENCE { + parameter IA5String + parameter-value IA5String + } + other-header-fields RFC822FieldList + } + + The OBJECT IDENTIFIERS id-mime-bp-parameter and id-mime-bp-data are + defined in Appendix B. A MIME content is mapped onto this body part. + The MIME headers of the body part are mapped as follows: + + RFC822FieldList is defined in Appendix L of [MIXER]. + + + + + +Alvestrand Standards Track [Page 13] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + Content-Type: + The "type/subtype" string is mapped to + MimeParameters.content-type. + + For each "parameter=value" string create a + MimeParameters.content-parameters element. The + MimeParameters.content-Parameters.parameter field is + set to the parameter and the MimeParameters.content- + parameters.parameter-value field is set to the value. + + Quoting is preserved in the parameter-value. + + Other + Take all other headers and create + MimeParameters.other-header-fields. + The MIME-version, content-type and content-transfer- + encoding fields are NOT copied. + + NOTE: + The set of headers that are mapped will depend on the + placement of the body part (single body part or + multipart). + When it is the only body of a message, headers + starting with "content-" SHOULD be put into the + other-header-fields, and all other headers should be + put into the IPMS extension for the message. + When it is a single bodypart of a multipart, ALL + headers on the body part are included, since there is + nowhere else to put them. Note that only headers that + start with "content-" have defined semantics in this + case. + + The body is mapped as follows: + + Convert the MIME body part into its canonical form, as specified in + Appendix H of MIME [MIME]. This canonical form is used to generate + the mime-body-part.data octet string. + + The Parameter mapping may be used independently of the body part + mapping (e.g., in order to use a different encoding for a mapped MIME + body part). + + This body part contains all of the MIME information, and so can be + mapped back to MIME without loss of information. + + The OID id-mime-bp-data is added to the Encoded Information Types of + the envelope. + + + + +Alvestrand Standards Track [Page 14] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + This body part is completely compatible with RFC 1494. + + When converting back to a MIME body part, the gateway is responsible + for: + + (1) Selecting an appropriate content-transfer-encoding, + and deleting any content-transfer-encoding header + from the other-header-fields + + (2) Adding quotes to any parameters that need them (but + not adding quotes to parameters that are already + quoted) + + (3) Removing any content-type field that is left in the + RFC822FieldList of the message that is redundant or + conflicting with the one from the mime-body-part + + (4) Make sure that on multipart messages, the boundary + string actually used is reflected in the boundary- + parameter of the content-type header, and does not + occur within the body of the message. + +3.1.3. Encapsulation using IA5 (HARPOON) + + This approach is the one taken in RFC 1496 - HARPOON - for tunneling + any MIME body part through X.400/84 networks. It has proven rather + unhelpful for bringing information to X.400 users, but preserves all + the information of a MIME body part. + + The following IA5Text body part is made: + + - Content = IA5String + + - First bytes of content: (the description is in US + ASCII, with C escape sequences used to represent + control characters): + + MIME-version: <version>\r\n + Content-type: <the proper MIME content type>\r\n + Content-transfer-encoding: <7bit, quoted-printable or base64>\r\n + <Possibly other Content headings here, terminated by\r\n> + \r\n + <Here follows the bytes of the content, encoded + in the proper encoding> + + All implementations MUST place the MIME-version: header first in the + body part. Headers that are placed by [MIXER] into other parts of the + message MUST NOT be placed in the MIME body part. + + + +Alvestrand Standards Track [Page 15] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + This encapsulation may also be applied to subtypes of multipart, + creating a single IA5 body part that contains a single multipart/*, + which in turn may contain multiple MIME body parts. + +3.1.4. Content passing using BP14 + + This is described in this section because it is at the same + conceptual level as encapsulation. It is a lossy transformation; it + is impossible to reconstruct the MIME type information from it. + + Nevertheless, there is a demand for such functionality. + + This "encapsulation" simply strips off all headers, undoes the + content-transfer-encoding, and creates a BilaterallyDefined body part + (BP14) from the resulting octet stream. + + No reverse translation is defined; when a BP14 arrives at a MIXER + gateway, it will be turned into an application/octet-stream according + to chap. 6.3 + +3.2. Encapsulating X.400 Body Parts in MIME + + This section specifies a generic mechanism to map X.400 body parts to + a MIME content. This allows for the body part to be tunneled through + MIME. It may also be used directly by an appropriately configured + MIME UA. + + This content-type is defined to carry any X.400 extended body part. + The mapping of all standard X.400 body parts is defined in this + document. The content-type field is "application/x400-bp". The + parameter is defined by the EBNF: + + mime-parameter = "bp-type=" ( object-identifier / 1*DIGIT= + + If the body is a basic body part, the bp-type parameter is set to the + number of the body part's context-specific tag, that is, the tag of + the IPMS.Body.BodyPart component. + + If the body is an Extended Body Part, the EBNF.object-dentifier is + set to the OBJECT IDENTIFIER from IPMS.body.externally- + defined.data.direct-reference. + + For example, a basic VideotexBodyPart will have + + Content-type=application/x400-bp; bp-type=6 + + whilst a Extended Videotex body part will have + + + + +Alvestrand Standards Track [Page 16] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + Content-type=application/x400-bp; bp-type=2.6.1.4.5 + + The body contains the raw ASN.1 IPM body octet stream, that is, the + BER encoding of the IPM.Body.BodyPart, including the initial tag + octet. The content may use a content-transfer-encoding of either + base64 or quoted-printable when carried in 7-bit MIME. It is + recommended to use the one which gives the more compact encoding of + the data. If this cannot be determined, Base64 is recommended. No + attempt is made to turn the parameters of Extended Body Parts into + MIME parameters, as this cannot be done in a general manner. + + For extended body parts, the + +3.3. Encapsulating FTBP body parts in MIME + + The File Transfer Body Part is believed to be important in the future + as "the" means of carrying well-identified data in X.400 networks. + + They also share the property (at lest when limited to the EMA MAWG + functional profile) of having a well-defined data part that is always + representable as a sequence of bytes. + + This conversion will have to fail, and the x400-bp encapsulation used + instead, if: + + - FileTransferData has more than one element + + - Contents-type is not unstructured-binary + + - Parameters that are not mappable, but important, are + present (like Compression, which EMA doesn't + recommend). + + Otherwise, it can be encapsulated in MIME by: + + - Creating the "content-type" value by forming the + string "application/x-ftbp." and appending the + numbers of the OID found in + FileTransferParameters.environment.application- + reference.registered-identifier + + - Mapping all other parameters according to the + standard FTBP parameter mapping + + - Applying an appropriate content-transfer-encoding to + the data contained in FileTransferData.value.encoding + + + + + +Alvestrand Standards Track [Page 17] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + DISCUSSION: + + The choice of the somewhat strange, and by necessity unregistered, + MIME type "application/x-ftbp.n.n.n.n" is because for any concrete + example of this usage, it will be easy to configure any MIME reader + to take advantage of the identification. If the MIME type + registration rules are ever changed to allow the registration of a + namespace, rather than just of names, the "x-" can be deleted, and + the types can be "application/ftbp.n.n.n.n". + +4. User control over the gateway choice + + In some cases, the gateway may make an inappropriate choice when + deciding what to do about a particular body part. + + To allow an escape clause, this chapter defines a way in which the + user can signal the gateway what action it finds most appropriate. + + The headers given here override any "conversion prohibited" and + "conversion with loss prohibited" on the message. + + It is still the gateway's responsibility that the generated messages + conform to the destination domain's syntax rules. + + DISCUSSION: + + The intent of this mechanism is to allow the sender to efficiently + get a message through to a single recipient when the sender has + information about the recipient that the gateway does not have. + + It is not a part of the minimum functionality listed in chapter 8; a + gateway does not have to implement this spec to be MIXER conformant, + but if implemented, it should be done like this. + + The additional complexity, both in user interface and in protocol, of + making this field selectable per recipient was not thought + worthwhile; + +4.1. Conversion from MIME to X.400 + + The header field described below specifies explicit MIXER conversion. + Comments are allowed within the field according to the usual RFC 822 + convention. + + If "x400-object-id" is omitted, "tunnel" is assumed. + + mime-to-x400 = "Wanted-X400-Conversion" ":" + [ mime-from ] [ x400-object-id ] + + + +Alvestrand Standards Track [Page 18] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + "in" x400-encoding + + x400-object-id = "to" ( object-identifier-2 / "tunnel" ) + x400-encoding = "bp14" / "bp15" / "ftbp" / "ia5" + mime-from = "from" mime-type + mime-type = word + + There is no way to ask for a different conversion based on MIME + parameters or bodypart content. + + Examples: + + Wanted-X400-Conversion: from application/msword + to 1.2.840.113556.4.2 (Microsoft defined ms-word) + in ftbp + + This uses the MAWG definitions, and leads to an FTBP encoding. + + Wanted-X400-Conversion: from application/msword + to tunnel in bp14 + + This leads to a Body Part 14 encoding for all body parts of type + application/msword. + + Wanted-X400-Conversion: in bp14 + + This requests that this specific body part be encoded in Body Part + 14. + + This field may be used in two places: + + (1) In the heading of an unstructured MIME body part. + In this case the EBNF.mime-from is omitted, and the + requested conversion applies to the body part. + + (2) In a multipart. In this case, the body part type to + which the conversion applies is defined by + EBNF.mime-from, and the conversion applies to all + body parts of this MIME type contained in the + multipart, including those contained in nested + messages and multiparts. If a contained body part + has its own heading, this takes precedence. Note + that the "from" parameter is mandatory when used in + a multipart. + + The EBNF.x400-object-id shall be present when "bp15" or + "ftbp" encoding is selected. + + + + +Alvestrand Standards Track [Page 19] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + The value "tunnel" implies encapsulation as defined in + Chapter 3. + + The "object identifier" used below is: + + - For BP 15, it is the value of the EXTENDED-BODY-PART- + TYPE macro that defines the body part, which is found + in ExternallyDefinedBodyPart.data.direct-reference. + + - For FTBP, it is the value of the + Environment.application-reference. + +4.2. Conversion from X.400 to MIME + + The IPM heading defined here shall be present in the heading of a + message. It defines the mapping for all body parts of the specified + types, including those in nested messages. + + wanted-MIME-conversion HEADING-EXTENSION + VALUE WantedMIMEConversions + ::= id-wanted-MIME-conversions + + + WantedMIMEConversions ::= SEQUENCE OF X400toMIMEConversion + + X400toMIMEConversion ::= SEQUENCE { + x400-type X400Type, + mime-type MIMEType } + + + X400Type ::= CHOICE { + standard [0] INTEGER, -- standard body part + extended [1] OBJECT IDENTIFIER, -- BP 15 + ftbp [2] OBJECT IDENTIFIER} -- FTBP + -- application-reference + + MIMEType ::= SEQUENCE { + type IA5String, -- type (e.g., application/ms-word) + encoding [1] IA5String OPTIONAl -- e.g. quoted-printable + parameters [2] IA5String OPTIONAL } -- MIME Parameters + + The heading extension includes all requested conversions, with + explicit information as to how each body part type is encoded in + MIME. + + FTBP is identified as a separate body part type, as there will be a + need for different encodings, dependent on what is being carried. + + + + +Alvestrand Standards Track [Page 20] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + Encapsulation is requested by asking for "application/x400-bp" or + "application/ftbp" as the destination type. + + For FTAM body parts, the parameters will survive the gatewaying + process. For other body parts, there are three alternatives: + + (1) The gateway knows a defined mapping for this + particular body part and destination type. It will be used, + and parameters mapped accordingly. + + (2) The gateway knows how to extract an OCTET STRING + from the body part, and the destination is a simple MIME body + part. All information outside the OCTET STRING is lost. (This + may be the case for a BP14 that should end up in an + application/xyzzy, for instance). + + (3) The gateway knows of no relevant mapping, and does + not know how to simplify the X.400 body part. The gateway + will then proceed as if the mapping control field had not + been present. + +5. The equivalence registry + +5.1. What information one must give about a mapping + + The following information MUST be supplied when describing an + equivalence or a mapping: + + MIME type name (which must be preregistered) + + X.400 body part (often BP15 or FTAM Body Part) + + If BP15 is used, the following information must be given: + + (1) Object Identifier for X.400 BP15 Data + + (2) Object Identifier for X.400 BP15 Parameters + + (3) X.400 ASN.1 Syntax (must be an EXTENDED-BODY-PART- + TYPE macro) + + If FTBP is used, the following information must be given: + + <1) Object Identifier for the FTAM Environment.application- + reference + + <2) Object Identifier for the FTAM Contents-type, if + unstructured-binary is not used + + + +Alvestrand Standards Track [Page 21] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + (3) Any other special considerations + + In all cases, the following must be given: + + Conversion algorithms. The expected effect of "Conversion prohibited" + and "Conversion with loss prohibited" should be noted. + + The conversion must be specified with enough detail to permit + independent implementation; literature references are acceptable. + + An equivalence can be registered with IANA using the form at the end + of this document. The purpose of the registration is to achieve a + greater uniformity among gateways implementing the same translation; + there is no requirement that a gateway must support all of the + translations that are registered with IANA, and there is no + requirement that all conversions supported by a gateway are + registered with IANA. Specific conformance requirements for MIXER are + given at the end of this document. + + Anyone can register an equivalence with IANA, and may update the + registered equivalence at any time, or reassign the right to update + the registry entry at any time. However, the IESG has the power to + "lock" a registration, so that changing it requires IESG approval, + and to update such a "locked" registration. All registered + equivalences defined in standards-track documents (including this + one) are locked. + +5.2. Equivalence summary for known X.400 and MIME Types + + This section itemizes the equivalences for all currently known MIME + content-types and X.400 body parts. + + For each MIME content-type/X.400 body part pair, the equivalence + table contains an entry with the following sections: + + X.400 Body Part + This section identifies the X.400 Body Part governed by this + Table entry. It includes any OBJECT IDENTIFIERs or other + parameters necessary to uniquely identify the Body Part. + + MIME Content-Type + This section identifies the MIME content-type governed by this + Table entry. The MIME content-type named here must be + registered with the IANA. + + Section/document reference + Reference to section of this document, or to the other document + that describes this mapping. + + + +Alvestrand Standards Track [Page 22] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + The initial Equivalence Table entries in this document are described + using this convention. + + Further registrations of equivalences should be submitted to the IANA + after a public review, using the example form given at the end of + this document. + +5.3. MIME to X.400 Table + + MIME content-type X.400 Body Part Section + ----------------- ------------------ ------- + text/plain + charset=us-ascii ia5-text 6.1 + charset=ISO-8859-x EBP - GeneralText 6.2 + text/richtext no mapping defined Encap + application/oda EBP - ODA [ODA] + application/octet-stream bilaterally-defined or 6.3 + FTBP unknown attachment 6.4 + application/postscript EBP - mime-postscript-body [POSTSCRIPT] + image/g3fax g3-facsimile [IMAGES] + image/jpeg EBP - mime-jpeg-body [IMAGES] + image/gif EBP - mime-gif-body [IMAGES] + audio/basic no mapping defined Encap + video/mpeg no mapping defined Encap + message/RFC822 ForwardedIPMessage 6.5 + multipart/* ForwardedIPMessage 6.6 + multipart/signed HARPOON encap 7.3 + multipart/encrypted HARPOON encap 7.4 + + Abbreviation: EBP - Extended Body Part + + +5.4. X.400 to MIME Table + + Basic Body Parts + + X.400 Basic Body Part MIME content-type Section + --------------------- -------------------- ------- + ia5-text text/plain;charset=us-ascii 6.1 + voice No Mapping Defined Encap + g3-facsimile image/g3fax [IMAGES] + g4-class1 no mapping defined Encap + teletex text/plain;charset=teletex 6.7 + videotex no mapping defined Encap + encrypted no mapping defined Encap + bilaterally-defined application/octet-stream 6.3 + nationally-defined no mapping defined Encap + externally-defined See Extended Body Parts below + + + +Alvestrand Standards Track [Page 23] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + ForwardedIPMessage message/RFC822 or multipart 6.5,6.6 + + X.400 Extended Body Part MIME content-type Section + ------------------------- -------------------- ------- + GeneralText text/plain;charset=ISO-8859-x 6.2 + ODA application/oda [ODA] + mime-postscript-body application/postscript [POSTSCRIPT] + mime-jpeg-body image/jpeg [IMAGES] + mime-gif-body image/gif [IMAGES] + FTAM various 2.3,6.4 + + FTAM application ID MIME content type Section + ------------------- ----------------- ------- + ema-unknown-attachment application/octet-stream 6.4 + +5.5. Use of OBJECT IDENTIFIERs and ASN.1 MACROS + + When one wants to define new BP15 body parts for use with + equivalences, it is important to know that X.420 dictates that + Extended Body Parts shall: + + (1) use OBJECT IDENTIFIERs (OIDs) to uniquely identify + the contents, and + + (2) be defined by using the ASN.1 Macro: + + EXTENDED-BODY-PART-TYPE MACRO::= + BEGIN + TYPE NOTATION ::= Parameters Data + VALUE NOTATION ::= value (VALUE OBJECT IDENTIFIER) + + Parameters ::= "PARAMETERS" type "IDENTIFIED" + "BY" value(OBJECT IDENTIFIER) + | empty; + Data ::= "DATA" type + END + + To meet these requirements, this document uses the OID + + mixer + + defined in [MIXER], as the root OID for X.400 Extended Body Parts + defined for MIME interworking. + + Each Extended Body Part contains Data and optional Parameters, each + being named by an OID. To this end, two OID subtrees are defined + under mixer-bodies, one for Data, and the other for Parameters: + + + + +Alvestrand Standards Track [Page 24] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + mixer-bp-data OBJECT IDENTIFIER ::= + { mixer 1 } + + mixer-bp-parameter OBJECT IDENTIFIER ::= + { mixer 2 } + + All definitions of extended X.400 body parts submitted to the IANA + for registration with a mapping must use the Extended Body Part Type + macro for the definition. See [IMAGES] for an example. + + Lastly, the IANA will use the mixer-bp-data and mixer-bp-parameter + OIDs as root OIDs for any new MIME content-type/subtypes that aren't + otherwise registered in the Equivalence Table. + + NOTE: The ASN.1 for an ExternallyDefinedBodyPart is + + ExternallyDefinedBodyPart ::= SEQUENCE { + parameters [0] ExternallyDefinedParameters OPTIONAL, + data ExternallyDefinedData } + + ExternallyDefinedParameters ::= EXTERNAL + + ExternallyDefinedData ::= EXTERNAL + + The ASN.1 for EXTERNAL is (from X.208): + + EXTERNAL ::= [UNIVERSAL 8] IMPLICIT SEQUENCE + {direct-reference OBJECT IDENTIFIER OPTIONAL, + indirect-reference INTEGER OPTIONAL, + data-value-descriptor ObjectDescriptor OPTIONAL, + encoding CHOICE + {single-ASN1-type [0] ANY, + octet-aligned [1] IMPLICIT OCTET STRING, + arbitrary [2] IMPLICIT BIT STRING}} + + ObjectDescriptor ::= [UNIVERSAL 7] IMPLICIT GraphicString + + There are a bit too many choices here; the common X.400 usage for + BP15 encoding is to: + + (1) Always use direct-reference + + (2) Omit indirect-reference and data-value-descriptor + + (3) Use the single-ASN1-type encoding only + + + + + + +Alvestrand Standards Track [Page 25] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + Unfortunately, some implementations have chosen to use the octet- + aligned choice when constructing values where the ASN.1 type is OCTET + STRING, which of course caused interoperability problems. + + An attempt to specify that X.420 only allowed the single-ASN1-type + choice in the 1996 versions is still (Sept 1995) being debated in + ISO; the end result seems to be that all agree in principle that + single-ASN1-type should be used, but that one has to allow the + generation of the octet-aligned choice as being conformant. + +6. Defined Equivalences + +6.1. IA5Text - text/plain + + X.400 Body Part: IA5Text MIME Content-type: text/plain; charset=US- + ASCII Conversion Type: No conversion Comments: + + When mapping from X.400 to MIME, the "repertoire" parameter is + ignored. + + When mapping from MIME to X.400, the "repertoire" parameter is set to + IA5 (5). + + NOTE: The MIME Content-type headers are omitted, when mapping from + X.400 to MIME, if and only if the IA5Text body part is the only body + part in the IPMS.Body sequence. + + NOTE: IA5Text specifies the "currency" symbol in position 2/4. This + is converted without comment to the "dollar" symbol, since the author + of this document has seen many documents in which the position was + intended to indicate "dollar" while he has not yet seen one in which + the "currency" symbol is intended. + + (For reference: The T.50 (1988) recommendation, which defines IA5, + talks about ISO registered set number 2, while ASCII, using the + "dollar" symbol, is ISO registered set number 6. There are no other + differences.) + + NOTE: It is not uncommon, though it is a violation of the standard, + to use 8-bit character sets inside an IA5 body part. Gateways that + can expect to encounter this situation should consider implementing + something like the guidance given in RFC 1428 [MIMETRANS], + "Transition of Internet Mail from just-send-8 to 8-bit SMTP/MIME", + and generate appropriate charset parameters for the MIME messages + they generate. This behavior is not required for MIXER conformance, + since it is only needed when the base standards are violated. + + + + + +Alvestrand Standards Track [Page 26] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + +6.2. GeneralText - text/plain (ISO-8859) + + X.400 Body Part: GeneralText; CharacterSets in + 6, 14, 42, 87, 100,101,109,110,126,127,138,144,148 + MIME Content-Type: text/plain; charset=ISO-8859-(1-9) + or iso-2022-jp + Conversion Type: Text conversion without character change When + mapping from X.400 to MIME, the character-set is chosen from the + table below according to the value of Parameters.CharacterSets. If no + match is found, and the gateway does not support a conversion, the + character set shall be encoded as x-iso-nnn-nnn-nnn, where "nnn" is + the numbers of the Parameters.CharacterSets, sorted in numeric order. + + When mapping from MIME to X.400, GeneralText is an Extended Body + Part, hence it requires an OID. The OID for the GeneralText body is + defined in [MOTIS], part 8, annex D, as {2 6 1 4 11}. The OID for the + parameters is {2 6 1 11 11}. + + The Parameters.CharacterSets is set from table below according to the + value of "charset" + + + The following table lists the MIME character sets and the + corresponding ISO registry numbers. If no correspondence is found, + this conversion fails, and the generic body part approach is used. + + MIME charset ISO IR numbers Comment + ----------------------------------------------- + ISO-8859-1 6, 100 West European "8-bit ASCII" + ISO-8859-2 6, 101 East European + ISO-8859-3 6, 109 <regarded as obsolete> + ISO-8859-4 6, 110 <regarded as obsolete> + ISO-8859-5 6, 144 Cyrillic + ISO-8859-6 6, 127 Arabic + ISO-8859-7 6, 126 Greek + ISO-8859-8 6, 138 Hebrew + ISO-8859-9 6, 148 Other Latin-using languages + ISO-2022-JP 6, 14, 42, 87 Japanese + + When converting from MIME to X.400, generate the correct OIDs for use + in the message envelope's Encoded Information Types by looking up the + ISO IR numbers in the above table, and then appending each to the + id-cs-eit-authority {1 0 10021 7 1 0} OID, generating 2-4 OIDs. + + Similar procedures can be used with other MIME charsets that map to a + set of ISO character sets. + + + + + +Alvestrand Standards Track [Page 27] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + The escape sequences to designate and invoke the relevant character + sets in their proper positions must be added to the front of the + GeneralText character string. + + For ISO 8859-1, the relevant escape sequence will be: + + ESC 28 42 + ASCII in G0 + + ESC 2D 41 + ISO-IR-100 in G1 + + ESC 21 41 + High control character set in C1 + + ESC 7E + Locking shift 1 Right + + These escape sequences are removed when converting from GeneralText + to text/plain. + + Note that new character sets may be defined on both the Internet side + and the X.400 side; a gateway MAY choose to implement more + conversions in the same fashion. + + DISCUSSION: + + The conversion of text is a problematic one, and one in which it is + likely that gateways should be given wide latitude to make decisions + based upon their knowledge of the user's preferences. The text given + below is thought to give the best approximation to a gateway + conforming to current and anticipated usage in the MIME and X.400 + worlds, and is the way recommended when no knowledge of the + recipient's capabilities exists. + + The lossless changes, such as normalizing escape sequences, can be + done even when "conversion-prohibited" is set. If "conversion-with- + loss-prohibited" is set, translation to a character set that is not + able to encode all characters cannot be done, and the message should + be non-delivered with an appropriate non-delivery reason. + + The common use of character sets in MIME is somewhat different from + the rules given by X.400; in particular, it is common in MIME to + assume that the character sets follow strict rules. For the ISO- + 8859-x character sets, it is assumed that they are designated and + invoked at the beginning of the text, and that no designation or + invocation sequences occur within the body of the text. + + + + +Alvestrand Standards Track [Page 28] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + The rules for ISO-2022-JP are given in RFC 1468 [2022-JP], and are + even more particular, using a pure 7-bit encoding in which each line + of text starts in ASCII. + + Therefore, the text must be "normalized" by going through the whole + message, using a state machine or similar device to remove or rewrite + all escape and shift sequences. + + Appendix A gives pseudocode for such a conversion. + + NOTE: In 1988, the GeneralText body part was defined in ISO 10021-8 + [MOTIS], and NOT in the corresponding CCITT recommendation; this was + added later. Also, the parameters have been heavily modified; they + should be a SET OF INTEGER in the currently valid text. Use the + latest version of the standard that you can get hold of. + +6.3. BilaterallyDefined - application/octet-stream + + X.400 Body Part: BilaterallyDefined + MIME Content-Type: Application/Octet-Stream (no parameters) + Conversion Type: No conversion + + When mapping from MIME to X.400, if there are parameters present in + the Content-Type: header field, they are removed. + + DISCUSSION: + + The parameters "name" "type" and "conversions" are advisory; name and + conversions are depreciated in RFC 2046. + + The parameter "padding" changes the interpretation of the last byte + of the data, but it is deemed better by the WG to delete this + information than to non-deliver the body part. The "padding" + parameter is rarely used with MIME. + + + Use of BilaterallyDefined Body Parts is specifically deprecated in + both 1988 and 1992 X.400. It is retained solely for backward + compatibility with 1984 systems, and because it is in common use. + +6.4. FTBP EMA Unknown Attachment - application/octet-stream + + X.400 Body Part: FTBP EMA Unknown Attachment + MIME Content-Type: Application/Octet-Stream + Conversion Type: No conversion + + + + + + +Alvestrand Standards Track [Page 29] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + The OID for the Unknown Attachment is { joint-iso-ccitt(2) + country(16) us(840) organization(1) ema(113694) objects(2) + messaging(2) attachments(1) unknown(1) }, or + 2.16.840.1.113694.2.2.1.1 for short. + + NOTE: Previous EMA drafts gave it as { iso(1) countries(2) usa(840) + organization (1) ema (113694) objects(2) messaging(2) attachments(1) + unknown (1)}, or 1.2.840.1.113694.2.2.1.1 for short. + + The parameters for this type must be mapped according to chapter 2.3, + with the following extensions for the parameters of the + application/octet-stream: + + If there is no Content-Disposition parameter with a filename, and + there is a name parameter, the FTBP.FileTransferParameters.File- + attributes.pathname is generated from this parameter. Note that + RFC 2046 recommends not using the "name" parameter. + + The "type", "conversions" and "padding" attributes are ignored; + "type" is for human consumption; "conversions" are discouraged in RFC + 2046. + + The body mapping is just copying the bytes in both directions. + +6.5. MessageBodyPart - message/RFC822 + + X.400 body part: MessageBodyPart + MIME Content-Type: message/RFC822 + Conversion Type: Special + + NOTE: If the headers of the X.400 MessageBodyPart contains the + "multipart-message" heading extension with the isAMessage bit set + (either explicitly or implicitly), the mapping should be to + multipart/* according to section 6.6, below. + + To map an IPMS.MessageBodyPart, the full X.400 -> RFC 822 mapping is + recursively applied, to generate an RFC 822 Message. If present, the + IPMS.MessageBodyPart.parameters.delivery-envelope is used for the MTS + Abstract Service Mappings. If present, the + IPMS.MessageBodyPart.parameters.delivery-time is mapped to the + extended RFC 822 field "Delivery-Date:". + + When a message/RFC822 is contained within a MIME message, it is + mapped to an IPMS.MessageBodyPart according to MIXER. specification. + Any mappings that would have been made to the MTS Abstract Service + are placed in IPMS.MessageBodyPart.parameters.delivery-envelope. + + + + + +Alvestrand Standards Track [Page 30] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + +6.6. MessageBodyPart - multipart/* + + X.400 body part: MessageBodyPart + MIME Content-Type: multipart/* + Conversion Type: Special + + NOTE: If the headers of the X.400 MessageBodyPart do not contain the + "multipart-message" heading extension with the "isAMessage" flag + FALSE=, the mapping should be to message/RFC822. + + A MIME multipart is a set of content-types and not a message with a + set of content types. When the multipart is at the outermost MIME + header, elements of the multipart are mapped directly onto + IPMS.Bodypart. + + When the MIME multipart is not at the outermost level, it is mapped + to an IPMS.MessageBodyPart containing an IPMS.Bodypart for each + element of the multipart. + + When a nested IPMS.Message is generated from a multipart, an + IPMS.heading shall always be generated. The only mandatory field is + the IPMS.Heading.this-IPM message id, which shall be generated by the + gateway. An IPMS.Heading.subject field shall also be generated, in + order to provide useful information to non-MIME capable X.400(88) UAs + and to all X.400(84) UAs. The subject field is set as follows + according to the multipart subtype: + + mixed: + "Multipart Message" + + alternative: + "Alternative Body Parts containing the same information" + + digest: + "Message Digest" + + parallel: + "Body Parts interpreted in parallel" + + other: + "Multipart Message (<subtype>)" + + For other types of multipart, the multipart subtype shall be included + in the subject line. + + For each multipart, the following IPMS.HeadingExtension shall be + generated, with the value set according to the subtype. + + + + +Alvestrand Standards Track [Page 31] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + If the multipart is the outermost multipart, and the subtype is + "mixed", it may be omitted. + + multipart-message HEADING-EXTENSION + VALUE MultipartType + ::= id-hex-multipart-message-v2 + + MultipartType ::= SEQUENCE { + subtype IA5String, + isAMessage BOOLEAN DEFAULT TRUE } + + The MultipartType contains the subtype, for example "digest". If + this heading is present when mapping from X.400 to MIME, the + appropriate multipart may be generated. + + The isAMessage flag is needed because of the case where a message + contains a ForwardedIPMessage, which itself was generated from a MIME + message that was a Multipart; it is set whenever the multipart is the + outermost level of nesting inside a Message/RFC822. + + NOTE: + When downgrading to X.400/84, the content-type SHOULD be + regenerated from this heading-extension and put into the RFC-822- + HEADERS extra body part. + + NOTE: + This definition is different from the one in RFC 1494, because the + RFC 1494 definition turned out to be insufficient when new + subtypes of Multipart (like Signed or Related) were defined. That + is the reason for the "-v2" part of the name of the OID. + + If both the old and the new heading extensions occur on a message, + a MIXER gateway should give preference to the new one. + +6.7. Teletex - Text/Plain (Teletex) + + X.400 Body Part: Teletex + MIME Content-Type: text/plain; charset=Teletex + Conversion Type: Text conversion + + From X.400 to RFC-822, the conversion shall take the bytes + of all the pages in the "data" part of the + TeletexBodyPart, add a FF character (0x0C, control-L) to + each part that does not already end in one, and + concatenate them together to form the body of the + Text/Plain. + + + + + +Alvestrand Standards Track [Page 32] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + The character set shall be "Teletex", which is especially + registered for this purpose. Its definition is shown in an + appendix. + + The parameters are discarded. + + From RFC-822 to X.400, the conversion shall split the + content at each occurrence of the FF character (0x0C), + delete the character and construct the Teletex body part + as a SEQUENCE OF TeletexString, as described in X.420(88), + section 7.3.5 + + The TeletexParameters may, but need not, contain the + number-of-pages component. + + NOTE: It is recommended, but not mandated, that the data + be converted into a more widespread character set like + ISO-8859-1 or ISO-2022-JP (if applicable) if possible. + This will result in the reverse translation giving a + GeneralText body part, which will have to be dealt with + appropriately at the X.400/88 to X.400/84 downgrading + boundary, if possible, but will give a much greater chance + that the MIME recipient can actually read the message. + + DISCUSSION: + + The Teletex body part is frequently used in X.400(84) to + send around text with slightly extended character sets + beyond ASCII. + + Its body consists of a series of "pages", separated by + ASN.1 representation. It is important to many people to + have this mapped into something that is readable to most + end-users; therefore, it is recommended to map this onto + Text/Plain; however, since this is not plain text, the + conversion must be specified. + + Note that the definition of Text/Plain permits only CRLF as a line + separator; the sequences "CR FF" and "CR LF LF LF.." permitted in + Teletex must be encoded as Quoted-Printable. + +7. Body parts where encapsulation is recommended + + Some body parts are MIME constructs, and their functionality will be + severely damaged if they are coerced into an X.400 framework. + + Special care needs to be taken with these; they are described below. + + + + +Alvestrand Standards Track [Page 33] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + +7.1. message/external-body + + The gateway MUST support the encapsulation of this body part using + the HARPOON encapsulation (IA5). + + It MAY support some kind of retrieval of the referred object. + + DISCUSSION: + + The message/external-body part points to an object that can be + retrieved using Internet protocols. + + There are three cases to consider for the recipient's capabilities: + + (1) The user has no Internet access. In this case, the + user might be grateful if the gateway fetches the body part and + inserts it into the message. If the body part is large or + dynamic, it might not be appropriate. + + (2) The user has Internet access, but no UA support for + fetching external-body objects. + + (3) The user has Internet access and UA support for + fetching external-body objects, based on an understanding of + this document. + + Some access-types, like anonymous FTP, are easy to resolve. Others, + like the Mailserver access-type, are almost impossible to resolve at + a gateway. + + To support the second case above, the tunneling method chosen is the + HARPOON encapsulation described in section 3.1.3, using an IA5 body + part, inserting the string "MIME-Version: 1.0 (generated by gateway)" + at the beginning of the body part. (The part in parentheses can be + changed at will). + + This will: + + (1) Maximize the chance that the user will see the + message + + (2) Give the user hints that will enable him to fetch + the message using other Internet tools + + (3) Identify the message as a MIME object in a reliable + fashion, allowing UAs to support the fetching of the object if + the UA implementor desires. + + + + +Alvestrand Standards Track [Page 34] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + +7.2. message/partial + + This represents part of a larger message, where it is only possible + to parse the complete message after getting all the pieces. + + The gateway MUST support the encapsulation of this body part. + + It MAY implement transparent reassembly of the message, but in this + case, it MUST support a configurable timeout + for the reassembly, defaulting back to encapsulation. + + DISCUSSION: + + The gateway's choices are: + + (1) Wait until all the pieces arrive at the gateway, + reassemble the message, and use normal processing + + (2) Encapsulate the message, using any encapsulation + method (BP15, FTAM or HARPOON). + + In some cases, not all pieces will arrive at the gateway; some may + have been transferred through other gateways due to route changes or + machine outages; some may have been lost in transit. + +7.3. multipart/signed + + A gateway MUST implement encapsulation of multipart/signed using + HARPOON. + + The gateway MAY be configured to do other processing, as outlined in + the discussion below. This is outside the scope of the standard. + + DISCUSSION: + + Gatewaying security is a problem. The gateway can basically take + three approaches: + + - Strip the multipart/signed, leaving the bare body + part unsecured, possibly with a comment that the signature was + stripped + + - Attempt to check the signature and re-signing the + message using X.400 security functions, then stripping as above + + - Encapsulate the message. This is the only approach + that allows end to end security, but requires MIME functionality + at the recipient. + + + +Alvestrand Standards Track [Page 35] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + - Replace the message content with multiple body parts, + containing first an unsecured body part and then the + encapsulated multipart/signed. + + All these are valid options for a MIXER gateway. + + Note that the encapsulation must use HARPOON, as the signature is + computed on the ENCODED body part, not on the canonical + representation, and HARPOON is the only encapsulation that preserves + the content transfer encoding of the message. + + Note also that all methods except for encapsulation break end-to-end + security; the recipient can place no more trust in the integrity of + the message than he can place in the security of the gateway. + +7.4. multipart/encrypted + + A gateway MUST implement encapsulation of multipart/encrypted using + HARPOON. + + If the implementor chooses to allow other processing at the gateway, + as outlined below, he/she is advised that there are grave security + concerns with such a solution, since it violates the general rule of + keeping decryption keys as close to the user as possible. + + DISCUSSION: + + There are two basic cases for a gateway: + + - The gateway is trusted with the user's keys. In this + case, the gateway can decrypt the message, possibly add a note + that it has done so, and gateway the unencrypted form, possibly + applying X.400 security functions, and possibly attaching a copy + of the original, encrypted material for reference. This does + nothing to protect the transfer from gateway to recipient, + unless suitable X.400-native security is applied. It also means + that the gateway must be part of the user's trusted environment. + + - The gateway is not trusted with the recipient's keys. + In this case, encapsulation is the only approach that preserves + any information at all. + + The valid options for a MIXER gateway are therefore: + + - Decrypt the body part + + - Encapsulate the body part + + + + +Alvestrand Standards Track [Page 36] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + - Drop the body part + + The MIXER WG has shown strong preference for the encapsulation + alternative, and urges anyone who thinks of buying or implementing + gateway decryption to carefully evaluate this choice in light of the + company's general security policy. + +8. Conformance requirements + + In order to be called MIXER conformant, a gateway must implement: + + - Encapsulation of MIME content in the FTBP body part + + - Encapsulation of X.400 body parts in the x400-bp body + part + + - Encapsulation of FTBP body parts in the + application/x-ftbp.oid body part + + - Encapsulation of security multiparts using HARPOON + + - Text/plain <-> IA5Text + + - Text/plain; charset=iso-8859-* <-> GeneralText + + - Multipart/* <-> ForwardedIPMessage + + - message/RFC822 <-> ForwardedIPMessage + + - application/octet-stream <-> FTBP unknown + + - application/octet-stream <-> BilaterallyDefined + + - A configuration choice of which application/octet- + stream translation to use + + All other parts of this specification MAY be implemented by the + gateway. If they are implemented at all, they MUST be implemented + conformant to this specification. + + In this context, a feature is "implemented" in a product if it is + possible to configure the product in such a way that this feature is + used. This specification does not restrict the product to only be + configured in such a fashion. + + + + + + + +Alvestrand Standards Track [Page 37] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + +9. Security Considerations + + The security issues identified in this memo are: + + (1) Security implications of using filenames that + arrive in body part headers (section 2.3.2) + + (2) Security implications of letting a gateway handle + encrypted and/or signed content (section 7.3 and 7.4) + + If a gateway fetches message/external-body on behalf of the + recipient, as described in section 7.1, it may be tricked into + performing inappropriate actions by malicious senders. + + In addition, all the normal caveats that apply to sending data that + may contain executable code apply to UAs on both sides of the + gateway. + +10. Author's Address + + Harald Tveit Alvestrand + UNINETT + P.O.box 6883 Elgeseter + N-7002 Trondheim + NORWAY + + EMail: Harald.T.Alvestrand@uninett.no + +11. Acknowledgements + + The author wishes to thank all the members of the MIXER WG for their + valuable input, and in particular (in no particular order): + + Steve Kille, Peter Sylvester, Ned Freed, Julian Onions, Ruth Moulton, + Keith Moore, Alain Zahm, Urs Eppenberger, Kevin Jordan, Jeroen + Houttuin, Claudio Allocchio, Colin Robbins, Steven Thomson, Jim + Craigie, Efifiom Edem, David Wilson, and many others who have been + active over the long lifetime of this document. + +References + + [RFC-822] + Crocker, D., "Standard for the Format of ARPA Internet Text + Messages", STD 11, RFC 822, August, 1982. + + + + + + + +Alvestrand Standards Track [Page 38] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + [MIME] + Freed, N. and N. Borenstein, "Multipurpose Internet Mail + Extensions (MIME) Part Two: Media Types", RFC 2046, November + 1996. + + [MIME-HDR] + Moore, K., "MIME (Multipurpose Internet Mail Extensions) Part + Three: Message Header Extensions for Non-ASCII Text", RFC 2047, + November 1996. + + [HARPOON] + Alvestrand, H., Romaguera, J., and K. Jordan, "Rules for + downgrading messages from X.400/88 to X.400/84 when MIME + content-types are present in the messages", RFC 1496, August + 1993. + + [MIMETRANS] + Vaudreuil, G., "Transition of Internet Mail from Just-Send-8 to + 8Bit-SMTP/MIME", RFC 1428, February 1993. + + [MIXER] + Kille, S., "Mapping between X.400(1988) / ISO 10021 and RFC-822", + RFC 1327, May 1992. + + [T.4] + CCITT Recommendation T.4, Standardization of Group 3 Facsimile + Apparatus for Document Transmission (1988) + + [T.30] + CCITT Recommendation T.30, Procedures For Document Facsimile + Transmission in the General Switched Telephone Network (1988) + + [T.411] + CCITT Recommendation T.411 (1988), Open Document Architecture + (ODA) and Interchange Format, Introduction and General Principles + + [MOTIS] + ISO/IEC International Standard 10021, Information technology - + Text Communication - Message-Oriented Text Interchange Systems + (MOTIS) (Parts 1 to 8) + + [X.400] + CCITT, Data Communication Networks - Message Handling Systems - + Recommendations X.400 - X.420 (1988 version) + + + + + + + +Alvestrand Standards Track [Page 39] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + [X.420] + CCITT Recommendation X.420 (1988), Interpersonal Messaging System + + [RFC-X400USE] + Alvestrand, H., "X.400 use of extended Character Sets", RFC 1502, + August 1993. + + [MAWG] + Electronic Messaging Association Message Attachment Working Group + (MAWG): File Transfer Body Part Feasibility Project Guide - + version 1.5 - September 1995 + + [CDISP] + Troost, R., and S. Dorner, "Communicating Presentation Information + in Internet Messages: The Content-Disposition Header", RFC 1806, + June 1995. + + [POSTSCRIPT] + Alvestrand, H., "Carrying PostScript in X.400 and MIME", RFC 2160, + June 1997. + + [IMAGES] + Alvestrand, H., "X.400 Image Body Parts", RFC 2158, June 1997. + + [ODA] + Alvestrand, H., "A MIME Body Part for ODA", RFC 2161, June 1997. + + [ISO 2022] + ISO/IEC 2022:1994(E): Information technology - Character code + structure and extension techniques + + [ISO 8859] + ISO 8859: Information processing -- 8-bit single-byte coded + graphic character sets (various parts) + + [2022-JP] + Murai, J., Crispin, M., and E. van der Poel, "Japanese Character + Encoding for Internet Messages", RFC 1468, June 1993. + + [MUST] + Bradner, S., "Key words for use in RFCs to Indicate Requirement + Levels", RFC 2119, March 1997. + + + + + + + + + +Alvestrand Standards Track [Page 40] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + +APPENDIXES + +Appendix A: Escape code normalization + + The algorithm given here in pseudocode will reduce a GeneralString + ISO-2022 unlimited use of shifts sequence to a pure 8-bit sequence + that does not use shift sequences, if possible. + + Some error conditions, like EOF, are not tested for. It crashes if + asked to do something it cannot. Control character set switching is + missing. + + A similar routine, albeit more complex, can be written for + normalizing to the ISO-2022-JP character set. + + BEGIN: (from X.209) + g0 = 6 (should be 2, but ignore the difference) + g1 = NULL + g2 = NULL + g3 = NULL + c0 = 1 (ASCII control) + c1 = NULL + leftset = &g0 (current input set, low) + rightset = &g1 (current input set, high) + lowset = 6 (output set, low) + highset = NULL (output set, high) + charset = US-ASCII + + (Init for the set tables) + chartoid[{2D,2E,2F}, 41] = 100 + ..... + idtoname[100] = "ISO-8859-1" + ..... + + WHILE (more data) + CASE head of input + {These are the locking shift sequences} + INCASE "00/14": (LS0, SO) + leftset = &g0; + INCASE "00/15": (LS1, SI) + leftset = &g + INCASE "ESC 07/14": (LS1R) + rightset = &g1; + INCASE "ESC 07/13": (LS2R) + rightset = &g2; + INCASE "ESC 07/12": (LS3R) + rightset = &g3; + {There is missing code for handling the single shift function} + + + +Alvestrand Standards Track [Page 41] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + {These are the changes of graphic character sets} + {Note that G0 can contain only 94-character charsets} + INCASE "ESC 28" + g0 = chartoid[lastchar, next character] + sethiset(g0) + INCASE "ESC 2D", "ESC 29" + g1 = chartoid[lastchar, next character] + sethiset(g1) + INCASE "ESC 2E", "ESC 2A" + g2 = chartoid[lastchar, next character] + sethiset(g2) + INCASE "ESC 2F", "ESC 2B" + g3 = chartoid[lastchar, next character] + sethiset(g3) + {control characters. There is missing code for changing these} + INCASE 00/00-01/15 {normal control} + write(char) + INCASE 08/00-09/15 {upper control} + write(char) + {Normal characters} + INCASE 02/00-07/15 (Left) + IF (*leftset == lowset) + write(char) + ELSIF (*leftset == highset) + write(char+80) + ELSE + ERROR "Shift error" + ENDIF + INCASE 10/00-15/15 + IF (*rightset == highset) + write(char) + ELSIF (*rightset == lowset) + write(char-80) + ELSE + ERROR "Shift error" + ENDIF + ENDCASE + ENDWHILE + + SUBROUTINE sethighset(g1) + + IF (highset == NULL) + charset = idtoname[g1] + highset = g1 + ELSIF (highset == g1) + (it's OK) + ELSE + ERROR "Too many charsets encountered" + + + +Alvestrand Standards Track [Page 42] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + ENDIF + + ENDROUTINE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Alvestrand Standards Track [Page 43] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + +Appendix B: OID Assignments + + MIXER-MAPPINGS DEFINITIONS ::= BEGIN + EXPORTS -- everything --; + + IMPORTS + + mixer -- { iso(1) org(3) dod(6) internet(1) mail(7) mixer(1) } + FROM MIXER --Companion RFC--; + + mixer-headings OBJECT IDENTIFIER ::= + { mixer 1 } -- called mime-mhs-headings in RFC 1495 -- + + mixer-bodies OBJECT IDENTIFIER ::= + { mixer 2 } -- called mime-mhs-bodies in RFC 1495 -- + + -- mixer-core is defined as { mixer core(3) } in [MIXER] + + mixer-bp-data OBJECT IDENTIFIER ::= + { mixer-bodies 1 }; -- called mime-mhs-bp-data in RFC 1494 -- + + mixer-bp-parameter OBJECT IDENTIFIER ::= + { mixer-bodies 2 }; + + id-mime-bp-data OBJECT IDENTIFIER ::= + { mixer-bp-data 1 }; + -- for debugging: mixer-bp-data is 1.3.6.1.7.1.2.1.1 + + id-mime-bp-parameters OBJECT IDENTIFIER ::= + { mixer-bp-parameter 1 }; + + -- the following assignments were done in RFC 1494, using + -- slightly different names, but the same numbers. + -- their defining text is now is now in other documents + id-mime-postscript-body OBJECT IDENTIFIER ::= + { mixer-bp-data 2 } + + id-mime-jpeg-body OBJECT IDENTIFIER ::= + { mixer-bp-data 3 } + + id-mime-gif-body OBJECT IDENTIFIER ::= + { mixer-bp-data 4 } + + -- This is a new definition, and defines an FTAM application + reference, + -- not a BP15 data OID. + id-mime-ftbp-data OBJECT IDENTIFIER ::= + { mixer-bp-data 5 } + + + +Alvestrand Standards Track [Page 44] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + -- The following heading extensions are defined + id-hex-partial-message OBJECT IDENTIFIER ::= + { mixer-headings 1 } + + id-hex-multipart-message OBJECT IDENTIFIER ::= + { mixer-headings 2 } -- from RFC 1495; obsolete + + id-hex-multipart-message-v2 OBJECT IDENTIFIER ::= + { mixer-headings 3 } + + END + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Alvestrand Standards Track [Page 45] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + +Appendix C: Registration information for the Teletex + character set + + The Teletex character set is a character set in which the ISO 2022 + character set switching mechanism may be used to switch between the + following registered ISO character sets: + + ISO-IR-87 - JIS_C6226-1983; a 16-bit Japanese character set + ISO-IR-102 - a fairly standard US-ASCII variant + ISO-IR-103 - Latin characters using non-spacing accents + ISO-IR-106 - Control characters for C0 use; CR, LF, FF and a few more. + ISO-IR-107 - Control characters for C1 use + + Its intended use of this character set is to represent data that + comes from ISO protocols that use the ASN.1 construct "TeletexString" + or "T61string" without conversion. + + The set of allowed character sets can be found in CCITT + recommendation X.208(1988), chapter 31.2 and Table 6/X.208. + + The rules for encoding the data type can be found in CCITT + recommendation X.209(1988), chapter 23. It states that at the + beginning of the string, G0 is always ISO-IR-102, C0 is ISO-IR-106, + and C1 is ISO-IR-107. + + The specification seems somehow to have missed the implicit + assumption that ISO-IR-103 is designated and invoked as G1 and + shifted into the upper half of the character set which seems to be + assumed at least by the X.400 and X.500 software that uses + TeletexStrings; implementors should act as if the sequence ESC 2/9 + 7/6 LS1R is always present at the beginning of the data; however, + when generating Teletex strings, implementors should include the + sequence ESC 2/9 7/6 within the string before the first occurence of + a character from ISO-IR-103. + + The rules for interpreting T.61 data are found (I believe) in CCITT + recommendations T.51, T.52 and T.53 (data from the ITU WWW server): + + T.51 (09/92) [Rev.1] [26 pp.] [Publ.: May.93] + Latin based coded character sets for telematic services + T.52 (1993) [New] [88 pp.] [Publ.: Apr.94] + Non-Latin coded character sets for telematic services + T.53 (04/94) [New] [68 pp.] [Publ.: Jan.95] + Character coded control functions for telematic services + + The Teletex character set is closely related to (but not identical + with) that specified in ISO 6937. + + + + +Alvestrand Standards Track [Page 46] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + No further restrictions are imposed by this registration; in + particular, character set switching can occur anywhere, and there is + no guarantee that the character sets will be switched "back" at the + end. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Alvestrand Standards Track [Page 47] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + + Appendix D: IANA Registration form for new mappings + + To: IANA@isi.edu + Subject: Registration of new X.400/MIME content type mapping + + MIME type name: + + (this must have been registered previously with IANA) + + X.400 body part: + + IF BP15: + + - X.400 Object Identifier for Data: + + (If left empty, an OID will be assigned by IANA under mixer-bp-data) + + - X.400 Object Identifier for Parameters: + + (If left empty, an OID will be assigned by IANA under mixer-bp- + parameter. If it is not used, fill in the words NOT USED.) + + X.400 ASN.1 Syntax: + + (must be an EXTENDED-BODY-PART-TYPE macro, or reference to a Basic + body part type) + + IF FTBP: + + - FTAM Object Identifier for application-reference: + + - FTAM Object Identifier for contents-type: + + (if left empty, unstructured-binary is assumed) + + Conversion algorithm: + + (must be defined completely enough for independent implementation. It + may be defined by reference to RFCs). + Person & email address to contact for further information: + + INFORMATION TO THE SUBMITTER: + + The accepted registrations will be listed in the "Assigned Numbers" + series of RFCs. The information in the registration form is freely + distributable. + + + + + +Alvestrand Standards Track [Page 48] + +RFC 2157 X.400/MIME Body Mapping January 1998 + + +Full Copyright Statement + + Copyright (C) The Internet Society (1998). All Rights Reserved. + + This document and translations of it may be copied and furnished to + others, and derivative works that comment on or otherwise explain it + or assist in its implementation may be prepared, copied, published + and distributed, in whole or in part, without restriction of any + kind, provided that the above copyright notice and this paragraph are + included on all such copies and derivative works. However, this + document itself may not be modified in any way, such as by removing + the copyright notice or references to the Internet Society or other + Internet organizations, except as needed for the purpose of + developing Internet standards in which case the procedures for + copyrights defined in the Internet Standards process must be + followed, or as required to translate it into languages other than + English. + + The limited permissions granted above are perpetual and will not be + revoked by the Internet Society or its successors or assigns. + + This document and the information contained herein is provided on an + "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING + TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION + HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF + MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + + + + + + + + + + + + + + + + + + + + + + + + +Alvestrand Standards Track [Page 49] + |