draft-ietf-smime-compression-03.txt   draft-ietf-smime-compression-04.txt 
Internet Draft Editor: Peter Gutmann Internet Draft Editor: Peter Gutmann
draft-ietf-smime-compression-03.txt University of Auckland draft-ietf-smime-compression-04.txt University of Auckland
November 21, 2000 May 8, 2001
Expires May 2001 Expires November 2001
Compressed Data Content Type for S/MIME Compressed Data Content Type for CMS
Status of this memo Status of this memo
This document is an Internet-Draft and is in full conformance with all This document is an Internet-Draft and is in full conformance with all
provisions of Section 10 of RFC2026. provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering Task Internet-Drafts are working documents of the Internet Engineering Task
Force (IETF), its areas, and its working groups. Note that other Force (IETF), its areas, and its working groups. Note that other
groups may also distribute working documents as Internet-Drafts. groups may also distribute working documents as Internet-Drafts.
skipping to change at line 65 skipping to change at line 65
1.1 Compressed Data Content Type 1.1 Compressed Data Content Type
The compressed-data content type consists of content of any type The compressed-data content type consists of content of any type
compressed using a specified algorithm. The following object compressed using a specified algorithm. The following object
identifier identifies the compressed-data content type: identifier identifies the compressed-data content type:
id-ct-compressedData OBJECT IDENTIFIER ::= { iso(1) member-body(2) id-ct-compressedData OBJECT IDENTIFIER ::= { iso(1) member-body(2)
us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) ct(1) 9 } us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) ct(1) 9 }
The compressed-data content type shall have ASN.1 type The compressed-data content type shall have ASN.1 type CompressedData:
CompressedData:
CompressedData ::= SEQUENCE { CompressedData ::= SEQUENCE {
version CMSVersion, version CMSVersion,
compressionAlgorithm CompressionAlgorithmIdentifier, compressionAlgorithm CompressionAlgorithmIdentifier,
encapContentInfo EncapsulatedContentInfo encapContentInfo EncapsulatedContentInfo
} }
The fields of type CompressedData have the following meanings: The fields of type CompressedData have the following meanings:
version is the syntax version number. It MUST be 0. Details of version is the syntax version number. It MUST be 0. Details of
skipping to change at line 88 skipping to change at line 87
10.2.5. 10.2.5.
compressionAlgorithm is a compression algorithm identifier, as compressionAlgorithm is a compression algorithm identifier, as
defined in section 2. defined in section 2.
encapContentInfo is the content which is compressed. Details of encapContentInfo is the content which is compressed. Details of
the EncapsulatedContentInfo type are discussed in CMS [RFC2630], the EncapsulatedContentInfo type are discussed in CMS [RFC2630],
section 5.2. section 5.2.
Implementations SHOULD use the SMIMECapabilities attribute to indicate Implementations SHOULD use the SMIMECapabilities attribute to indicate
their ability to process compressed content types. A compression their ability to process compressed content types. Details of
SMIMECapability consists of the AlgorithmIdentifier for the supported SMIMECapabilities are discussed in MSG [RFC2633], section 2.5.2
compression algorithm, in the case of the algorithm specified in this
document this is id-alg-zlibCompression with parameters NULL. A compression SMIMECapability consists of the AlgorithmIdentifier for
Alternatively, the use of compression may be handled by prior the supported compression algorithm, in the case of the algorithm
arrangement (for example as part of an interoperability profile). specified in this document this is id-alg-zlibCompression as specified
in section 2. Alternatively, the use of compression may be handled by
prior arrangement (for example as part of an interoperability
profile).
The SMIMECapability SEQUENCE representing the ability to process
content compressed with the algorithm identified by id-alg-
zlibCompression MUST be DER-encoded as the following hexadecimal
string:
30 0D 06 0B 2A 86 48 86 F7 0D 01 09 10 03 08
(but see also the implementation note in section 2.1).
2. Compression Types 2. Compression Types
CMS implementations SHOULD include ZLIB [RFC1950] [RFC1951], which is CMS implementations SHOULD include ZLIB [RFC1950] [RFC1951], which is
free of any intellectual property restrictions and has a freely- free of any intellectual property restrictions and has a freely-
available, portable and efficient reference implementation. The available, portable and efficient reference implementation. The
following object identifier identifies ZLIB: following object identifier identifies ZLIB:
id-alg-zlibCompress OBJECT IDENTIFIER ::= { iso(1) member-body(2) id-alg-zlibCompress OBJECT IDENTIFIER ::= { iso(1) member-body(2)
us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) alg(3) 8 } us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) alg(3) 8 }
The parameters for this algorithm are NULL. This algorithm has null parameters (but see the implementation note in
section 2.1 for comments on this field).
2.1. Implementation notes
ZLIB allows for a number of compression levels ranging from good but
slow compression to less good but fast compression. The compression
level is always compatible with the decompression algorithm, so there
is no need to specify the compression level as an algorithm parameter.
There are two possible encodings for the ZLIB null parameters field
which arise from the fact that when the 1988 syntax for
AlgorithmIdentifier was translated into the 1997 syntax, the OPTIONAL
associated with the AlgorithmIdentifier parameters got lost. Later it
was recovered via a defect report, but by then everyone thought that
algorithm parameters were mandatory. Because of this some
implementations will encode null parameters as an ASN.1 NULL element
and some will omit them entirely (see for example section 12 of CMS
[RFC2630]). Although the correct encoding is to omit the parameters
field, implementations may encounter encodings which use an ASN.1
NULL element for the parameters.
3. Security Considerations 3. Security Considerations
This RFC is not concerned with security, except for the fact that This RFC is not concerned with security, except for the fact that
compressing data before encryption can enhance the security provided compressing data before encryption can enhance the security provided
by other processing steps by reducing the quantity of known plaintext by other processing steps by reducing the quantity of known plaintext
available to an attacker. available to an attacker.
Author Address Author Address
skipping to change at line 138 skipping to change at line 169
S.Bradner, March 1997. S.Bradner, March 1997.
RFC1950 ZLIB Compressed Data Format Specification version 3.3, RFC1950 ZLIB Compressed Data Format Specification version 3.3,
P.Deutsch and J-L Gailly, May 1996. P.Deutsch and J-L Gailly, May 1996.
RFC1951 DEFLATE Compressed Data Format Specification version 1.3, RFC1951 DEFLATE Compressed Data Format Specification version 1.3,
P.Deutsch, May 1996. P.Deutsch, May 1996.
RFC2630 Cryptographic Message Syntax, R.Housley, June 1999. RFC2630 Cryptographic Message Syntax, R.Housley, June 1999.
RFC2633 S/MIME Version 3 Message Specification, B.Ramsdell, June
1999.
Appendix A: ASN.1 Module Appendix A: ASN.1 Module
CompressedDataContent CompressedDataContent
{ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9)
smime(16) modules(0) compress(11) } smime(16) modules(0) compress(11) }
DEFINITIONS IMPLICIT TAGS ::= DEFINITIONS IMPLICIT TAGS ::=
BEGIN BEGIN
IMPORTS IMPORTS
skipping to change at line 162 skipping to change at line 196
{ joint-iso-itu-t ds(5) module(1) authenticationFramework(7) 3 }; { joint-iso-itu-t ds(5) module(1) authenticationFramework(7) 3 };
CompressedData ::= SEQUENCE { CompressedData ::= SEQUENCE {
version CMSVersion, -- Always set to 0 version CMSVersion, -- Always set to 0
compressionAlgorithm CompressionAlgorithmIdentifier, compressionAlgorithm CompressionAlgorithmIdentifier,
encapContentInfo EncapsulatedContentInfo encapContentInfo EncapsulatedContentInfo
} }
CompressionAlgorithmIdentifer ::= AlgorithmIdentifier CompressionAlgorithmIdentifer ::= AlgorithmIdentifier
-- Algorithm Identifiers
id-alg-zlibCompress OBJECT IDENTIFIER ::= { iso(1) member-body(2)
us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) alg(3) 8 }
-- Content Type Object Identifiers
id-ct-compressedData OBJECT IDENTIFIER ::= { iso(1) member-body(2)
us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) ct(1) 9 }
END END
Full Copyright Statement Full Copyright Statement
Copyright (C) The Internet Society 2000. All Rights Reserved. Copyright (C) The Internet Society 2001. All Rights Reserved.
This document and translations of it may be copied and furnished to This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published and or assist in its implementation may be prepared, copied, published and
distributed, in whole or in part, without restriction of any kind, distributed, in whole or in part, without restriction of any kind,
provided that the above copyright notice and this paragraph are provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of developing Internet organizations, except as needed for the purpose of developing
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/