draft-ietf-smime-compression-05.txt   draft-ietf-smime-compression-06.txt 
Internet Draft Editor: Peter Gutmann Internet Draft Editor: Peter Gutmann
draft-ietf-smime-compression-05.txt University of Auckland draft-ietf-smime-compression-06.txt University of Auckland
July 17, 2001 August 30, 2001
Expires January 2002 Expires February 2002
Compressed Data Content Type for CMS 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
skipping to change at line 29 skipping to change at line 29
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference material time. It is inappropriate to use Internet-Drafts as reference material
or to cite them other than as "work in progress." or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
Copyright (C) The Internet Society July 2001. All Rights Reserved.
Abstract Abstract
The Cryptographic Message Syntax data format doesn't currently contain The Cryptographic Message Syntax data format doesn't currently contain
any provisions for compressing data before processing it. Compressing any provisions for compressing data before processing it. Compressing
data before transmission provides a number of advantages including the data before transmission provides a number of advantages including the
elimination of data redundancy which could help an attacker, speeding elimination of data redundancy which could help an attacker, speeding
up processing by reducing the amount of data to be processed by later up processing by reducing the amount of data to be processed by later
steps such as signing or encryption, and reducing overall message size. steps such as signing or encryption, and reducing overall message size.
Although there have been proposals for adding compression at other Although there have been proposals for adding compression at other
levels (for example at the MIME or SSL level) these don't address the levels (for example at the MIME or SSL level) these don't address the
problem of compression of CMS content unless the compression is problem of compression of CMS content unless the compression is
supplied by an external means (for example by intermixing MIME and supplied by an external means (for example by intermixing MIME and
CMS). This document defines a format for using compressed data as a CMS). This document defines a format for using compressed data as a
CMS content type. CMS content type.
1. Introduction 1. Introduction
This document describes a compressed data content type for S/MIME. This This document describes a compressed data content type for CMS. This
is implemented as a new ContentInfo type and is an extension to the is implemented as a new ContentInfo type and is an extension to the
types currently defined in CMS [RFC2630]. Future implementations of types currently defined in CMS [RFC2630]. Future implementations of
CMS SHOULD include this extension. CMS should include this extension.
The format of the messages are described in ASN.1 [ASN1]. The format of the messages are described in ASN.1 [ASN1].
The key words "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD NOT",
"RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
interpreted as described in [RFC2119]. interpreted as described in [RFC2119].
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
skipping to change at line 117 skipping to change at line 115
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 }
This algorithm has null parameters (but see the implementation note in This algorithm has no parameters. The parameters field SHOULD be
section 2.1 for comments on this field). encoded as omitted, but MAY be encoded as NULL (see the implemenation
note in section 2.1).
2.1. Implementation notes 2.1. Implementation notes
ZLIB allows for a number of compression levels ranging from good but ZLIB allows for a number of compression levels ranging from good but
slow compression to less good but fast compression. The compression slow compression to less good but fast compression. The compression
level is always compatible with the decompression algorithm, so there level is always compatible with the decompression algorithm, so there
is no need to specify the compression level as an algorithm parameter. is no need to specify the compression level as an algorithm parameter.
There are two possible encodings for the ZLIB null parameters field There are two possible encodings for the ZLIB null parameters field
which arise from the fact that when the 1988 syntax for which arise from the fact that when the 1988 syntax for
skipping to change at line 195 skipping to change at line 194
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
CMSVersion, EncapsulatedContentInfo FROM CryptographicMessageSyntax CMSVersion, EncapsulatedContentInfo FROM CryptographicMessageSyntax
{ iso(1) member-body(2) us(840) rsadsi(113549) { iso(1) member-body(2) us(840) rsadsi(113549)
pkcs(1) pkcs-9(9) smime(16) modules(0) cms(1) }, pkcs(1) pkcs-9(9) smime(16) modules(0) cms(1) }
AlgorithmIdentifier FROM AuthenticationFramework AlgorithmIdentifier FROM AuthenticationFramework
{ 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 CompressionAlgorithmIdentifier ::= AlgorithmIdentifier
-- Algorithm Identifiers -- Algorithm Identifiers
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 }
-- Content Type Object Identifiers -- Content Type Object Identifiers
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 }
 End of changes. 

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