rfc1421.txt
author viric@llimona
Wed, 29 Aug 2007 00:19:14 +0200
changeset 14 a961bb8806b9
parent 8 09ec33061ff3
permissions -rw-r--r--
first 'zparsetext'.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
     1
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
     2
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
     3
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
     4
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
     5
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
     6
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
     7
Network Working Group                                            J. Linn
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
     8
Request for Comments: 1421                    IAB IRTF PSRG, IETF PEM WG
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
     9
Obsoletes: 1113                                            February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    10
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    11
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    12
           Privacy Enhancement for Internet Electronic Mail:
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    13
        Part I: Message Encryption and Authentication Procedures
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    14
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    15
Status of this Memo
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    16
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    17
   This RFC specifies an IAB standards track protocol for the Internet
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    18
   community, and requests discussion and suggestions for improvements.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    19
   Please refer to the current edition of the "IAB Official Protocol
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    20
   Standards" for the standardization state and status of this protocol.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    21
   Distribution of this memo is unlimited.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    22
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    23
Acknowledgements
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    24
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    25
   This document is the outgrowth of a series of meetings of the Privacy
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    26
   and Security Research Group (PSRG) of the IRTF and the PEM Working
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    27
   Group of the IETF.  I would like to thank the members of the PSRG and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    28
   the IETF PEM WG, as well as all participants in discussions on the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    29
   "pem-dev@tis.com" mailing list, for their contributions to this
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    30
   document.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    31
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    32
1.  Executive Summary
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    33
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    34
   This document defines message encryption and authentication
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    35
   procedures, in order to provide privacy-enhanced mail (PEM) services
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    36
   for electronic mail transfer in the Internet.  It is intended to
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    37
   become one member of a related set of four RFCs.  The procedures
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    38
   defined in the current document are intended to be compatible with a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    39
   wide range of key management approaches, including both symmetric
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    40
   (secret-key) and asymmetric (public-key) approaches for encryption of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    41
   data encrypting keys.  Use of symmetric cryptography for message text
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    42
   encryption and/or integrity check computation is anticipated. RFC
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    43
   1422 specifies supporting key management mechanisms based on the use
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    44
   of public-key certificates.  RFC 1423 specifies algorithms, modes,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    45
   and associated identifiers relevant to the current RFC and to RFC
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    46
   1422.  RFC 1424 provides details of paper and electronic formats and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    47
   procedures for the key management infrastructure being established in
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    48
   support of these services.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    49
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    50
   Privacy enhancement services (confidentiality, authentication,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    51
   message integrity assurance, and non-repudiation of origin) are
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    52
   offered through the use of end-to-end cryptography between originator
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    53
   and recipient processes at or above the User Agent level.  No special
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    54
   processing requirements are imposed on the Message Transfer System at
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    55
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    56
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    57
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    58
Linn                                                            [Page 1]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    59

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    60
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    61
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    62
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    63
   endpoints or at intermediate relay sites.  This approach allows
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    64
   privacy enhancement facilities to be incorporated selectively on a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    65
   site-by-site or user-by-user basis without impact on other Internet
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    66
   entities.  Interoperability among heterogeneous components and mail
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    67
   transport facilities is supported.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    68
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    69
   The current specification's scope is confined to PEM processing
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    70
   procedures for the RFC-822 textual mail environment, and defines the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    71
   Content-Domain indicator value "RFC822" to signify this usage.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    72
   Follow-on work in integration of PEM capabilities with other
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    73
   messaging environments (e.g., MIME) is anticipated and will be
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    74
   addressed in separate and/or successor documents, at which point
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    75
   additional Content-Domain indicator values will be defined.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    76
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    77
2.  Terminology
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    78
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    79
   For descriptive purposes, this RFC uses some terms defined in the OSI
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    80
   X.400 Message Handling System Model per the CCITT Recommendations.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    81
   This section replicates a portion of (1984) X.400's Section 2.2.1,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    82
   "Description of the MHS Model: Overview" in order to make the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    83
   terminology clear to readers who may not be familiar with the OSI MHS
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    84
   Model.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    85
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    86
   In the [MHS] model, a user is a person or a computer application.  A
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    87
   user is referred to as either an originator (when sending a message)
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    88
   or a recipient (when receiving one).  MH Service elements define the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    89
   set of message types and the capabilities that enable an originator
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    90
   to transfer messages of those types to one or more recipients.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    91
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    92
   An originator prepares messages with the assistance of his or her
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    93
   User Agent (UA).  A UA is an application process that interacts with
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    94
   the Message Transfer System (MTS) to submit messages.  The MTS
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    95
   delivers to one or more recipient UAs the messages submitted to it.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    96
   Functions performed solely by the UA and not standardized as part of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    97
   the MH Service elements are called local UA functions.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    98
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
    99
   The MTS is composed of a number of Message Transfer Agents (MTAs).
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   100
   Operating together, the MTAs relay messages and deliver them to the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   101
   intended recipient UAs, which then make the messages available to the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   102
   intended recipients.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   103
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   104
   The collection of UAs and MTAs is called the Message Handling System
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   105
   (MHS).  The MHS and all of its users are collectively referred to as
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   106
   the Message Handling Environment.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   107
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   108
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   109
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   110
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   111
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   112
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   113
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   114
Linn                                                            [Page 2]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   115

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   116
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   117
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   118
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   119
3.  Services, Constraints, and Implications
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   120
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   121
   This RFC defines mechanisms to enhance privacy for electronic mail
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   122
   transferred in the Internet. The facilities discussed in this RFC
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   123
   provide privacy enhancement services on an end-to-end basis between
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   124
   originator and recipient processes residing at the UA level or above.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   125
   No privacy enhancements are offered for message fields which are
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   126
   added or transformed by intermediate relay points between PEM
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   127
   processing components.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   128
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   129
   If an originator elects to perform PEM processing on an outbound
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   130
   message, all PEM-provided security services are applied to the PEM
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   131
   message's body in its entirety; selective application to portions of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   132
   a PEM message is not supported. Authentication, integrity, and (when
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   133
   asymmetric key management is employed) non-repudiation of origin
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   134
   services are applied to all PEM messages; confidentiality services
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   135
   are optionally selectable.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   136
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   137
   In keeping with the Internet's heterogeneous constituencies and usage
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   138
   modes, the measures defined here are applicable to a broad range of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   139
   Internet hosts and usage paradigms.  In particular, it is worth
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   140
   noting the following attributes:
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   141
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   142
        1.  The mechanisms defined in this RFC are not restricted to a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   143
            particular host or operating system, but rather allow
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   144
            interoperability among a broad range of systems.  All
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   145
            privacy enhancements are implemented at the application
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   146
            layer, and are not dependent on any privacy features at
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   147
            lower protocol layers.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   148
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   149
        2.  The defined mechanisms are compatible with non-enhanced
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   150
            Internet components.  Privacy enhancements are implemented
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   151
            in an end-to-end fashion which does not impact mail
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   152
            processing by intermediate relay hosts which do not
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   153
            incorporate privacy enhancement facilities.  It is
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   154
            necessary, however, for a message's originator to be
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   155
            cognizant of whether a message's intended recipient
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   156
            implements privacy enhancements, in order that encoding and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   157
            possible encryption will not be performed on a message whose
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   158
            destination is not equipped to perform corresponding inverse
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   159
            transformations.  (Section 4.6.1.1.3 of this RFC describes a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   160
            PEM message type ("MIC-CLEAR") which represents a signed,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   161
            unencrypted PEM message in a form readable without PEM
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   162
            processing capabilities yet validatable by PEM-equipped
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   163
            recipients.)
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   164
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   165
        3.  The defined mechanisms are compatible with a range of mail
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   166
            transport facilities (MTAs).  Within the Internet,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   167
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   168
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   169
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   170
Linn                                                            [Page 3]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   171

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   172
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   173
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   174
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   175
            electronic mail transport is effected by a variety of SMTP
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   176
            [2] implementations.  Certain sites, accessible via SMTP,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   177
            forward mail into other mail processing environments (e.g.,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   178
            USENET, CSNET, BITNET).  The privacy enhancements must be
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   179
            able to operate across the SMTP realm; it is desirable that
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   180
            they also be compatible with protection of electronic mail
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   181
            sent between the SMTP environment and other connected
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   182
            environments.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   183
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   184
        4.  The defined mechanisms are compatible with a broad range of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   185
            electronic mail user agents (UAs).  A large variety of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   186
            electronic mail user agent programs, with a corresponding
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   187
            broad range of user interface paradigms, is used in the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   188
            Internet.  In order that electronic mail privacy
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   189
            enhancements be available to the broadest possible user
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   190
            community, selected mechanisms should be usable with the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   191
            widest possible variety of existing UA programs.  For
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   192
            purposes of pilot implementation, it is desirable that
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   193
            privacy enhancement processing be incorporable into a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   194
            separate program, applicable to a range of UAs, rather than
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   195
            requiring internal modifications to each UA with which PEM
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   196
            services are to be provided.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   197
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   198
        5.  The defined mechanisms allow electronic mail privacy
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   199
            enhancement processing to be performed on personal computers
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   200
            (PCs) separate from the systems on which UA functions are
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   201
            implemented.  Given the expanding use of PCs and the limited
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   202
            degree of trust which can be placed in UA implementations on
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   203
            many multi-user systems, this attribute can allow many users
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   204
            to process PEM with a higher assurance level than a strictly
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   205
            UA-integrated approach would allow.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   206
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   207
        6.  The defined mechanisms support privacy protection of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   208
            electronic mail addressed to mailing lists (distribution
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   209
            lists, in ISO parlance).
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   210
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   211
        7.  The mechanisms defined within this RFC are compatible with a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   212
            variety of supporting key management approaches, including
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   213
            (but not limited to) manual pre-distribution, centralized
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   214
            key distribution based on symmetric cryptography, and the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   215
            use of public-key certificates per RFC 1422.  Different
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   216
            key management mechanisms may be used for different
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   217
            recipients of a multicast message.  For two PEM
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   218
            implementations to interoperate, they must share a common
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   219
            key management mechanism; support for the mechanism defined
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   220
            in RFC 1422 is strongly encouraged.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   221
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   222
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   223
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   224
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   225
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   226
Linn                                                            [Page 4]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   227

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   228
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   229
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   230
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   231
   In order to achieve applicability to the broadest possible range of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   232
   Internet hosts and mail systems, and to facilitate pilot
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   233
   implementation and testing without the need for prior and pervasive
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   234
   modifications throughout the Internet, the following design
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   235
   principles were applied in selecting the set of features specified in
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   236
   this RFC:
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   237
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   238
        1.  This RFC's measures are restricted to implementation at
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   239
            endpoints and are amenable to integration with existing
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   240
            Internet mail protocols at the user agent (UA) level or
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   241
            above, rather than necessitating modifications to existing
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   242
            mail protocols or integration into the message transport
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   243
            system (e.g., SMTP servers).
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   244
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   245
        2.  The set of supported measures enhances rather than restricts
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   246
            user capabilities.  Trusted implementations, incorporating
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   247
            integrity features protecting software from subversion by
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   248
            local users, cannot be assumed in general.  No mechanisms
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   249
            are assumed to prevent users from sending, at their
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   250
            discretion, messages to which no PEM processing has been
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   251
            applied. In the absence of such features, it appears more
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   252
            feasible to provide facilities which enhance user services
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   253
            (e.g., by protecting and authenticating inter-user traffic)
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   254
            than to enforce restrictions (e.g., inter-user access
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   255
            control) on user actions.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   256
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   257
        3.  The set of supported measures focuses on a set of functional
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   258
            capabilities selected to provide significant and tangible
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   259
            benefits to a broad user community.  By concentrating on the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   260
            most critical set of services, we aim to maximize the added
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   261
            privacy value that can be provided with a modest level of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   262
            implementation effort.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   263
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   264
   Based on these principles, the following facilities are provided:
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   265
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   266
        1.  disclosure protection,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   267
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   268
        2.  originator authenticity,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   269
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   270
        3.  message integrity measures, and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   271
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   272
        4.  (if asymmetric key management is used) non-repudiation of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   273
            origin,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   274
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   275
   but the following privacy-relevant concerns are not addressed:
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   276
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   277
        1.  access control,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   278
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   279
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   280
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   281
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   282
Linn                                                            [Page 5]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   283

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   284
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   285
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   286
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   287
        2.  traffic flow confidentiality,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   288
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   289
        3.  address list accuracy,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   290
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   291
        4.  routing control,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   292
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   293
        5.  issues relating to the casual serial reuse of PCs by
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   294
            multiple users,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   295
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   296
        6.  assurance of message receipt and non-deniability of receipt,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   297
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   298
        7.  automatic association of acknowledgments with the messages
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   299
            to which they refer, and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   300
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   301
        8.  message duplicate detection, replay prevention, or other
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   302
            stream-oriented services
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   303
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   304
4.  Processing of Messages
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   305
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   306
4.1  Message Processing Overview
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   307
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   308
   This subsection provides a high-level overview of the components and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   309
   processing steps involved in electronic mail privacy enhancement
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   310
   processing.  Subsequent subsections will define the procedures in
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   311
   more detail.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   312
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   313
4.1.1  Types of Keys
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   314
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   315
   A two-level keying hierarchy is used to support PEM transmission:
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   316
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   317
        1.  Data Encrypting Keys (DEKs) are used for encryption of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   318
            message text and (with certain choices among a set of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   319
            alternative algorithms) for computation of message integrity
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   320
            check (MIC) quantities.  In the asymmetric key management
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   321
            environment, DEKs are also used to encrypt the signed
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   322
            representations of MICs in PEM messages to which
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   323
            confidentiality has been applied. DEKs are generated
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   324
            individually for each transmitted message; no
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   325
            predistribution of DEKs is needed to support PEM
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   326
            transmission.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   327
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   328
        2.  Interchange Keys (IKs) are used to encrypt DEKs for
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   329
            transmission within messages.  Ordinarily, the same IK will
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   330
            be used for all messages sent from a given originator to a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   331
            given recipient over a period of time.  Each transmitted
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   332
            message includes a representation of the DEK(s) used for
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   333
            message encryption and/or MIC computation, encrypted under
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   334
            an individual IK per named recipient.  The representation is
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   335
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   336
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   337
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   338
Linn                                                            [Page 6]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   339

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   340
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   341
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   342
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   343
            associated with Originator-ID and Recipient-ID fields
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   344
            (defined in different forms so as to distinguish symmetric
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   345
            from asymmetric cases), which allow each individual
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   346
            recipient to identify the IK used to encrypt DEKs and/or
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   347
            MICs for that recipient's use.  Given an appropriate IK, a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   348
            recipient can decrypt the corresponding transmitted DEK
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   349
            representation, yielding the DEK required for message text
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   350
            decryption and/or MIC validation.  The definition of an IK
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   351
            differs depending on whether symmetric or asymmetric
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   352
            cryptography is used for DEK encryption:
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   353
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   354
                 2a. When symmetric cryptography is used for DEK
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   355
                     encryption, an IK is a single symmetric key shared
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   356
                     between an originator and a recipient.  In this
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   357
                     case, the same IK is used to encrypt MICs as well
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   358
                     as DEKs for transmission.  Version/expiration
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   359
                     information and IA identification associated with
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   360
                     the originator and with the recipient must be
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   361
                     concatenated in order to fully qualify a symmetric
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   362
                     IK.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   363
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   364
                 2b. When asymmetric cryptography is used, the IK
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   365
                     component used for DEK encryption is the public
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   366
                     component [8] of the recipient.  The IK component
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   367
                     used for MIC encryption is the private component of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   368
                     the originator, and therefore only one encrypted
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   369
                     MIC representation need be included per message,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   370
                     rather than one per recipient.  Each of these IK
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   371
                     components can be fully qualified in a Recipient-ID
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   372
                     or Originator-ID field, respectively.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   373
                     Alternatively, an originator's IK component may be
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   374
                     determined from a certificate carried in an
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   375
                     "Originator-Certificate:" field.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   376
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   377
4.1.2  Processing Procedures
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   378
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   379
   When PEM processing is to be performed on an outgoing message, a DEK
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   380
   is generated [1] for use in message encryption and (if a chosen MIC
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   381
   algorithm requires a key) a variant of the DEK is formed for use in
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   382
   MIC computation.  DEK generation can be omitted for the case of a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   383
   message where confidentiality is not to be applied, unless a chosen
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   384
   MIC computation algorithm requires a DEK.  Other parameters (e.g.,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   385
   Initialization Vectors (IVs)) as required by selected encryption
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   386
   algorithms are also generated.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   387
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   388
   One or more Originator-ID and/or "Originator-Certificate:" fields are
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   389
   included in a PEM message's encapsulated header to provide recipients
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   390
   with an identification component for the IK(s) used for message
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   391
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   392
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   393
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   394
Linn                                                            [Page 7]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   395

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   396
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   397
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   398
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   399
   processing.  All of a message's Originator-ID and/or "Originator-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   400
   Certificate:" fields are assumed to correspond to the same principal;
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   401
   the facility for inclusion of multiple such fields accomodates the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   402
   prospect that different keys, algorithms, and/or certification paths
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   403
   may be required for processing by different recipients.  When a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   404
   message includes recipients for which asymmetric key management is
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   405
   employed as well as recipients for which symmetric key management is
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   406
   employed, a separate Originator-ID or "Originator-Certificate:" field
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   407
   precedes each set of recipients.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   408
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   409
   In the symmetric case, per-recipient IK components are applied for
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   410
   each individually named recipient in preparation of ENCRYPTED, MIC-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   411
   ONLY, and MIC-CLEAR messages. A corresponding "Recipient-ID-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   412
   Symmetric:" field, interpreted in the context of the most recent
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   413
   preceding "Originator-ID-Symmetric:" field, serves to identify each
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   414
   IK.  In the asymmetric case, per-recipient IK components are applied
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   415
   only for ENCRYPTED messages, are independent of originator-oriented
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   416
   header elements, and are identified by "Recipient-ID-Asymmetric:"
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   417
   fields.  Each Recipient-ID field is followed by a "Key-Info:" field,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   418
   which transfers the message's DEK encrypted under the IK appropriate
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   419
   for the specified recipient.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   420
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   421
   When symmetric key management is used for a given recipient, the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   422
   "Key-Info:" field following the corresponding "Recipient-ID-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   423
   Symmetric:" field also transfers the message's computed MIC,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   424
   encrypted under the recipient's IK. When asymmetric key management is
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   425
   used, a "MIC-Info:" field associated with an "Originator-ID-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   426
   Asymmetric:" or "Originator-Certificate:" field carries the message's
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   427
   MIC, asymmetrically signed using the private component of the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   428
   originator.  If the PEM message is of type ENCRYPTED (as defined in
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   429
   Section 4.6.1.1.1 of this RFC), the asymmetrically signed MIC is
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   430
   symmetrically encrypted using the same DEK, algorithm, encryption
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   431
   mode and other cryptographic parameters as used to encrypt the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   432
   message text, prior to inclusion in the "MIC-Info:" field.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   433
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   434
4.1.2.1  Processing Steps
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   435
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   436
   A four-phase transformation procedure is employed in order to
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   437
   represent encrypted message text in a universally transmissible form
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   438
   and to enable messages encrypted on one type of host computer to be
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   439
   decrypted on a different type of host computer.  A plaintext message
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   440
   is accepted in local form, using the host's native character set and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   441
   line representation.  The local form is converted to a canonical
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   442
   message text representation, defined as equivalent to the inter-SMTP
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   443
   representation of message text.  This canonical representation forms
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   444
   the input to the MIC computation step (applicable to ENCRYPTED, MIC-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   445
   ONLY, and MIC-CLEAR messages) and the encryption process (applicable
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   446
   to ENCRYPTED messages only).
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   447
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   448
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   449
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   450
Linn                                                            [Page 8]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   451

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   452
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   453
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   454
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   455
   For ENCRYPTED PEM messages, the canonical representation is padded as
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   456
   required by the encryption algorithm, and this padded canonical
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   457
   representation is encrypted. The encrypted text (for an ENCRYPTED
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   458
   message) or the unpadded canonical form (for a MIC-ONLY message) is
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   459
   then encoded into a printable form.  The printable form is composed
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   460
   of a restricted character set which is chosen to be universally
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   461
   representable across sites, and which will not be disrupted by
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   462
   processing within and between MTS entities. MIC-CLEAR PEM messages
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   463
   omit the printable encoding step.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   464
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   465
   The output of the previous processing steps is combined with a set of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   466
   header fields carrying cryptographic control information.  The
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   467
   resulting PEM message is passed to the electronic mail system to be
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   468
   included within the text portion of a transmitted message. There is
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   469
   no requirement that a PEM message comprise the entirety of an MTS
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   470
   message's text portion; this allows PEM-protected information to be
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   471
   accompanied by (unprotected) annotations.  It is also permissible for
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   472
   multiple PEM messages (and associated unprotected text, outside the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   473
   PEM message boundaries) to be represented within the encapsulated
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   474
   text of a higher-level PEM message. PEM message signatures are
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   475
   forwardable when asymmetric key management is employed; an authorized
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   476
   recipient of a PEM message with confidentiality applied can reduce
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   477
   that message to a signed but unencrypted form for forwarding purposes
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   478
   or can re-encrypt that message for subsequent transmission.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   479
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   480
   When a PEM message is received, the cryptographic control fields
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   481
   within its encapsulated header provide the information required for
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   482
   each authorized recipient to perform MIC validation and decryption of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   483
   the received message text.  For ENCRYPTED and MIC-ONLY messages, the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   484
   printable encoding is converted to a bitstring.  Encrypted portions
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   485
   of the transmitted message are decrypted.  The MIC is validated.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   486
   Then, the recipient PEM process converts the canonical representation
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   487
   to its appropriate local form.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   488
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   489
4.1.2.2  Error Cases
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   490
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   491
   A variety of error cases may occur and be detected in the course of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   492
   processing a received PEM message. The specific actions to be taken
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   493
   in response to such conditions are local matters, varying as
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   494
   functions of user preferences and the type of user interface provided
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   495
   by a particular PEM implementation, but certain general
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   496
   recommendations are appropriate. Syntactically invalid PEM messages
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   497
   should be flagged as such, preferably with collection of diagnostic
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   498
   information to support debugging of incompatibilities or other
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   499
   failures.  RFC 1422 defines specific error processing requirements
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   500
   relevant to the certificate-based key management mechanisms defined
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   501
   therein.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   502
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   503
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   504
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   505
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   506
Linn                                                            [Page 9]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   507

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   508
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   509
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   510
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   511
   Syntactically valid PEM messages which yield MIC failures raise
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   512
   special concern, as they may result from attempted attacks or forged
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   513
   messages.  As such, it is unsuitable to display their contents to
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   514
   recipient users without first indicating the fact that the contents'
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   515
   authenticity and integrity cannot be guaranteed and then receiving
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   516
   positive user confirmation of such a warning.  MIC-CLEAR messages
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   517
   (discussed in Section 4.6.1.1.3 of this RFC) raise special concerns,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   518
   as MIC failures on such messages may occur for a broader range of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   519
   benign causes than are applicable to other PEM message types.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   520
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   521
4.2  Encryption Algorithms, Modes, and Parameters
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   522
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   523
   For use in conjunction with this RFC, RFC 1423 defines the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   524
   appropriate algorithms, modes, and associated identifiers to be used
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   525
   for encryption of message text with DEKs.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   526
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   527
   The mechanisms defined in this RFC incorporate facilities for
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   528
   transmission of cryptographic parameters (e.g., pseudorandom
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   529
   Initializing Vectors (IVs)) with PEM messages to which the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   530
   confidentiality service is applied, when required by symmetric
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   531
   message encryption algorithms and modes specified in RFC 1423.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   532
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   533
   Certain operations require encryption of DEKs, MICs, and digital
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   534
   signatures under an IK for purposes of transmission.  A header
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   535
   facility indicates the mode in which the IK is used for encryption.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   536
   RFC 1423 specifies encryption algorithm and mode identifiers and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   537
   minimum essential support requirements for key encryption processing.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   538
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   539
   RFC 1422 specifies asymmetric, certificate-based key management
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   540
   procedures based on CCITT Recommendation X.509 to support the message
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   541
   processing procedures defined in this document. Support for the key
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   542
   management approach defined in RFC 1422 is strongly recommended.  The
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   543
   message processing procedures can also be used with symmetric key
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   544
   management, given prior distribution of suitable symmetric IKs, but
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   545
   no current RFCs specify key distribution procedures for such IKs.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   546
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   547
4.3  Privacy Enhancement Message Transformations
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   548
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   549
4.3.1  Constraints
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   550
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   551
   An electronic mail encryption mechanism must be compatible with the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   552
   transparency constraints of its underlying electronic mail
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   553
   facilities.  These constraints are generally established based on
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   554
   expected user requirements and on the characteristics of anticipated
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   555
   endpoint and transport facilities.  An encryption mechanism must also
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   556
   be compatible with the local conventions of the computer systems
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   557
   which it interconnects.  Our approach uses a canonicalization step to
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   558
   abstract out local conventions and a subsequent encoding step to
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   559
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   560
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   561
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   562
Linn                                                           [Page 10]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   563

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   564
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   565
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   566
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   567
   conform to the characteristics of the underlying mail transport
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   568
   medium (SMTP).  The encoding conforms to SMTP constraints.  Section
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   569
   4.5 of RFC 821 [2] details SMTP's transparency constraints.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   570
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   571
   To prepare a message for SMTP transmission, the following
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   572
   requirements must be met:
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   573
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   574
        1.  All characters must be members of the 7-bit ASCII character
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   575
            set.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   576
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   577
        2.  Text lines, delimited by the character pair <CR><LF>, must
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   578
            be no more than 1000 characters long.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   579
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   580
        3.  Since the string <CR><LF>.<CR><LF> indicates the end of a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   581
            message, it must not occur in text prior to the end of a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   582
            message.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   583
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   584
   Although SMTP specifies a standard representation for line delimiters
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   585
   (ASCII <CR><LF>), numerous systems in the Internet use a different
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   586
   native representation to delimit lines.  For example, the <CR><LF>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   587
   sequences delimiting lines in mail inbound to UNIX systems are
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   588
   transformed to single <LF>s as mail is written into local mailbox
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   589
   files.  Lines in mail incoming to record-oriented systems (such as
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   590
   VAX VMS) may be converted to appropriate records by the destination
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   591
   SMTP server [3].  As a result, if the encryption process generated
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   592
   <CR>s or <LF>s, those characters might not be accessible to a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   593
   recipient UA program at a destination which uses different line
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   594
   delimiting conventions.  It is also possible that conversion between
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   595
   tabs and spaces may be performed in the course of mapping between
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   596
   inter-SMTP and local format; this is a matter of local option.  If
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   597
   such transformations changed the form of transmitted ciphertext,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   598
   decryption would fail to regenerate the transmitted plaintext, and a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   599
   transmitted MIC would fail to compare with that computed at the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   600
   destination.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   601
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   602
   The conversion performed by an SMTP server at a system with EBCDIC as
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   603
   a native character set has even more severe impact, since the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   604
   conversion from EBCDIC into ASCII is an information-losing
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   605
   transformation.  In principle, the transformation function mapping
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   606
   between inter-SMTP canonical ASCII message representation and local
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   607
   format could be moved from the SMTP server up to the UA, given a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   608
   means to direct that the SMTP server should no longer perform that
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   609
   transformation.  This approach has a major disadvantage: internal
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   610
   file (e.g., mailbox) formats would be incompatible with the native
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   611
   forms used on the systems where they reside.  Further, it would
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   612
   require modification to SMTP servers, as mail would be passed to SMTP
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   613
   in a different representation than it is passed at present.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   614
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   615
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   616
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   617
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   618
Linn                                                           [Page 11]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   619

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   620
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   621
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   622
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   623
4.3.2  Approach
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   624
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   625
   Our approach to supporting PEM across an environment in which
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   626
   intermediate conversions may occur defines an encoding for mail which
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   627
   is uniformly representable across the set of PEM UAs regardless of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   628
   their systems' native character sets.  This encoded form is used (for
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   629
   specified PEM message types) to represent mail text in transit from
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   630
   originator to recipient, but the encoding is not applied to enclosing
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   631
   MTS headers or to encapsulated headers inserted to carry control
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   632
   information between PEM UAs.  The encoding's characteristics are such
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   633
   that the transformations anticipated between originator and recipient
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   634
   UAs will not prevent an encoded message from being decoded properly
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   635
   at its destination.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   636
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   637
   Four transformation steps, described in the following four
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   638
   subsections, apply to outbound PEM message processing:
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   639
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   640
4.3.2.1  Step 1: Local Form
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   641
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   642
   This step is applicable to PEM message types ENCRYPTED, MIC-ONLY, and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   643
   MIC-CLEAR.  The message text is created in the system's native
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   644
   character set, with lines delimited in accordance with local
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   645
   convention.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   646
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   647
4.3.2.2  Step 2: Canonical Form
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   648
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   649
   This step is applicable to PEM message types ENCRYPTED, MIC-ONLY, and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   650
   MIC-CLEAR.  The message text is converted to a universal canonical
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   651
   form, similar to the inter-SMTP representation [4] as defined in RFC
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   652
   821 [2] and RFC 822 [5]. The procedures performed in order to
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   653
   accomplish this conversion are dependent on the characteristics of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   654
   the local form and so are not specified in this RFC.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   655
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   656
   PEM canonicalization assures that the message text is represented
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   657
   with the ASCII character set and "<CR><LF>" line delimiters, but does
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   658
   not perform the dot-stuffing transformation discussed in RFC 821,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   659
   Section 4.5.2.  Since a message is converted to a standard character
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   660
   set and representation before encryption, a transferred PEM message
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   661
   can be decrypted and its MIC can be validated at any type of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   662
   destination host computer.  Decryption and MIC validation is
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   663
   performed before any conversions which may be necessary to transform
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   664
   the message into a destination-specific local form.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   665
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   666
4.3.2.3  Step 3: Authentication and Encryption
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   667
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   668
   Authentication processing is applicable to PEM message types
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   669
   ENCRYPTED, MIC-ONLY, and MIC-CLEAR.  The canonical form is input to
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   670
   the selected MIC computation algorithm in order to compute an
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   671
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   672
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   673
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   674
Linn                                                           [Page 12]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   675

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   676
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   677
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   678
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   679
   integrity check quantity for the message.  No padding is added to the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   680
   canonical form before submission to the MIC computation algorithm,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   681
   although certain MIC algorithms will apply their own padding in the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   682
   course of computing a MIC.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   683
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   684
   Encryption processing is applicable only to PEM message type
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   685
   ENCRYPTED.  RFC 1423 defines the padding technique used to support
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   686
   encryption of the canonically-encoded message text.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   687
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   688
4.3.2.4  Step 4: Printable Encoding
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   689
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   690
   This printable encoding step is applicable to PEM message types
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   691
   ENCRYPTED and MIC-ONLY.  The same processing is also employed in
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   692
   representation of certain specifically identified PEM encapsulated
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   693
   header field quantities as cited in Section 4.6.  Proceeding from
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   694
   left to right, the bit string resulting from step 3 is encoded into
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   695
   characters which are universally representable at all sites, though
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   696
   not necessarily with the same bit patterns (e.g., although the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   697
   character "E" is represented in an ASCII-based system as hexadecimal
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   698
   45 and as hexadecimal C5 in an EBCDIC-based system, the local
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   699
   significance of the two representations is equivalent).
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   700
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   701
   A 64-character subset of International Alphabet IA5 is used, enabling
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   702
   6 bits to be represented per printable character.  (The proposed
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   703
   subset of characters is represented identically in IA5 and ASCII.)
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   704
   The character "=" signifies a special processing function used for
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   705
   padding within the printable encoding procedure.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   706
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   707
   To represent the encapsulated text of a PEM message, the encoding
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   708
   function's output is delimited into text lines (using local
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   709
   conventions), with each line except the last containing exactly 64
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   710
   printable characters and the final line containing 64 or fewer
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   711
   printable characters.  (This line length is easily printable and is
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   712
   guaranteed to satisfy SMTP's 1000-character transmitted line length
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   713
   limit.) This folding requirement does not apply when the encoding
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   714
   procedure is used to represent PEM header field quantities; Section
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   715
   4.6 discusses folding of PEM encapsulated header fields.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   716
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   717
   The encoding process represents 24-bit groups of input bits as output
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   718
   strings of 4 encoded characters. Proceeding from left to right across
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   719
   a 24-bit input group extracted from the output of step 3, each 6-bit
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   720
   group is used as an index into an array of 64 printable characters.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   721
   The character referenced by the index is placed in the output string.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   722
   These characters, identified in Table 1, are selected so as to be
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   723
   universally representable, and the set excludes characters with
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   724
   particular significance to SMTP (e.g., ".", "<CR>", "<LF>").
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   725
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   726
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   727
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   728
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   729
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   730
Linn                                                           [Page 13]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   731

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   732
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   733
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   734
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   735
   Special processing is performed if fewer than 24 bits are available
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   736
   in an input group at the end of a message.  A full encoding quantum
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   737
   is always completed at the end of a message.  When fewer than 24
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   738
   input bits are available in an input group, zero bits are added (on
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   739
   the right) to form an integral number of 6-bit groups.  Output
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   740
   character positions which are not required to represent actual input
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   741
   data are set to the character "=".  Since all canonically encoded
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   742
   output is an integral number of octets, only the following cases can
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   743
   arise: (1) the final quantum of encoding input is an integral
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   744
   multiple of 24 bits; here, the final unit of encoded output will be
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   745
   an integral multiple of 4 characters with no "=" padding, (2) the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   746
   final quantum of encoding input is exactly 8 bits; here, the final
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   747
   unit of encoded output will be two characters followed by two "="
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   748
   padding characters, or (3) the final quantum of encoding input is
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   749
   exactly 16 bits; here, the final unit of encoded output will be three
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   750
   characters followed by one "=" padding character.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   751
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   752
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   753
   Value Encoding  Value Encoding  Value Encoding  Value Encoding
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   754
       0 A            17 R            34 i            51 z
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   755
       1 B            18 S            35 j            52 0
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   756
       2 C            19 T            36 k            53 1
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   757
       3 D            20 U            37 l            54 2
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   758
       4 E            21 V            38 m            55 3
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   759
       5 F            22 W            39 n            56 4
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   760
       6 G            23 X            40 o            57 5
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   761
       7 H            24 Y            41 p            58 6
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   762
       8 I            25 Z            42 q            59 7
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   763
       9 J            26 a            43 r            60 8
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   764
      10 K            27 b            44 s            61 9
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   765
      11 L            28 c            45 t            62 +
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   766
      12 M            29 d            46 u            63 /
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   767
      13 N            30 e            47 v
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   768
      14 O            31 f            48 w         (pad) =
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   769
      15 P            32 g            49 x
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   770
      16 Q            33 h            50 y
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   771
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   772
                  Printable Encoding Characters
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   773
                             Table 1
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   774
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   775
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   776
4.3.2.5  Summary of Transformations
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   777
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   778
   In summary, the outbound message is subjected to the following
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   779
   composition of transformations (or, for some PEM message types, a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   780
   subset thereof):
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   781
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   782
         Transmit_Form = Encode(Encrypt(Canonicalize(Local_Form)))
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   783
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   784
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   785
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   786
Linn                                                           [Page 14]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   787

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   788
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   789
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   790
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   791
   The inverse transformations are performed, in reverse order, to
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   792
   process inbound PEM messages:
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   793
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   794
       Local_Form = DeCanonicalize(Decipher(Decode(Transmit_Form)))
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   795
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   796
   Note that the local form and the functions to transform messages to
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   797
   and from canonical form may vary between the originator and recipient
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   798
   systems without loss of information.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   799
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   800
4.4  Encapsulation Mechanism
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   801
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   802
   The encapsulation techniques defined in RFC-934 [6] are adopted for
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   803
   encapsulation of PEM messages within separate enclosing MTS messages
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   804
   carrying associated MTS headers. This approach offers a number of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   805
   advantages relative to a flat approach in which certain fields within
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   806
   a single header are encrypted and/or carry cryptographic control
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   807
   information.  As far as the MTS is concerned, the entirety of a PEM
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   808
   message will reside in an MTS message's text portion, not the MTS
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   809
   message's header portion. Encapsulation provides generality and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   810
   segregates fields with user-to-user significance from those
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   811
   transformed in transit.  All fields inserted in the course of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   812
   encryption/authentication processing are placed in the encapsulated
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   813
   header.  This facilitates compatibility with mail handling programs
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   814
   which accept only text, not header fields, from input files or from
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   815
   other programs.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   816
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   817
   The encapsulation techniques defined in RFC-934 are consistent with
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   818
   existing Internet mail forwarding and bursting mechanisms.  These
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   819
   techniques are designed so that they may be used in a nested manner.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   820
   The encapsulation techniques may be used to encapsulate one or more
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   821
   PEM messages for forwarding to a third party, possibly in conjunction
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   822
   with interspersed (non-PEM) text which serves to annotate the PEM
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   823
   messages.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   824
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   825
   Two encapsulation boundaries (EB's) are defined for delimiting
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   826
   encapsulated PEM messages and for distinguishing encapsulated PEM
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   827
   messages from interspersed (non-PEM) text.  The pre-EB is the string
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   828
   "-----BEGIN PRIVACY-ENHANCED MESSAGE-----", indicating that an
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   829
   encapsulated PEM message follows.  The post-EB is either (1) another
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   830
   pre-EB indicating that another encapsulated PEM message follows, or
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   831
   (2) the string "-----END PRIVACY-ENHANCED MESSAGE-----" indicating
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   832
   that any text that immediately follows is non-PEM text.  A special
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   833
   point must be noted for the case of MIC-CLEAR messages, the text
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   834
   portions of which may contain lines which begin with the "-"
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   835
   character and which are therefore subject to special processing per
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   836
   RFC-934 forwarding procedures.  When the string "- " must be
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   837
   prepended to such a line in the course of a forwarding operation in
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   838
   order to distinguish that line from an encapsulation boundary, MIC
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   839
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   840
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   841
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   842
Linn                                                           [Page 15]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   843

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   844
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   845
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   846
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   847
   computation is to be performed prior to prepending the "- " string.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   848
   Figure 1 depicts the encapsulation of a single PEM message.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   849
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   850
   This RFC places no a priori limits on the depth to which such
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   851
   encapsulation may be nested nor on the number of PEM messages which
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   852
   may be grouped in this fashion at a single nesting level for
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   853
   forwarding.  A implementation compliant with this RFC must not
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   854
   preclude a user from submitting or receiving PEM messages which
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   855
   exploit this encapsulation capability.  However, no specific
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   856
   requirements are levied upon implementations with regard to how this
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   857
   capability is made available to the user.  Thus, for example, a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   858
   compliant PEM implementation is not required to automatically detect
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   859
   and process encapsulated PEM messages.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   860
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   861
   In using this encapsulation facility, it is important to note that it
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   862
   is inappropriate to forward directly to a third party a message that
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   863
   is ENCRYPTED because recipients of such a message would not have
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   864
   access to the DEK required to decrypt the message.  Instead, the user
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   865
   forwarding the message must transform the ENCRYPTED message into a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   866
   MIC-ONLY or MIC-CLEAR form prior to forwarding.  Thus, in order to
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   867
   comply with this RFC, a PEM implementation must provide a facility to
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   868
   enable a user to perform this transformation, while preserving the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   869
   MIC associated with the original message.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   870
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   871
   If a user wishes PEM-provided confidentiality protection for
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   872
   transmitted information, such information must occur in the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   873
   encapsulated text of an ENCRYPTED PEM message, not in the enclosing
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   874
   MTS header or PEM encapsulated header. If a user wishes to avoid
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   875
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   876
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   877
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   878
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   879
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   880
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   881
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   882
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   883
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   884
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   885
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   886
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   887
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   888
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   889
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   890
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   891
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   892
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   893
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   894
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   895
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   896
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   897
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   898
Linn                                                           [Page 16]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   899

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   900
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   901
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   902
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   903
   Encapsulated Message
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   904
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   905
       Pre-Encapsulation Boundary (Pre-EB)
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   906
           -----BEGIN PRIVACY-ENHANCED MESSAGE-----
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   907
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   908
       Encapsulated Header Portion
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   909
           (Contains encryption control fields inserted in plaintext.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   910
           Examples include "DEK-Info:" and "Key-Info:".
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   911
           Note that, although these control fields have line-oriented
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   912
           representations similar to RFC 822 header fields, the set
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   913
           of fields valid in this context is disjoint from those used
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   914
           in RFC 822 processing.)
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   915
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   916
       Blank Line
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   917
           (Separates Encapsulated Header from subsequent
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   918
           Encapsulated Text Portion)
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   919
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   920
       Encapsulated Text Portion
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   921
           (Contains message data encoded as specified in Section 4.3.)
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   922
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   923
       Post-Encapsulation Boundary (Post-EB)
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   924
           -----END PRIVACY-ENHANCED MESSAGE-----
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   925
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   926
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   927
                   Encapsulated Message Format
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   928
                            Figure 1
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   929
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   930
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   931
   disclosing the actual subject of a message to unintended parties, it
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   932
   is suggested that the enclosing MTS header contain a "Subject:" field
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   933
   indicating that "Encrypted Mail Follows".
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   934
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   935
   If an integrity-protected representation of information which occurs
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   936
   within an enclosing header (not necessarily in the same format as
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   937
   that in which it occurs within that header) is desired, that data can
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   938
   be included within the encapsulated text portion in addition to its
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   939
   inclusion in the enclosing MTS header.  For example, an originator
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   940
   wishing to provide recipients with a protected indication of a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   941
   message's position in a series of messages could include within the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   942
   encapsulated text a copy of a timestamp or message counter value
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   943
   possessing end-to-end significance and extracted from an enclosing
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   944
   MTS header field.  (Note: mailbox specifiers as entered by end users
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   945
   incorporate local conventions and are subject to modification at
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   946
   intermediaries, so inclusion of such specifiers within encapsulated
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   947
   text should not be regarded as a suitable alternative to the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   948
   authentication semantics defined in RFC 1422 and based on X.500
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   949
   Distinguished Names.) The set of header information (if any) included
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   950
   within the encapsulated text of messages is a local matter, and this
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   951
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   952
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   953
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   954
Linn                                                           [Page 17]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   955

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   956
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   957
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   958
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   959
   RFC does not specify formatting conventions to distinguish replicated
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   960
   header fields from other encapsulated text.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   961
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   962
4.5  Mail for Mailing Lists
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   963
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   964
   When mail is addressed to mailing lists, two different methods of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   965
   processing can be applicable: the IK-per-list method and the IK-per-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   966
   recipient method.  Hybrid approaches are also possible, as in the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   967
   case of IK-per-list protection of a message on its path from an
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   968
   originator to a PEM-equipped mailing list exploder, followed by IK-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   969
   per-recipient protection from the exploder to individual list
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   970
   recipients.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   971
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   972
   If a message's originator is equipped to expand a destination mailing
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   973
   list into its individual constituents and elects to do so (IK-per-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   974
   recipient), the message's DEK (and, in the symmetric key management
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   975
   case, MIC) will be encrypted under each per-recipient IK and all such
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   976
   encrypted representations will be incorporated into the transmitted
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   977
   message.  Note that per-recipient encryption is required only for the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   978
   relatively small DEK and MIC quantities carried in the "Key-Info:"
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   979
   field, not for the message text which is, in general, much larger.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   980
   Although more IKs are involved in processing under the IK-per-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   981
   recipient method, the pairwise IKs can be individually revoked and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   982
   possession of one IK does not enable a successful masquerade of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   983
   another user on the list.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   984
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   985
   If a message's originator addresses a message to a list name or
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   986
   alias, use of an IK associated with that name or alias as a entity
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   987
   (IK-per-list), rather than resolution of the name or alias to its
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   988
   constituent destinations, is implied. Such an IK must, therefore, be
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   989
   available to all list members. Unfortunately, it implies an
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   990
   undesirable level of exposure for the shared IK, and makes its
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   991
   revocation difficult.  Moreover, use of the IK-per-list method allows
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   992
   any holder of the list's IK to masquerade as another originator to
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   993
   the list for authentication purposes.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   994
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   995
   Pure IK-per-list key management in the asymmetric case (with a common
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   996
   private key shared among multiple list members) is particularly
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   997
   disadvantageous in the asymmetric environment, as it fails to
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   998
   preserve the forwardable authentication and non-repudiation
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
   999
   characteristics which are provided for other messages in this
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1000
   environment.  Use of a hybrid approach with a PEM-capable exploder is
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1001
   therefore particularly recommended for protection of mailing list
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1002
   traffic when asymmetric key management is used; such an exploder
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1003
   would reduce (per discussion in Section 4.4 of this RFC) incoming
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1004
   ENCRYPTED messages to MIC-ONLY or MIC-CLEAR form before forwarding
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1005
   them (perhaps re-encrypted under individual, per-recipient keys) to
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1006
   list members.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1007
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1008
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1009
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1010
Linn                                                           [Page 18]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1011

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1012
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1013
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1014
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1015
4.6  Summary of Encapsulated Header Fields
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1016
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1017
   This section defines the syntax and semantics of the encapsulated
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1018
   header fields to be added to messages in the course of privacy
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1019
   enhancement processing.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1020
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1021
   The fields are presented in three groups.  Normally, the groups will
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1022
   appear in encapsulated headers in the order in which they are shown,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1023
   though not all fields in each group will appear in all messages.  The
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1024
   following figures show the appearance of small example encapsulated
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1025
   messages.  Figure 2 assumes the use of symmetric cryptography for key
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1026
   management.  Figure 3 illustrates an example encapsulated ENCRYPTED
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1027
   message in which asymmetric key management is used.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1028
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1029
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1030
   -----BEGIN PRIVACY-ENHANCED MESSAGE-----
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1031
   Proc-Type: 4,ENCRYPTED
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1032
   Content-Domain: RFC822
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1033
   DEK-Info: DES-CBC,F8143EDE5960C597
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1034
   Originator-ID-Symmetric: linn@zendia.enet.dec.com,,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1035
   Recipient-ID-Symmetric: linn@zendia.enet.dec.com,ptf-kmc,3
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1036
   Key-Info: DES-ECB,RSA-MD2,9FD3AAD2F2691B9A,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1037
             B70665BB9BF7CBCDA60195DB94F727D3
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1038
   Recipient-ID-Symmetric: pem-dev@tis.com,ptf-kmc,4
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1039
   Key-Info: DES-ECB,RSA-MD2,161A3F75DC82EF26,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1040
             E2EF532C65CBCFF79F83A2658132DB47
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1041
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1042
   LLrHB0eJzyhP+/fSStdW8okeEnv47jxe7SJ/iN72ohNcUk2jHEUSoH1nvNSIWL9M
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1043
   8tEjmF/zxB+bATMtPjCUWbz8Lr9wloXIkjHUlBLpvXR0UrUzYbkNpk0agV2IzUpk
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1044
   J6UiRRGcDSvzrsoK+oNvqu6z7Xs5Xfz5rDqUcMlK1Z6720dcBWGGsDLpTpSCnpot
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1045
   dXd/H5LMDWnonNvPCwQUHt==
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1046
   -----END PRIVACY-ENHANCED MESSAGE-----
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1047
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1048
          Example Encapsulated Message (Symmetric Case)
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1049
                            Figure 2
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1050
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1051
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1052
   Figure 4 illustrates an example encapsulated MIC-ONLY message in
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1053
   which asymmetric key management is used; since no per-recipient keys
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1054
   are involved in preparation of asymmetric-case MIC-ONLY messages,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1055
   this example should be processable for test purposes by arbitrary PEM
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1056
   implementations.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1057
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1058
   Fully-qualified domain names (FQDNs) for hosts, appearing in the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1059
   mailbox names found in entity identifier subfields of "Originator-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1060
   ID-Symmetric:" and "Recipient-ID-Symmetric:" fields, are processed in
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1061
   a case-insensitive fashion.  Unless specified to the contrary, other
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1062
   field arguments (including the user name components of mailbox names)
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1063
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1064
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1065
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1066
Linn                                                           [Page 19]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1067

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1068
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1069
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1070
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1071
   are to be processed in a case-sensitive fashion.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1072
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1073
   In most cases, numeric quantities are represented in header fields as
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1074
   contiguous strings of hexadecimal digits, where each digit is
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1075
   represented by a character from the ranges "0"-"9" or upper case
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1076
   "A"-"F".  Since public-key certificates and quantities encrypted
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1077
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1078
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1079
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1080
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1081
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1082
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1083
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1084
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1085
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1086
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1087
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1088
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1089
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1090
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1091
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1092
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1093
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1094
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1095
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1096
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1097
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1098
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1099
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1100
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1101
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1102
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1103
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1104
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1105
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1106
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1107
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1108
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1109
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1110
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1111
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1112
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1113
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1114
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1115
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1116
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1117
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1118
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1119
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1120
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1121
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1122
Linn                                                           [Page 20]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1123

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1124
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1125
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1126
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1127
   -----BEGIN PRIVACY-ENHANCED MESSAGE-----
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1128
   Proc-Type: 4,ENCRYPTED
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1129
   Content-Domain: RFC822
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1130
   DEK-Info: DES-CBC,BFF968AA74691AC1
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1131
   Originator-Certificate:
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1132
    MIIBlTCCAScCAWUwDQYJKoZIhvcNAQECBQAwUTELMAkGA1UEBhMCVVMxIDAeBgNV
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1133
    BAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMQ8wDQYDVQQLEwZCZXRhIDExDzAN
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1134
    BgNVBAsTBk5PVEFSWTAeFw05MTA5MDQxODM4MTdaFw05MzA5MDMxODM4MTZaMEUx
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1135
    CzAJBgNVBAYTAlVTMSAwHgYDVQQKExdSU0EgRGF0YSBTZWN1cml0eSwgSW5jLjEU
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1136
    MBIGA1UEAxMLVGVzdCBVc2VyIDEwWTAKBgRVCAEBAgICAANLADBIAkEAwHZHl7i+
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1137
    yJcqDtjJCowzTdBJrdAiLAnSC+CnnjOJELyuQiBgkGrgIh3j8/x0fM+YrsyF1u3F
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1138
    LZPVtzlndhYFJQIDAQABMA0GCSqGSIb3DQEBAgUAA1kACKr0PqphJYw1j+YPtcIq
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1139
    iWlFPuN5jJ79Khfg7ASFxskYkEMjRNZV/HZDZQEhtVaU7Jxfzs2wfX5byMp2X3U/
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1140
    5XUXGx7qusDgHQGs7Jk9W8CW1fuSWUgN4w==
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1141
   Key-Info: RSA,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1142
    I3rRIGXUGWAF8js5wCzRTkdhO34PTHdRZY9Tuvm03M+NM7fx6qc5udixps2Lng0+
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1143
    wGrtiUm/ovtKdinz6ZQ/aQ==
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1144
   Issuer-Certificate:
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1145
    MIIB3DCCAUgCAQowDQYJKoZIhvcNAQECBQAwTzELMAkGA1UEBhMCVVMxIDAeBgNV
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1146
    BAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMQ8wDQYDVQQLEwZCZXRhIDExDTAL
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1147
    BgNVBAsTBFRMQ0EwHhcNOTEwOTAxMDgwMDAwWhcNOTIwOTAxMDc1OTU5WjBRMQsw
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1148
    CQYDVQQGEwJVUzEgMB4GA1UEChMXUlNBIERhdGEgU2VjdXJpdHksIEluYy4xDzAN
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1149
    BgNVBAsTBkJldGEgMTEPMA0GA1UECxMGTk9UQVJZMHAwCgYEVQgBAQICArwDYgAw
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1150
    XwJYCsnp6lQCxYykNlODwutF/jMJ3kL+3PjYyHOwk+/9rLg6X65B/LD4bJHtO5XW
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1151
    cqAz/7R7XhjYCm0PcqbdzoACZtIlETrKrcJiDYoP+DkZ8k1gCk7hQHpbIwIDAQAB
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1152
    MA0GCSqGSIb3DQEBAgUAA38AAICPv4f9Gx/tY4+p+4DB7MV+tKZnvBoy8zgoMGOx
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1153
    dD2jMZ/3HsyWKWgSF0eH/AJB3qr9zosG47pyMnTf3aSy2nBO7CMxpUWRBcXUpE+x
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1154
    EREZd9++32ofGBIXaialnOgVUn0OzSYgugiQ077nJLDUj0hQehCizEs5wUJ35a5h
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1155
   MIC-Info: RSA-MD5,RSA,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1156
    UdFJR8u/TIGhfH65ieewe2lOW4tooa3vZCvVNGBZirf/7nrgzWDABz8w9NsXSexv
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1157
    AjRFbHoNPzBuxwmOAFeA0HJszL4yBvhG
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1158
   Recipient-ID-Asymmetric:
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1159
    MFExCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdSU0EgRGF0YSBTZWN1cml0eSwgSW5j
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1160
    LjEPMA0GA1UECxMGQmV0YSAxMQ8wDQYDVQQLEwZOT1RBUlk=,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1161
    66
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1162
   Key-Info: RSA,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1163
    O6BS1ww9CTyHPtS3bMLD+L0hejdvX6Qv1HK2ds2sQPEaXhX8EhvVphHYTjwekdWv
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1164
    7x0Z3Jx2vTAhOYHMcqqCjA==
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1165
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1166
   qeWlj/YJ2Uf5ng9yznPbtD0mYloSwIuV9FRYx+gzY+8iXd/NQrXHfi6/MhPfPF3d
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1167
   jIqCJAxvld2xgqQimUzoS1a4r7kQQ5c/Iua4LqKeq3ciFzEv/MbZhA==
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1168
   -----END PRIVACY-ENHANCED MESSAGE-----
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1169
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1170
    Example Encapsulated ENCRYPTED Message (Asymmetric Case)
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1171
                            Figure 3
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1172
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1173
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1174
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1175
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1176
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1177
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1178
Linn                                                           [Page 21]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1179

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1180
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1181
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1182
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1183
   using asymmetric algorithms are large in size, use of a more space-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1184
   efficient encoding technique is appropriate for such quantities, and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1185
   the encoding mechanism defined in Section 4.3.2.4 of this RFC,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1186
   representing 6 bits per printed character, is adopted for this
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1187
   purpose.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1188
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1189
   Encapsulated headers of PEM messages are folded using whitespace per
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1190
   RFC 822 header folding conventions; no PEM-specific conventions are
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1191
   defined for encapsulated header folding.  The example shown in Figure
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1192
   4 shows (in its "MIC-Info:" field) an asymmetrically encrypted
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1193
   quantity in its printably encoded representation, illustrating the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1194
   use of RFC 822 folding.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1195
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1196
   In contrast to the encapsulated header representations defined in RFC
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1197
   1113 and its precursors, the field identifiers adopted in this RFC do
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1198
   not begin with the prefix "X-" (for example, the field previously
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1199
   denoted "X-Key-Info:" is now denoted "Key-Info:") and such prefixes
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1200
   are not to be emitted by implementations conformant to this RFC.  To
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1201
   simplify transition and interoperability with earlier
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1202
   implementations, it is suggested that implementations based on this
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1203
   RFC accept incoming encapsulated header fields carrying the "X-"
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1204
   prefix and act on such fields as if the "X-" were not present.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1205
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1206
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1207
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1208
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1209
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1210
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1211
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1212
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1213
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1214
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1215
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1216
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1217
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1218
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1219
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1220
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1221
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1222
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1223
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1224
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1225
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1226
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1227
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1228
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1229
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1230
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1231
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1232
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1233
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1234
Linn                                                           [Page 22]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1235

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1236
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1237
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1238
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1239
   -----BEGIN PRIVACY-ENHANCED MESSAGE-----
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1240
   Proc-Type: 4,MIC-ONLY
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1241
   Content-Domain: RFC822
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1242
   Originator-Certificate:
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1243
    MIIBlTCCAScCAWUwDQYJKoZIhvcNAQECBQAwUTELMAkGA1UEBhMCVVMxIDAeBgNV
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1244
    BAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMQ8wDQYDVQQLEwZCZXRhIDExDzAN
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1245
    BgNVBAsTBk5PVEFSWTAeFw05MTA5MDQxODM4MTdaFw05MzA5MDMxODM4MTZaMEUx
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1246
    CzAJBgNVBAYTAlVTMSAwHgYDVQQKExdSU0EgRGF0YSBTZWN1cml0eSwgSW5jLjEU
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1247
    MBIGA1UEAxMLVGVzdCBVc2VyIDEwWTAKBgRVCAEBAgICAANLADBIAkEAwHZHl7i+
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1248
    yJcqDtjJCowzTdBJrdAiLAnSC+CnnjOJELyuQiBgkGrgIh3j8/x0fM+YrsyF1u3F
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1249
    LZPVtzlndhYFJQIDAQABMA0GCSqGSIb3DQEBAgUAA1kACKr0PqphJYw1j+YPtcIq
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1250
    iWlFPuN5jJ79Khfg7ASFxskYkEMjRNZV/HZDZQEhtVaU7Jxfzs2wfX5byMp2X3U/
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1251
    5XUXGx7qusDgHQGs7Jk9W8CW1fuSWUgN4w==
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1252
   Issuer-Certificate:
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1253
    MIIB3DCCAUgCAQowDQYJKoZIhvcNAQECBQAwTzELMAkGA1UEBhMCVVMxIDAeBgNV
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1254
    BAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMQ8wDQYDVQQLEwZCZXRhIDExDTAL
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1255
    BgNVBAsTBFRMQ0EwHhcNOTEwOTAxMDgwMDAwWhcNOTIwOTAxMDc1OTU5WjBRMQsw
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1256
    CQYDVQQGEwJVUzEgMB4GA1UEChMXUlNBIERhdGEgU2VjdXJpdHksIEluYy4xDzAN
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1257
    BgNVBAsTBkJldGEgMTEPMA0GA1UECxMGTk9UQVJZMHAwCgYEVQgBAQICArwDYgAw
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1258
    XwJYCsnp6lQCxYykNlODwutF/jMJ3kL+3PjYyHOwk+/9rLg6X65B/LD4bJHtO5XW
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1259
    cqAz/7R7XhjYCm0PcqbdzoACZtIlETrKrcJiDYoP+DkZ8k1gCk7hQHpbIwIDAQAB
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1260
    MA0GCSqGSIb3DQEBAgUAA38AAICPv4f9Gx/tY4+p+4DB7MV+tKZnvBoy8zgoMGOx
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1261
    dD2jMZ/3HsyWKWgSF0eH/AJB3qr9zosG47pyMnTf3aSy2nBO7CMxpUWRBcXUpE+x
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1262
    EREZd9++32ofGBIXaialnOgVUn0OzSYgugiQ077nJLDUj0hQehCizEs5wUJ35a5h
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1263
   MIC-Info: RSA-MD5,RSA,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1264
    jV2OfH+nnXHU8bnL8kPAad/mSQlTDZlbVuxvZAOVRZ5q5+Ejl5bQvqNeqOUNQjr6
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1265
    EtE7K2QDeVMCyXsdJlA8fA==
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1266
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1267
   LSBBIG1lc3NhZ2UgZm9yIHVzZSBpbiB0ZXN0aW5nLg0KLSBGb2xsb3dpbmcgaXMg
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1268
   YSBibGFuayBsaW5lOg0KDQpUaGlzIGlzIHRoZSBlbmQuDQo=
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1269
   -----END PRIVACY-ENHANCED MESSAGE-----
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1270
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1271
     Example Encapsulated MIC-ONLY Message (Asymmetric Case)
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1272
                            Figure 4
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1273
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1274
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1275
4.6.1  Per-Message Encapsulated Header Fields
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1276
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1277
   This group of encapsulated header fields contains fields which occur
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1278
   no more than once in a PEM message, generally preceding all other
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1279
   encapsulated header fields.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1280
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1281
4.6.1.1  Proc-Type Field
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1282
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1283
   The "Proc-Type:" encapsulated header field, required for all PEM
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1284
   messages, identifies the type of processing performed on the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1285
   transmitted message.  Only one "Proc-Type:" field occurs in a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1286
   message; the "Proc-Type:" field must be the first encapsulated header
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1287
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1288
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1289
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1290
Linn                                                           [Page 23]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1291

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1292
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1293
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1294
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1295
   field in the message.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1296
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1297
   The "Proc-Type:" field has two subfields, separated by a comma.  The
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1298
   first subfield is a decimal number which is used to distinguish among
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1299
   incompatible encapsulated header field interpretations which may
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1300
   arise as changes are made to this standard.  Messages processed
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1301
   according to this RFC will carry the subfield value "4" to
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1302
   distinguish them from messages processed in accordance with prior PEM
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1303
   RFCs.  The second subfield assumes one of a set of string values,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1304
   defined in the following subsections.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1305
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1306
4.6.1.1.1  ENCRYPTED
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1307
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1308
   The "ENCRYPTED" specifier signifies that confidentiality,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1309
   authentication, integrity, and (given use of asymmetric key
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1310
   management) non-repudiation of origin security services have been
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1311
   applied to a PEM message's encapsulated text.  ENCRYPTED messages
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1312
   require a "DEK-Info:" field and individual Recipient-ID and "Key-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1313
   Info:" fields for all message recipients.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1314
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1315
4.6.1.1.2  MIC-ONLY
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1316
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1317
   The "MIC-ONLY" specifier signifies that all of the security services
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1318
   specified for ENCRYPTED messages, with the exception of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1319
   confidentiality, have been applied to a PEM message's encapsulated
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1320
   text. MIC-ONLY messages are encoded (per Section 4.3.2.4 of this RFC)
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1321
   to protect their encapsulated text against modifications at message
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1322
   transfer or relay points.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1323
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1324
   Specification of MIC-ONLY, when applied in conjunction with certain
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1325
   combinations of key management and MIC algorithm options, permits
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1326
   certain fields which are superfluous in the absence of encryption to
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1327
   be omitted from the encapsulated header.  In particular, when a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1328
   keyless MIC computation is employed for recipients for whom
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1329
   asymmetric cryptography is used, "Recipient-ID-Asymmetric:" and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1330
   "Key-Info:" fields can be omitted.  The "DEK-Info:" field can be
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1331
   omitted for all "MIC-ONLY" messages.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1332
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1333
4.6.1.1.3  MIC-CLEAR
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1334
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1335
   The "MIC-CLEAR" specifier represents a PEM message with the same
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1336
   security service selection as for a MIC-ONLY message.  The set of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1337
   encapsulated header fields required in a MIC-CLEAR message is the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1338
   same as that required for a MIC-ONLY message.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1339
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1340
   MIC-CLEAR message processing omits the encoding step defined in
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1341
   Section 4.3.2.4 of this RFC to protect a message's encapsulated text
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1342
   against modifications within the MTS.  As a result, a MIC-CLEAR
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1343
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1344
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1345
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1346
Linn                                                           [Page 24]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1347

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1348
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1349
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1350
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1351
   message's text can be read by recipients lacking access to PEM
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1352
   software, even though such recipients cannot validate the message's
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1353
   signature. The canonical encoding discussed in Section 4.3.2.2 is
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1354
   performed, so interoperation among sites with different native
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1355
   character sets and line representations is not precluded so long as
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1356
   those native formats are unambiguously translatable to and from the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1357
   canonical form.  (Such interoperability is feasible only for those
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1358
   characters which are included in the canonical representation set.)
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1359
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1360
   Omission of the printable encoding step implies that MIC-CLEAR
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1361
   message MICs will be validatable only in environments where the MTS
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1362
   does not modify messages in transit, or where the modifications
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1363
   performed can be determined and inverted before MIC validation
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1364
   processing.  Failed MIC validation on a MIC-CLEAR message does not,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1365
   therefore, necessarily signify a security-relevant event; as a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1366
   result, it is recommended that PEM implementations reflect to their
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1367
   users (in a suitable local fashion) the type of PEM message being
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1368
   processed when reporting a MIC validation failure.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1369
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1370
   A case of particular relevance arises for inbound SMTP processing on
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1371
   systems which delimit text lines with local native representations
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1372
   other than the SMTP-conventional <CR><LF>.  When mail is delivered to
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1373
   a UA on such a system and presented for PEM processing, the <CR><LF>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1374
   has already been translated to local form.  In order to validate a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1375
   MIC-CLEAR message's MIC in this situation, the PEM module must
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1376
   recanonicalize the incoming message in order to determine the inter-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1377
   SMTP representation of the canonically encoded message (as defined in
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1378
   Section 4.3.2.2 of this RFC), and must compute the reference MIC
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1379
   based on that representation.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1380
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1381
4.6.1.1.4  CRL
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1382
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1383
   The "CRL" specifier indicates a special PEM message type, used to
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1384
   transfer one or more Certificate Revocation Lists.  The format of PEM
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1385
   CRLs is defined in RFC 1422.  No user data or encapsulated text
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1386
   accompanies an encapsulated header specifying the CRL message type; a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1387
   correctly-formed CRL message's PEM header is immediately followed by
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1388
   its terminating message boundary line, with no blank line
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1389
   intervening.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1390
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1391
   Only three types of fields are valid in the encapsulated header
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1392
   comprising a CRL message.  The "CRL:" field carries a printable
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1393
   representation of a CRL, encoded using the procedures defined in
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1394
   Section 4.3.2.4 of this RFC. "CRL:" fields may (as an option) be
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1395
   followed by no more than one "Originator-Certificate:" field and any
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1396
   number of "Issuer-Certificate:" fields. The "Originator-Certificate:"
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1397
   and "Issuer-Certificate:" fields refer to the most recently previous
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1398
   "CRL:" field, and provide certificates useful in validating the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1399
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1400
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1401
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1402
Linn                                                           [Page 25]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1403

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1404
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1405
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1406
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1407
   signature included in the CRL.  "Originator-Certificate:" and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1408
   "Issuer-Certificate:" fields' contents are the same for CRL messages
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1409
   as they are for other PEM message types.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1410
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1411
4.6.1.2  Content-Domain Field
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1412
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1413
   The "Content-Domain:" encapsulated header field describes the type of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1414
   content which is represented within a PEM message's encapsulated
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1415
   text.  It carries one string argument, whose value is defined as
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1416
   "RFC822" to indicate processing of RFC-822 mail as defined in this
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1417
   specification.  It is anticipated that additional "Content-Domain:"
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1418
   values will be defined subsequently, in additional or successor
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1419
   documents to this specification. Only one "Content-Domain:" field
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1420
   occurs in a PEM message; this field is the PEM message's second
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1421
   encapsulated header field, immediately following the "Proc-Type:"
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1422
   field.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1423
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1424
4.6.1.3  DEK-Info Field
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1425
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1426
   The "DEK-Info:" encapsulated header field identifies the message text
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1427
   encryption algorithm and mode, and also carries any cryptographic
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1428
   parameters (e.g., IVs) used for message encryption.  No more than one
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1429
   "DEK-Info:" field occurs in a message; the field is required for all
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1430
   messages specified as "ENCRYPTED" in the "Proc-Type:" field.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1431
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1432
   The "DEK-Info:" field carries either one argument or two arguments
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1433
   separated by a comma.  The first argument identifies the algorithm
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1434
   and mode used for message text encryption.  The second argument, if
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1435
   present, carries any cryptographic parameters required by the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1436
   algorithm and mode identified in the first argument.  Appropriate
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1437
   message encryption algorithms, modes and identifiers and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1438
   corresponding cryptographic parameters and formats are defined in RFC
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1439
   1423.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1440
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1441
4.6.2  Encapsulated Header Fields Normally Per-Message
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1442
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1443
   This group of encapsulated header fields contains fields which
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1444
   ordinarily occur no more than once per message.  Depending on the key
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1445
   management option(s) employed, some of these fields may be absent
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1446
   from some messages.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1447
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1448
4.6.2.1  Originator-ID Fields
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1449
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1450
   Originator-ID encapsulated header fields identify a message's
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1451
   originator and provide the originator's IK identification component.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1452
   Two varieties of Originator-ID fields are defined, the "Originator-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1453
   ID-Asymmetric:" and "Originator-ID-Symmetric:" field.  An
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1454
   "Originator-ID-Symmetric:" header field is required for all PEM
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1455
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1456
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1457
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1458
Linn                                                           [Page 26]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1459

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1460
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1461
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1462
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1463
   messages employing symmetric key management.  The analogous
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1464
   "Originator-ID-Asymmetric:" field, for the asymmetric key management
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1465
   case, is used only when no corresponding "Originator-Certificate:"
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1466
   field is included.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1467
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1468
   Most commonly, only one Originator-ID or "Originator-Certificate:"
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1469
   field will occur within a message. For the symmetric case, the IK
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1470
   identification component carried in an "Originator-ID-Symmetric:"
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1471
   field applies to processing of all subsequent "Recipient-ID-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1472
   Symmetric:" fields until another "Originator-ID-Symmetric:" field
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1473
   occurs.  It is illegal for a "Recipient-ID-Symmetric:" field to occur
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1474
   before a corresponding "Originator-ID-Symmetric:" field has been
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1475
   provided.  For the asymmetric case, processing of "Recipient-ID-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1476
   Asymmetric:" fields is logically independent of preceding
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1477
   "Originator-ID-Asymmetric:" and "Originator-Certificate:" fields.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1478
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1479
   Multiple Originator-ID and/or "Originator-Certificate:" fields may
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1480
   occur in a message when different originator-oriented IK components
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1481
   must be used by a message's originator in order to prepare a message
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1482
   so as to be suitable for processing by different recipients. In
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1483
   particular, multiple such fields will occur when both symmetric and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1484
   asymmetric cryptography are applied to a single message in order to
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1485
   process the message for different recipients.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1486
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1487
   Originator-ID subfields are delimited by the comma character (","),
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1488
   optionally followed by whitespace.  Section 5.2, Interchange Keys,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1489
   discusses the semantics of these subfields and specifies the alphabet
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1490
   from which they are chosen.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1491
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1492
4.6.2.1.1  Originator-ID-Asymmetric Field
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1493
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1494
   The "Originator-ID-Asymmetric:" field contains an Issuing Authority
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1495
   subfield, and then a Version/Expiration subfield.  This field is used
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1496
   only when the information it carries is not available from an
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1497
   included "Originator-Certificate:" field.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1498
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1499
4.6.2.1.2  Originator-ID-Symmetric Field
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1500
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1501
   The "Originator-ID-Symmetric:" field contains an Entity Identifier
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1502
   subfield, followed by an (optional) Issuing Authority subfield, and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1503
   then an (optional) Version/Expiration subfield.  Optional
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1504
   "Originator-ID-Symmetric:" subfields may be omitted only if rendered
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1505
   redundant by information carried in subsequent "Recipient-ID-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1506
   Symmetric:" fields, and will normally be omitted in such cases.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1507
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1508
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1509
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1510
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1511
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1512
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1513
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1514
Linn                                                           [Page 27]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1515

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1516
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1517
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1518
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1519
4.6.2.2  Originator-Certificate Field
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1520
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1521
   The "Originator-Certificate:" encapsulated header field is used only
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1522
   when asymmetric key management is employed for one or more of a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1523
   message's recipients.  To facilitate processing by recipients (at
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1524
   least in advance of general directory server availability), inclusion
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1525
   of this field in all messages is strongly recommended.  The field
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1526
   transfers an originator's certificate as a numeric quantity,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1527
   comprised of the certificate's DER encoding, represented in the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1528
   header field with the encoding mechanism defined in Section 4.3.2.4
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1529
   of this RFC.  The semantics of a certificate are discussed in RFC
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1530
   1422.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1531
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1532
4.6.2.3  MIC-Info Field
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1533
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1534
   The "MIC-Info:" encapsulated header field, used only when asymmetric
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1535
   key management is employed for at least one recipient of a message,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1536
   carries three arguments, separated by commas.  The first argument
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1537
   identifies the algorithm under which the accompanying MIC is
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1538
   computed.  The second argument identifies the algorithm under which
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1539
   the accompanying MIC is signed.  The third argument represents a MIC
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1540
   signed with an originator's private key.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1541
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1542
   For the case of ENCRYPTED PEM messages, the signed MIC is, in turn,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1543
   symmetrically encrypted using the same DEK, algorithm, mode and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1544
   cryptographic parameters as are used to encrypt the message's
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1545
   encapsulated text.  This measure prevents unauthorized recipients
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1546
   from determining whether an intercepted message corresponds to a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1547
   predetermined plaintext value.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1548
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1549
   Appropriate MIC algorithms and identifiers, signature algorithms and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1550
   identifiers, and signed MIC formats are defined in RFC 1423.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1551
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1552
   A "MIC-Info:" field will occur after a sequence of fields beginning
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1553
   with a "Originator-ID-Asymmetric:" or "Originator-Certificate:" field
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1554
   and followed by any associated "Issuer-Certificate:" fields.  A
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1555
   "MIC-Info:" field applies to all subsequent recipients for whom
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1556
   asymmetric key management is used, until and unless overridden by a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1557
   subsequent "Originator-ID-Asymmetric:" or "Originator-Certificate:"
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1558
   and corresponding "MIC-Info:".
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1559
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1560
4.6.3  Encapsulated Header Fields with Variable Occurrences
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1561
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1562
   This group of encapsulated header fields contains fields which will
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1563
   normally occur variable numbers of times within a message, with
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1564
   numbers of occurrences ranging from zero to non-zero values which are
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1565
   independent of the number of recipients.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1566
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1567
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1568
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1569
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1570
Linn                                                           [Page 28]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1571

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1572
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1573
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1574
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1575
4.6.3.1  Issuer-Certificate Field
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1576
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1577
   The "Issuer-Certificate:" encapsulated header field is meaningful
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1578
   only when asymmetric key management is used for at least one of a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1579
   message's recipients.  A typical "Issuer-Certificate:" field would
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1580
   contain the certificate containing the public component used to sign
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1581
   the certificate carried in the message's "Originator-Certificate:"
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1582
   field, for recipients' use in chaining through that certificate's
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1583
   certification path.  Other "Issuer-Certificate:" fields, typically
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1584
   representing higher points in a certification path, also may be
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1585
   included by an originator.  It is recommended that the "Issuer-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1586
   Certificate:" fields be included in an order corresponding to
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1587
   successive points in a certification path leading from the originator
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1588
   to a common point shared with the message's recipients (i.e., the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1589
   Internet Certification Authority (ICA), unless a lower Policy
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1590
   Certification Authority (PCA) or CA is common to all recipients.)
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1591
   More information on certification paths can be found in RFC 1422.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1592
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1593
   The certificate is represented in the same manner as defined for the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1594
   "Originator-Certificate:" field (transporting an encoded
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1595
   representation of the certificate in X.509 [7] DER form), and any
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1596
   "Issuer-Certificate:" fields will ordinarily follow the "Originator-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1597
   Certificate:" field directly.  Use of the "Issuer-Certificate:" field
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1598
   is optional even when asymmetric key management is employed, although
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1599
   its incorporation is strongly recommended in the absence of alternate
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1600
   directory server facilities from which recipients can access issuers'
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1601
   certificates.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1602
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1603
4.6.4  Per-Recipient Encapsulated Header Fields
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1604
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1605
   The encapsulated header fields in this group appear for each of an
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1606
   "ENCRYPTED" message's named recipients.  For "MIC-ONLY" and "MIC-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1607
   CLEAR" messages, these fields are omitted for recipients for whom
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1608
   asymmetric key management is employed in conjunction with a keyless
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1609
   MIC algorithm but the fields appear for recipients for whom symmetric
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1610
   key management or a keyed MIC algorithm is employed.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1611
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1612
4.6.4.1  Recipient-ID Fields
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1613
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1614
   A Recipient-ID encapsulated header field identifies a recipient and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1615
   provides the recipient's IK identification component.  One
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1616
   Recipient-ID field is included for each of a message's named
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1617
   recipients. Section 5.2, Interchange Keys, discusses the semantics of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1618
   the subfields and specifies the alphabet from which they are chosen.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1619
   Recipient-ID subfields are delimited by the comma character (","),
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1620
   optionally followed by whitespace.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1621
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1622
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1623
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1624
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1625
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1626
Linn                                                           [Page 29]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1627

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1628
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1629
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1630
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1631
   For the symmetric case, all "Recipient-ID-Symmetric:" fields are
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1632
   interpreted in the context of the most recent preceding "Originator-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1633
   ID-Symmetric:" field.  It is illegal for a "Recipient-ID-Symmetric:"
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1634
   field to occur in a header before the occurrence of a corresponding
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1635
   "Originator-ID-Symmetric:" field.  For the asymmetric case,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1636
   "Recipient-ID-Asymmetric:" fields are logically independent of a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1637
   message's "Originator-ID-Asymmetric:" and "Originator-Certificate:"
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1638
   fields.  "Recipient-ID-Asymmetric:" fields, and their associated
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1639
   "Key-Info:" fields, are included following a header's originator-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1640
   oriented fields.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1641
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1642
4.6.4.1.1  Recipient-ID-Asymmetric Field
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1643
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1644
   The "Recipient-ID-Asymmetric:" field contains, in order, an Issuing
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1645
   Authority subfield and a Version/Expiration subfield.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1646
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1647
4.6.4.1.2  Recipient-ID-Symmetric Field
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1648
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1649
   The "Recipient-ID-Symmetric:" field contains, in order, an Entity
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1650
   Identifier subfield, an (optional) Issuing Authority subfield, and an
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1651
   (optional) Version/Expiration subfield.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1652
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1653
4.6.4.2  Key-Info Field
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1654
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1655
   One "Key-Info:" field is included for each of a message's named
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1656
   recipients.  In addition, it is recommended that PEM implementations
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1657
   support (as a locally-selectable option) the ability to include a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1658
   "Key-Info:" field corresponding to a PEM message's originator,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1659
   following an Originator-ID or "Originator-Certificate:" field and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1660
   before any associated Recipient-ID fields, but inclusion of such a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1661
   field is not a requirement for conformance with this RFC.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1662
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1663
   Each "Key-Info:" field is interpreted in the context of the most
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1664
   recent preceding Originator-ID, "Originator-Certificate:", or
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1665
   Recipient-ID field; normally, a "Key-Info:" field will immediately
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1666
   follow its associated predecessor field. The "Key-Info:" field's
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1667
   argument(s) differ depending on whether symmetric or asymmetric key
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1668
   management is used for a particular recipient.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1669
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1670
4.6.4.2.1  Symmetric Key Management
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1671
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1672
   When symmetric key management is employed for a given recipient, the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1673
   "Key-Info:" encapsulated header field transfers four items, separated
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1674
   by commas: an IK Use Indicator, a MIC Algorithm Indicator, a DEK and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1675
   a MIC.  The IK Use Indicator identifies the algorithm and mode in
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1676
   which the identified IK was used for DEK and MIC encryption for a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1677
   particular recipient.  The MIC Algorithm Indicator identifies the MIC
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1678
   computation algorithm used for a particular recipient.  The DEK and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1679
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1680
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1681
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1682
Linn                                                           [Page 30]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1683

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1684
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1685
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1686
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1687
   MIC are symmetrically encrypted under the IK identified by a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1688
   preceding "Recipient-ID-Symmetric:" field and/or prior "Originator-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1689
   ID-Symmetric:" field.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1690
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1691
   Appropriate symmetric encryption algorithms, modes and identifiers,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1692
   MIC computation algorithms and identifiers, and encrypted DEK and MIC
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1693
   formats are defined in RFC 1423.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1694
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1695
4.6.4.2.2  Asymmetric Key Management
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1696
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1697
   When asymmetric key management is employed for a given recipient, the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1698
   "Key-Info:" field transfers two quantities, separated by a comma.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1699
   The first argument is an IK Use Indicator identifying the algorithm
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1700
   and mode in which the DEK is asymmetrically encrypted.  The second
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1701
   argument is a DEK, asymmetrically encrypted under the recipient's
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1702
   public component.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1703
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1704
   Appropriate asymmetric encryption algorithms and identifiers, and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1705
   encrypted DEK formats are defined in RFC 1423.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1706
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1707
5.  Key Management
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1708
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1709
   Several cryptographic constructs are involved in supporting the PEM
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1710
   message processing procedure.  A set of fundamental elements is
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1711
   assumed.  Data Encrypting Keys (DEKs) are used to encrypt message
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1712
   text and (for some MIC computation algorithms) in the message
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1713
   integrity check (MIC) computation process.  Interchange Keys (IKs)
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1714
   are used to encrypt DEKs and MICs for transmission with messages.  In
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1715
   a certificate-based asymmetric key management architecture,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1716
   certificates are used as a means to provide entities' public
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1717
   components and other information in a fashion which is securely bound
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1718
   by a central authority.  The remainder of this section provides more
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1719
   information about these constructs.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1720
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1721
5.1  Data Encrypting Keys (DEKs)
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1722
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1723
   Data Encrypting Keys (DEKs) are used for encryption of message text
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1724
   and (with some MIC computation algorithms) for computation of message
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1725
   integrity check quantities (MICs).  In the asymmetric key management
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1726
   case, they are also used for encrypting signed MICs in ENCRYPTED PEM
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1727
   messages.  It is strongly recommended that DEKs be generated and used
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1728
   on a one-time, per-message, basis.  A transmitted message will
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1729
   incorporate a representation of the DEK encrypted under an
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1730
   appropriate interchange key (IK) for each of the named recipients.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1731
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1732
   DEK generation can be performed either centrally by key distribution
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1733
   centers (KDCs) or  by endpoint systems.  Dedicated KDC systems may be
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1734
   able to  implement stronger algorithms for random DEK generation than
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1735
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1736
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1737
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1738
Linn                                                           [Page 31]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1739

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1740
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1741
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1742
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1743
   can be supported in endpoint systems.  On the other hand,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1744
   decentralization allows endpoints to be relatively self-sufficient,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1745
   reducing the level of trust which must be placed in components other
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1746
   than those of a message's originator and recipient.  Moreover,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1747
   decentralized DEK generation at endpoints reduces the frequency with
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1748
   which originators must make real-time queries of (potentially unique)
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1749
   servers in order to send mail, enhancing communications availability.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1750
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1751
   When symmetric key management is used, one advantage of centralized
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1752
   KDC-based generation is that DEKs can be returned to endpoints
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1753
   already encrypted under the IKs of message recipients rather than
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1754
   providing the IKs to the originators.  This reduces IK exposure and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1755
   simplifies endpoint key management requirements.  This approach has
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1756
   less value if asymmetric cryptography is used for key management,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1757
   since per-recipient public IK components are assumed to be generally
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1758
   available and per-originator private IK components need not
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1759
   necessarily be shared with a KDC.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1760
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1761
5.2  Interchange Keys (IKs)
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1762
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1763
   Interchange Key (IK) components are used to encrypt DEKs and MICs.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1764
   In general, IK granularity is at the pairwise per-user level except
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1765
   for mail sent to address lists comprising multiple users.  In order
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1766
   for two principals to engage in a useful exchange of PEM using
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1767
   conventional cryptography, they must first possess common IK
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1768
   components (when symmetric key management is used) or complementary
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1769
   IK components (when asymmetric key management is used).  When
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1770
   symmetric cryptography is used, the IK consists of a single
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1771
   component, used to encrypt both DEKs and MICs.  When asymmetric
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1772
   cryptography is used, a recipient's public component is used as an IK
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1773
   to encrypt DEKs (a transformation invertible only by a recipient
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1774
   possessing the corresponding private component), and the originator's
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1775
   private component is used to encrypt MICs (a transformation
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1776
   invertible by all recipients, since the originator's certificate
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1777
   provides all recipients with the public component required to perform
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1778
   MIC validation.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1779
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1780
   This RFC does not prescribe the means by which interchange keys are
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1781
   made available to appropriate parties; such means may be centralized
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1782
   (e.g., via key management servers) or decentralized (e.g., via
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1783
   pairwise agreement and direct distribution among users).  In any
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1784
   case, any given IK component is associated with a responsible Issuing
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1785
   Authority (IA).  When certificate-based asymmetric key management, as
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1786
   discussed in RFC [1422, is employed, the IA function is performed by
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1787
   a Certification Authority (CA).
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1788
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1789
   When an IA generates and distributes an IK component, associated
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1790
   control information is provided to direct how it is to be used.  In
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1791
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1792
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1793
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1794
Linn                                                           [Page 32]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1795

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1796
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1797
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1798
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1799
   order to select the appropriate IK(s) to use in message encryption,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1800
   an originator must retain a correspondence between IK components and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1801
   the recipients with which they are associated.  Expiration date
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1802
   information must also be retained, in order that cached entries may
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1803
   be invalidated and replaced as appropriate.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1804
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1805
   Since a message may be sent with multiple IK components identified,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1806
   corresponding to multiple intended recipients, each recipient's UA
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1807
   must be able to determine that recipient's intended IK component.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1808
   Moreover, if no corresponding IK component is available in the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1809
   recipient's database when a message arrives, the recipient must be
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1810
   able to identify the required IK component and identify that IK
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1811
   component's associated IA.  Note that different IKs may be used for
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1812
   different messages between a pair of communicants.  Consider, for
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1813
   example, one message sent from A to B and another message sent (using
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1814
   the IK-per-list method) from A to a mailing list of which B is a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1815
   member.  The first message would use IK components associated
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1816
   individually with A and B, but the second would use an IK component
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1817
   shared among list members.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1818
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1819
   When a PEM message is transmitted, an indication of the IK components
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1820
   used for DEK and MIC encryption must be included.  To this end,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1821
   Originator-ID and Recipient-ID encapsulated header fields provide
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1822
   (some or all of) the following data:
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1823
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1824
        1.  Identification of the relevant Issuing Authority (IA
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1825
            subfield)
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1826
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1827
        2.  Identification of an entity with which a particular IK
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1828
            component is associated (Entity Identifier or EI subfield)
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1829
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1830
        3.  Version/Expiration subfield
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1831
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1832
   In the asymmetric case, all necessary information associated with an
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1833
   originator can be acquired by processing the certificate carried in
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1834
   an "Originator-Certificate:" field; to avoid redundancy in this case,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1835
   no "Originator-ID-Asymmetric:" field is included if a corresponding
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1836
   "Originator-Certificate:" appears.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1837
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1838
   The comma character (",") is used to delimit the subfields within an
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1839
   Originator-ID or Recipient-ID.  The IA, EI, and version/expiration
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1840
   subfields are generated from a restricted character set, as
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1841
   prescribed by the following BNF (using notation as defined in RFC
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1842
   822, Sections 2 and 3.3):
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1843
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1844
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1845
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1846
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1847
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1848
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1849
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1850
Linn                                                           [Page 33]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1851

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1852
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1853
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1854
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1855
   IKsubfld       :=       1*ia-char
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1856
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1857
   ia-char        :=       DIGIT / ALPHA / "'" / "+" / "(" / ")" /
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1858
                           "." / "/" / "=" / "?" / "-" / "@" /
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1859
                           "%" / "!" / '"' / "_" / "<" / ">"
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1860
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1861
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1862
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1863
   An example Recipient-ID field for the symmetric case is as follows:
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1864
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1865
   Recipient-ID-Symmetric: linn@zendia.enet.dec.com,ptf-kmc,2
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1866
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1867
   This example field indicates that IA "ptf-kmc" has issued an IK
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1868
   component for use on messages sent  to "linn@zendia.enet.dec.com",
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1869
   and that the IA has provided the number 2 as a version indicator for
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1870
   that IK component.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1871
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1872
   An example Recipient-ID field for the asymmetric case is as follows:
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1873
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1874
   Recipient-ID-Asymmetric:
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1875
    MFExCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdSU0EgRGF0YSBTZWN1cml0eSwgSW5j
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1876
    LjEPMA0GA1UECxMGQmV0YSAxMQ8wDQYDVQQLEwZOT1RBUlk=,66
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1877
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1878
   This example field includes the printably encoded BER representation
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1879
   of a certificate's issuer distinguished name, along with the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1880
   certificate serial number 66 as assigned by that issuer.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1881
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1882
5.2.1  Subfield Definitions
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1883
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1884
   The following subsections define the subfields of Originator-ID and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1885
   Recipient-ID fields.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1886
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1887
5.2.1.1  Entity Identifier Subfield
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1888
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1889
   An entity identifier (used only for "Originator-ID-Symmetric:" and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1890
   "Recipient-ID-Symmetric:" fields) is constructed as an IKsubfld.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1891
   More restrictively, an entity identifier subfield assumes the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1892
   following form:
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1893
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1894
                      <user>@<domain-qualified-host>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1895
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1896
   In order to support universal interoperability, it is necessary to
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1897
   assume a universal form for the naming information.  For the case of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1898
   installations which transform local host names before transmission
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1899
   into the broader Internet, it is strongly recommended that the host
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1900
   name as presented to the Internet be employed.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1901
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1902
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1903
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1904
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1905
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1906
Linn                                                           [Page 34]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1907

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1908
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1909
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1910
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1911
5.2.1.2  Issuing Authority Subfield
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1912
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1913
   An IA identifier subfield is constructed as an IKsubfld.  This RFC
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1914
   does not define this subfield's contents for the symmetric key
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1915
   management case. Any prospective IAs which are to issue symmetric
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1916
   keys for use in conjunction with this RFC must coordinate assignment
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1917
   of IA identifiers in a manner (centralized or hierarchic) which
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1918
   assures uniqueness.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1919
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1920
   For the asymmetric key management case, the IA identifier subfield
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1921
   will be formed from the ASN.1 BER representation of the distinguished
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1922
   name of the issuing organization or organizational unit.  The
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1923
   distinguished encoding rules specified in Clause 8.7 of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1924
   Recommendation X.509 ("X.509 DER") are to be employed in generating
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1925
   this representation.  The encoded binary result will be represented
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1926
   for inclusion in a transmitted header using the procedure defined in
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1927
   Section 4.3.2.4 of this RFC.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1928
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1929
5.2.1.3  Version/Expiration Subfield
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1930
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1931
   A version/expiration subfield is constructed as an IKsubfld.  For the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1932
   symmetric key management case, the version/expiration subfield format
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1933
   is permitted to vary among different IAs, but must satisfy certain
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1934
   functional constraints.  An IA's version/expiration subfields must be
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1935
   sufficient to distinguish among the set of IK components issued by
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1936
   that IA for a given identified entity.  Use of a monotonically
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1937
   increasing number is sufficient to distinguish among the IK
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1938
   components provided for an entity by an IA; use of a timestamp
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1939
   additionally allows an expiration time or date to be prescribed for
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1940
   an IK component.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1941
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1942
   For the asymmetric key management case, the version/expiration
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1943
   subfield's value is the hexadecimal serial number of the certificate
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1944
   being used in conjunction with the originator or recipient specified
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1945
   in the "Originator-ID-Asymmetric:" or "Recipient-ID-Asymmetric:"
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1946
   field in which the subfield occurs.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1947
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1948
5.2.2  IK Cryptoperiod Issues
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1949
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1950
   An IK component's cryptoperiod is dictated in part by a tradeoff
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1951
   between key management overhead and revocation responsiveness.  It
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1952
   would be undesirable to delete an IK component permanently before
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1953
   receipt of a message encrypted using that IK component, as this would
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1954
   render the message permanently undecipherable.  Access to an expired
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1955
   IK component would be needed, for example, to process mail received
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1956
   by a user (or system) which had been inactive for an extended period
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1957
   of time.  In order to enable very old IK components to be deleted, a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1958
   message's recipient desiring encrypted local long term storage should
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1959
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1960
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1961
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1962
Linn                                                           [Page 35]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1963

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1964
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1965
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1966
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1967
   transform the DEK used for message text encryption via re-encryption
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1968
   under a locally maintained IK, rather than relying on IA maintenance
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1969
   of old IK components for indefinite periods.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1970
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1971
6.  User Naming
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1972
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1973
   Unique naming of electronic mail users, as is needed in order to
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1974
   select corresponding keys correctly, is an important topic and one
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1975
   which has received (and continues to receive) significant study.  For
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1976
   the symmetric case, IK components are identified in PEM headers
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1977
   through use of mailbox specifiers in traditional Internet-wide form
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1978
   ("user@domain-qualified-host"). Successful operation in this mode
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1979
   relies on users (or their PEM implementations) being able to
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1980
   determine the universal-form names corresponding to PEM originators
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1981
   and recipients.  If a PEM implementation operates in an environment
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1982
   where addresses in a local form differing from the universal form are
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1983
   used, translations must be performed in order to map between the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1984
   universal form and that local representation.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1985
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1986
   The use of user identifiers unrelated to the hosts on which the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1987
   users' mailboxes reside offers generality and value.  X.500
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1988
   distinguished names, as employed in the certificates of the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1989
   recommended key management infrastructure defined in RFC 1422,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1990
   provide a basis for such user identification. As directory services
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1991
   become more pervasive, they will offer originators a means to search
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1992
   for desired recipients which is based on a broader set of attributes
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1993
   than mailbox specifiers alone. Future work is anticipated in
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1994
   integration with directory services, particularly the mechanisms and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1995
   naming schema of the Internet OSI directory pilot activity.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1996
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1997
7.  Example User Interface and Implementation
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1998
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  1999
   In order to place the mechanisms and approaches discussed in this RFC
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2000
   into context, this section presents an overview of a hypothetical
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2001
   prototype implementation.   This implementation is a standalone
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2002
   program   which is invoked by a user, and   lies above the existing
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2003
   UA sublayer.  In the UNIX system, and possibly in other environments
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2004
   as well,  such a program can be invoked as a "filter" within an
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2005
   electronic mail UA or a  text editor, simplifying the sequence of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2006
   operations which must be performed by  the user. This form of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2007
   integration offers the  advantage that the program can be used in
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2008
   conjunction with a range of UA  programs, rather than being
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2009
   compatible only with a particular UA.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2010
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2011
   When a user wishes to apply privacy enhancements to an outgoing
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2012
   message, the user prepares the message's text and invokes the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2013
   standalone program, which in turn generates output suitable for
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2014
   transmission via the UA.  When a user receives a PEM message, the UA
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2015
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2016
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2017
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2018
Linn                                                           [Page 36]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2019

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2020
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2021
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2022
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2023
   delivers the message in encrypted form, suitable for decryption and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2024
   associated processing by the standalone program.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2025
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2026
   In this prototype implementation, a cache of IK components is
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2027
   maintained in a local file, with entries managed manually based on
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2028
   information provided by originators and recipients.  For the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2029
   asymmetric key management case, certificates are acquired for a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2030
   user's PEM correspondents; in advance and/or in addition to retrieval
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2031
   of certificates from directories, they can be extracted from the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2032
   "Originator-Certificate:" fields of received PEM messages.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2033
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2034
   The IK/certificate cache is, effectively, a simple database indexed
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2035
   by mailbox names.  IK components are selected for transmitted
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2036
   messages based on the originator's identity and on recipient names,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2037
   and corresponding Originator-ID, "Originator-Certificate:", and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2038
   Recipient-ID fields are placed into the message's encapsulated
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2039
   header.  When a message is received, these fields are used as a basis
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2040
   for a lookup in the database, yielding the appropriate IK component
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2041
   entries.  DEKs and cryptographic parameters (e.g., IVs) are generated
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2042
   dynamically within the program.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2043
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2044
   Options and destination addresses are selected by command line
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2045
   arguments to the standalone program.  The function of specifying
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2046
   destination addresses to the privacy enhancement program is logically
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2047
   distinct from the function of specifying the corresponding addresses
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2048
   to the UA for use by the MTS.  This separation results from the fact
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2049
   that, in many cases, the local form of an address as specified to a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2050
   UA differs from the Internet global form as used in "Originator-ID-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2051
   Symmetric:" and "Recipient-ID-Symmetric:" fields.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2052
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2053
8.  Minimum Essential Requirements
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2054
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2055
   This section summarizes particular capabilities which an
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2056
   implementation must provide for full conformance with this RFC.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2057
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2058
   RFC 1422 specifies asymmetric, certificate-based key management
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2059
   procedures to support the message processing procedures defined in
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2060
   this document; PEM implementation support for these key management
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2061
   procedures is strongly encouraged.  Implementations supporting these
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2062
   procedures must also be equipped to display the names of originator
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2063
   and recipient PEM users in the X.500 DN form as authenticated by the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2064
   procedures of RFC 1422.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2065
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2066
   The message processing procedures defined here can also be used with
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2067
   symmetric key management techniques, though no RFCs analogous to RFC
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2068
   1422 are currently available to provide correspondingly detailed
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2069
   description of suitable symmetric key management procedures.   A
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2070
   complete PEM implementation must support at least one of these
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2071
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2072
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2073
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2074
Linn                                                           [Page 37]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2075

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2076
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2077
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2078
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2079
   asymmetric and/or symmetric key management modes.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2080
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2081
   A full implementation of PEM is expected to be able to send and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2082
   receive ENCRYPTED, MIC-ONLY, and MIC-CLEAR messages, and to receive
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2083
   CRL messages.  Some level of support for generating and processing
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2084
   nested and annotated PEM messages (for forwarding purposes) is to be
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2085
   provided, and an implementation should be able to reduce ENCRYPTED
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2086
   messages to MIC-ONLY or MIC-CLEAR for forwarding. Fully-conformant
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2087
   implementations must be able to emit Certificate and Issuer-
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2088
   Certificate fields, and to include a Key-Info field corresponding to
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2089
   the originator, but users or configurers of PEM implementations may
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2090
   be allowed the option of deactivating those features.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2091
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2092
9.  Descriptive Grammar
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2093
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2094
   This section provides a grammar describing the construction of a PEM
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2095
   message.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2096
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2097
   ; PEM BNF representation, using RFC 822 notation.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2098
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2099
   ; imports field meta-syntax (field, field-name, field-body,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2100
   ; field-body-contents) from RFC-822, sec. 3.2
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2101
   ; imports DIGIT, ALPHA, CRLF, text from RFC-822
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2102
   ; Note: algorithm and mode specifiers are officially defined
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2103
   ; in RFC 1423
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2104
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2105
   <pemmsg> ::= <preeb>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2106
                <pemhdr>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2107
                [CRLF <pemtext>]   ; absent for CRL message
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2108
                <posteb>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2109
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2110
   <preeb> ::= "-----BEGIN PRIVACY-ENHANCED MESSAGE-----" CRLF
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2111
   <posteb> ::= "-----END PRIVACY-ENHANCED MESSAGE-----" CRLF / <preeb>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2112
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2113
   <pemtext> ::= <encbinbody>      ; for ENCRYPTED or MIC-ONLY messages
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2114
               / *(<text> CRLF)    ; for MIC-CLEAR
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2115
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2116
   <pemhdr> ::= <normalhdr> / <crlhdr>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2117
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2118
   <normalhdr> ::=  <proctype>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2119
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2120
               <contentdomain>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2121
               [<dekinfo>]         ; needed if ENCRYPTED
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2122
               (1*(<origflds> *<recipflds>)) ; symmetric case --
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2123
                            ; recipflds included for all proc types
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2124
               / ((1*<origflds>) *(<recipflds>)) ; asymmetric case --
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2125
                            ; recipflds included for ENCRYPTED proc type
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2126
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2127
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2128
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2129
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2130
Linn                                                           [Page 38]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2131

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2132
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2133
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2134
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2135
   <crlhdr> ::= <proctype>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2136
               1*(<crl> [<cert>] *(<issuercert>))
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2137
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2138
   <asymmorig> ::= <origid-asymm> / <cert>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2139
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2140
   <origflds> ::= <asymmorig> [<keyinfo>] *(<issuercert>)
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2141
                  <micinfo>                        ; asymmetric
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2142
                  / <origid-symm> [<keyinfo>]      ; symmetric
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2143
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2144
   <recipflds> ::= <recipid> <keyinfo>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2145
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2146
   ; definitions for PEM header fields
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2147
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2148
   <proctype> ::= "Proc-Type" ":" "4" "," <pemtypes> CRLF
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2149
   <contentdomain> ::= "Content-Domain" ":" <contentdescrip> CRLF
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2150
   <dekinfo> ::= "DEK-Info" ":" <dekalgid> [ "," <dekparameters> ] CRLF
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2151
   <symmid> ::= <IKsubfld> "," [<IKsubfld>] "," [<IKsubfld>]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2152
   <asymmid> ::= <IKsubfld> "," <IKsubfld>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2153
   <origid-asymm> ::= "Originator-ID-Asymmetric" ":" <asymmid> CRLF
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2154
   <origid-symm> ::= "Originator-ID-Symmetric" ":" <symmid> CRLF
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2155
   <recipid> ::= <recipid-asymm> / <recipid-symm>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2156
   <recipid-asymm> ::= "Recipient-ID-Asymmetric" ":" <asymmid> CRLF
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2157
   <recipid-symm> ::= "Recipient-ID-Symmetric" ":" <symmid> CRLF
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2158
   <cert> ::= "Originator-Certificate" ":" <encbin> CRLF
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2159
   <issuercert> ::= "Issuer-Certificate" ":" <encbin> CRLF
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2160
   <micinfo> ::= "MIC-Info" ":" <micalgid> "," <ikalgid> ","
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2161
                  <asymsignmic> CRLF
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2162
   <keyinfo> ::= "Key-Info" ":" <ikalgid> "," <micalgid> ","
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2163
                 <symencdek> "," <symencmic> CRLF     ; symmetric case
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2164
                 / "Key-Info" ":" <ikalgid> "," <asymencdek>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2165
                 CRLF                                ; asymmetric case
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2166
   <crl> ::= "CRL" ":" <encbin> CRLF
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2167
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2168
   <pemtypes> ::= "ENCRYPTED" / "MIC-ONLY" / "MIC-CLEAR" / "CRL"
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2169
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2170
   <encbinchar> ::= ALPHA / DIGIT / "+" / "/" / "="
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2171
   <encbingrp> ::= 4*4<encbinchar>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2172
   <encbin> ::= 1*<encbingrp>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2173
   <encbinbody> ::= *(16*16<encbingrp> CRLF) [1*16<encbingrp> CRLF]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2174
   <IKsubfld> ::= 1*<ia-char>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2175
   ; Note: "," removed from <ia-char> set so that Orig-ID and Recip-ID
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2176
   ; fields can be delimited with commas (not colons) like all other
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2177
   ; fields
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2178
   <ia-char> ::=  DIGIT / ALPHA / "'" / "+" / "(" / ")" /
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2179
                  "." / "/" / "=" / "?" / "-" / "@" /
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2180
                  "%" / "!" / '"' / "_" / "<" / ">"
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2181
   <hexchar> ::= DIGIT / "A" / "B" / "C" / "D" / "E" / "F"
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2182
                                                      ; no lower case
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2183
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2184
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2185
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2186
Linn                                                           [Page 39]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2187

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2188
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2189
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2190
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2191
   ; This specification defines one value ("RFC822") for
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2192
   ; <contentdescrip>: other values may be defined in future in
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2193
   ; separate or successor documents
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2194
   ;
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2195
   <contentdescrip> ::= "RFC822"
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2196
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2197
   ; The following items are defined in RFC 1423
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2198
   ;  <dekalgid>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2199
   ;  <dekparameters>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2200
   ;  <micalgid>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2201
   ;  <ikalgid>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2202
   ;  <asymsignmic>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2203
   ;  <symencdek>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2204
   ;  <symencmic>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2205
   ;  <asymencdek>
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2206
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2207
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2208
NOTES:
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2209
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2210
     [1]  Key generation for MIC computation and message text encryption
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2211
          may either be performed by the sending host or by a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2212
          centralized server.  This RFC does not constrain this design
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2213
          alternative.  Section 5.1 identifies possible advantages of a
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2214
          centralized server approach if symmetric key management is
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2215
          employed.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2216
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2217
     [2]  Postel, J., "Simple Mail Transfer Protocol", STD 10,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2218
          RFC 821, August 1982.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2219
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2220
     [3]  This transformation should occur only at an SMTP endpoint, not
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2221
          at an intervening relay, but may take place at a gateway
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2222
          system linking the SMTP realm with other environments.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2223
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2224
     [4]  Use of a canonicalization procedure similar to that of SMTP
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2225
          was selected because its functions are widely used and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2226
          implemented within the Internet mail community, not for
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2227
          purposes of SMTP interoperability with this intermediate
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2228
          result.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2229
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2230
     [5]  Crocker, D., "Standard for the Format of ARPA Internet Text
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2231
          Messages", STD 11, RFC 822, August 1982.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2232
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2233
     [6]  Rose, M. T. and Stefferud, E. A., "Proposed Standard for
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2234
          Message Encapsulation", RFC 934, January 1985.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2235
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2236
     [7]  CCITT Recommendation X.509 (1988), "The Directory -
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2237
          Authentication Framework".
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2238
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2239
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2240
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2241
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2242
Linn                                                           [Page 40]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2243

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2244
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2245
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2246
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2247
     [8]  Throughout this RFC we have adopted the terms "private
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2248
          component" and "public component" to refer to the quantities
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2249
          which are, respectively, kept secret and made publicly
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2250
          available in asymmetric cryptosystems.  This convention is
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2251
          adopted to avoid possible confusion arising from use of the
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2252
          term "secret key" to refer to either the former quantity or to
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2253
          a key in a symmetric cryptosystem.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2254
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2255
Patent Statement
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2256
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2257
   This version of Privacy Enhanced Mail (PEM) relies on the use of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2258
   patented public key encryption technology for authentication and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2259
   encryption.  The Internet Standards Process as defined in RFC 1310
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2260
   requires a written statement from the Patent holder that a license
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2261
   will be made available to applicants under reasonable terms and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2262
   conditions prior to approving a specification as a Proposed, Draft or
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2263
   Internet Standard.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2264
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2265
   The Massachusetts Institute of Technology and the Board of Trustees
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2266
   of the Leland Stanford Junior University have granted Public Key
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2267
   Partners (PKP) exclusive sub-licensing rights to the following
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2268
   patents issued in the United States, and all of their corresponding
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2269
   foreign patents:
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2270
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2271
      Cryptographic Apparatus and Method
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2272
      ("Diffie-Hellman")............................... No. 4,200,770
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2273
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2274
      Public Key Cryptographic Apparatus
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2275
      and Method ("Hellman-Merkle").................... No. 4,218,582
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2276
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2277
      Cryptographic Communications System and
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2278
      Method ("RSA")................................... No. 4,405,829
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2279
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2280
      Exponential Cryptographic Apparatus
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2281
      and Method ("Hellman-Pohlig").................... No. 4,424,414
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2282
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2283
   These patents are stated by PKP to cover all known methods of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2284
   practicing the art of Public Key encryption, including the variations
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2285
   collectively known as El Gamal.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2286
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2287
   Public Key Partners has provided written assurance to the Internet
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2288
   Society that parties will be able to obtain, under reasonable,
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2289
   nondiscriminatory terms, the right to use the technology covered by
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2290
   these patents.  This assurance is documented in RFC 1170 titled
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2291
   "Public Key Standards and Licenses".  A copy of the written assurance
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2292
   dated April 20, 1990, may be obtained from the Internet Assigned
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2293
   Number Authority (IANA).
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2294
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2295
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2296
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2297
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2298
Linn                                                           [Page 41]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2299

09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2300
RFC 1421        Privacy Enhancement for Electronic Mail    February 1993
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2301
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2302
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2303
   The Internet Society, Internet Architecture Board, Internet
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2304
   Engineering Steering Group and the Corporation for National Research
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2305
   Initiatives take no position on the validity or scope of the patents
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2306
   and patent applications, nor on the appropriateness of the terms of
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2307
   the assurance.  The Internet Society and other groups mentioned above
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2308
   have not made any determination as to any other intellectual property
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2309
   rights which may apply to the practice of this standard. Any further
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2310
   consideration of these matters is the user's own responsibility.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2311
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2312
Security Considerations
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2313
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2314
   This entire document is about security.
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2315
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2316
Author's Address
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2317
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2318
   John Linn
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2319
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2320
   EMail: 104-8456@mcimail.com
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2321
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2322
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2323
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2324
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2325
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2326
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2327
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2328
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2329
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2330
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2331
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2332
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2333
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2334
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2335
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2336
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2337
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2338
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2339
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2340
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2341
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2342
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2343
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2344
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2345
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2346
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2347
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2348
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2349
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2350
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2351
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2352
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2353
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2354
Linn                                                           [Page 42]
09ec33061ff3 Added 'ia5' binary, and fixed the ia5 functions.
viric@llimona
parents:
diff changeset
  2355