Re: Problems with versions
Peter Gutmann <[email protected]> Thu, 5 May 2022 12:34:39 +0000
| Newsgroups | gmane.ietf.smime |
|---|---|
| Message-ID | <SY4PR01MB62512D541C42E6873562A17CEEC29@SY4PR01MB6251.ausprd01.prod.outlook.com> |
Russ Housley <[email protected]> writes: >That is, an unrecognized version can save the recipient for getting a parsing >error. But they won't be getting a parsing error, see the example I gave: > SignedData { > version = 7, > digestAlgorithms, > content, > signerInfos { > signerInfo version = 7, > signerInfo version = 6, > signerInfo version = 1 > } > } If you change the SignedData version to 1 then an implementation that doesn't understand version 6 or 7 signerInfos can still process the message because there's a version 1 signerInfo present. However if you set it at 7 then the implementation is being told it can't (or shouldn't) process the message even though it can. The fact that there's some not-currently-recognised but totally processable (meaning read the header and skip the remaining payload) entry somewhere further down in the message doesn't mean that the whole message should be marked as unprocessable by an implementation. If there's any implementers still on the list, what would your code do if it encountered the above message? And what would it do if the SignedData version was 1 instead of 7? Peter.