Subject: Correct definition of ContentInfo in CMS-10

From: William Ottaway <[email-masked]>
Date: Mon, 22 Feb 1999 13:00:21 -0000

Within the body of CMS 10 ContentInfo is defined as : -

ContentInfo ::= SEQUENCE {
        contentType ContentType,
        content [0] EXPLICIT ANY DEFINED BY contentType }

However, in the appendix ContentInfo is defined as : -

ContentInfo ::= SEQUENCE {
     contentType ContentType,
     content [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }

I assume the one within the body (i.e. content not optional) is correct.

Bill.

"The Information contained in this E-Mail and any subsequent
correspondence is private and is intended solely for the intended
recipient(s).  For those other than the intended recipient any
disclosure, copying, distribution, or any action taken or omitted to
be taken in reliance on such information is prohibited and may be
unlawful."
____________________________________________________
William Ottaway BSc Hons CEng MBCS,
L323,                        Tel: +44 (0) 1684 894079
DERA Malvern,                Fax: +44 (0) 1684 896113
St. Andrews Road,            email: [email-masked]
Malvern,
Worcs,
WR14 3PS

All opinions are my own.

---

From: "Bonatti, Chris" <[email-masked]>
Date: Mon, 22 Feb 1999 09:42:09 -0500

I would submit that the 'content' field in the General Syntax section is
correct.  The instance of OPTIONAL in the appendix must be a copy artifact
from the 'EncapsulatedContentInfo', in which the 'content' field is
correctly optional.  I can see no legitimate use of CMS in which you would
send only a 'contentType' OID.  Even if someone were sending a "detached
content" in a separate body part, either MIME or X.400 mail systems are
perfectly capable of attaching a content types for that information without
utilizing this structure.

Russ,

    Browsing through my historical archive of now "non-existent" I-Ds, I see
that the OPTIONAL tag seems to have fallen out of the General Syntax
starting in version 3 of CMS.  Do you remember the reasoning behind the
change?

Chris

 ---------------------------------------------------------------
 |  International Electronic Communication Analysts, Inc.      |
 |  Christopher D. Bonatti             15309 Turkey Foot Road  |
 |  Principal Engineer              Darnestown, Md 20878-3640  |
 |  [email-masked]   Tel: 301-208-2349   Fax: 301-208-2379  |
 ---------------------------------------------------------------

____________________

---

From: Brian Korver <[email-masked]>
Date: Mon, 22 Feb 1999 08:24:50 -0800

> I assume the one within the body (i.e. content not optional) is correct.

In PKCS#7, content is OPTIONAL.  But now with EncapsulatedContentInfo, CMS
doesn't use ContentInfo anyplace but the outer wrapper.

I'd be inclined to leave it OPTIONAL (I mean, what does it hurt?).  S/MIME
might not need it, but someone else might....

---

From: "Russ Housley" <[email-masked]>
Date: Wed, 24 Feb 1999 07:07:45 -0500

Chris:

In PKCS#7 v1.5, ContentInfo was used as the outer wrapper (around
SignedData, EnvelopedData, etc) as well as the wrapper around the content
being protected.  In CMS, two different ASN.1 types are used for the two
different wrappers.  ContentInfo remains the outer wrapper.  There is no
need for such a wrapper without a protecting content such as SignedData,
EnvelopedData, etc., therefore the ContentInfo content should not be
optional.  The EncapsulatedContentInfo is the wrapper for the content being
protected.  To support a SignedData for distribution of certificates and
CRLs without any content (this approach is used in many products for
certificate user enrollment), EncapsulatedContentInfo has an OPTIONAL
content.

Russ

-----Original Message-----
From:	[email-masked] [mailto:[email-masked]] On Behalf
Of Bonatti, Chris
Sent:	Monday, February 22, 1999 9:42 AM
To:	William Ottaway; [email-masked]'; Russ Housley
Subject:	Re: Correct definition of ContentInfo in CMS-10

Russ,

Chris

____________________

---

From: Russ Housley <[email-masked]>
Date: Thu, 04 Mar 1999 13:07:45 -0500

Agree.  The OID in ContentInfo should not be OPTIONAL.