[openssl-users] Is the structure of this CMS object correct?

Dr. Stephen Henson steve at openssl.org
Tue Feb 23 17:26:37 UTC 2016


On Tue, Feb 23, 2016, Stephan M?hlstrasser wrote:

> I tried again to map the structure of the CMS object to the
> definitions in RFC 5652 (comments added with a '%'):
> 
> 1: SEQUENCE {
> 2:   OBJECT IDENTIFIER envelopedData (1 2 840 113549 1 7 3)
>                                                    % ContentType
> 3:   [0] {  % eContent
> 4:     SEQUENCE {
> 5:       INTEGER 0 % CMSVersion
>           % no OriginatorInfo
> 6:       SET { % RecipientInfos ::= SET SIZE (1..MAX) OF RecipientInfo
> 7:         SEQUENCE {
>        % SEQUENCE tag should not be present because of implicit tagging?

Yes, because it is using the key agreement choice type it should be
tagged [1] IMPLICIT but it is not which is why OpenSSL thinks it is key
transport.

> 8:           INTEGER 3
>          % version 3 only applicable to KeyAgreeRecipientInfo
> 9:           [0] {

Assume this is KeyAgreeRecipientInfo.. the above tag would indicate the
"originator" field.

> 10:             SEQUENCE {

Here it is wrong again. The untagged form is "IssuerAndSerialNumber" which
the fields below certainly aren't. It looks like originatorKey which should be
tagged [1] IMPLICIT.

> 11:               SEQUENCE {
> 12:                 OBJECT IDENTIFIER ecPublicKey (1 2 840 10045 2 1)
> 13:                 OBJECT IDENTIFIER secp521r1 (1 3 132 0 35)
> 14:                 }
> 

So yes it's pretty broken.

Steve.
--
Dr Stephen N. Henson. OpenSSL project core developer.
Commercial tech support now available see: http://www.openssl.org


More information about the openssl-users mailing list