RFC 6210
Experiment: Hash Functions with Parameters in the Cryptographic Message Syntax (CMS) and S/MIME
RFC 6210 π Experimental Hash Functions with Parameters in CMS and S/MIME
Hey bestie, here's the title block! π
Series: Request for Comments: 6210 πΈ Written by: J. Schaad from Soaring Hawk Consulting βοΈ Category: Experimental π§ͺ Date: April 2011 π ISSN: 2070-1721 Published by: the Internet Engineering Task Force (IETF) π
Abstract π¦
Okay so, new hash algorithms are being cooked up, and some of them might come with parameters π. The Cryptographic Message Syntax (CMS) doesn't define any hash algorithms with parameters yet, but anecdotal evidence says that adding one could cause major problems π. This doc defines exactly one of these algorithms and explains how to use it, so people can run experiments and find out how bad including hash parameters really is π¬β¨.
Status of This Memo π
This document is not an Internet Standards Track specification. It's published for examination, experimental implementation, and evaluation π§ͺ.
This document defines an Experimental Protocol for the Internet community. It's a product of the Internet Engineering Task Force (IETF) and represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Not every document approved by the IESG is a candidate for any level of Internet Standard, so see Section 2 of RFC 5741 for the details π.
Information about the current status of this document, any errata, and how to give feedback on it can be found at http://www.rfc-editor.org/info/rfc6210 π.
Copyright Notice Β©οΈ
Copyright (c) 2011 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, because they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they are provided without warranty as described in the Simplified BSD License π.
Table of Contents π§Ύ
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Notation . . . . . . . . . . . . . . . . . . . . . . . . . 5
2. XOR-MD5 Digest Algorithm . . . . . . . . . . . . . . . . . . . 5
3. ASN.1 Encoding . . . . . . . . . . . . . . . . . . . . . . . . 6
4. CMS ASN.1 Handling . . . . . . . . . . . . . . . . . . . . . . 6
5. MIME Handling . . . . . . . . . . . . . . . . . . . . . . . . 6
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7
7. Security Considerations . . . . . . . . . . . . . . . . . . . 7
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 7
8.1. Normative References . . . . . . . . . . . . . . . . . . . 7
8.2. Informative References . . . . . . . . . . . . . . . . . . 8
Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 9
A.1. Encapsulated Signed Data Example . . . . . . . . . . . . . 9
A.2. Multipart Signed Message . . . . . . . . . . . . . . . . . 10
A.3. Authenticated Data Example . . . . . . . . . . . . . . . . 12
Appendix B. 2008 ASN.1 Module . . . . . . . . . . . . . . . . . . 13
1. Introduction β¨
Right now, every hash algorithm used in CMS implementations is defined as having no parameters. Anecdotal evidence says that if someone defines a hash algorithm that does need parameters, there could be extensive problems π¬. This document gives the details needed to run an experiment, so the community can find out just how bad the situation really is. Then, if needed, people can either make drastic changes in implementations or make sure that any hash algorithms chosen don't have parameters π§π .
In CMS data structures, hash algorithms currently live in these places:
SignerInfo.digestAlgorithm: holds the digest algorithm used to compute the hash value over the content.DigestedData.digestAlgorithm: holds the digest algorithm used to compute the hash value over the content.AuthenticatedData.digestAlgorithm: holds the digest algorithm used to compute the hash value over the content.SignedData.digestAlgorithms: an optional location to hold the set of digest algorithms used in computing the hash value over the content.multipart/signedmicalg: holds a textual indicator of the hash algorithm for multipart signed MIME messages.
The first three locations hold the identification of a single hash, and they would hold the parameters for that hash too. It's mandatory to fill these fields π.
The ASN.1 structures defined for the DigestedData and AuthenticatedData types place the digest algorithm field before the encapsulated data field. That means the hash algorithm (including its parameters) is fully defined, and therefore can be instantiated, before the hash function starts hashing the encapsulated data π§©.
In the ASN.1 defined for the SignedData type, the value of SignerInfo.digestAlgorithm isn't seen until the content has been processed. This is the reason SignedData.digestAlgorithms exists, so the set of all digest algorithms used can be seen before the content gets processed. It isn't currently mandatory to fill in this field, and signature validation is supposed to succeed even if the field is absent. (RFC 5652 says signature validation MAY fail if the digest algorithm is absent.) π€·ββοΈ
For detached content, the ASN.1 structures need to be processed before the detached content, so the parameters of the hash function can be obtained first. The MIME multipart/signature content type tries to avoid this problem by defining a micalg field. That field contains the set of hash algorithms (with parameters), so the hash functions can be set up before the content is processed π―.
When processing multipart/signed messages, there are two paths:
- Process the message content before the ASN.1. The steps involved are:
- Get a set of hash functions by looking at the
micalgparameter, and potentially add a set of generic algorithms. - Create a hasher for each of those algorithms.
- Hash the message content (the first part of the multipart).
- Process the ASN.1, which is a potential failure point if a hash algorithm is required but wasn't computed.
- Get a set of hash functions by looking at the
- Process the message content after the ASN.1. The steps involved are:
- Save the message content for later processing.
- Parse the ASN.1 and build a list of hash functions based on its content.
- Create a hasher for each of those algorithms.
- Hash the saved message content.
- Perform the signature validation.
The first path allows single-pass processing, but it might need a fallback path added in some cases. The second path doesn't need a fallback path, but it doesn't allow single-pass processing πββοΈ.
The fallback path above may also be needed for the encapsulated content case. Since it's optional to place hash algorithms in the SignedData.digestAlgorithms field, the content has to be completely parsed before the set of hash algorithms used in the various SignerInfo structures can be determined. An update to CMS may be required to make populating the SignedData.digestAlgorithms field mandatory, in case a parameterized hash algorithm is adopted π.
In this document, a new hash function is created that's based on the XOR operator and on MD5. MD5 was deliberately used as the basis for this digest algorithm because it's known to be insecure. The author doesn't want to make any statement that the hash algorithm designed here is in any way secure π. This hash function MUST NOT be released as shipping code. It's designed only for use in experimentation. π« An example of a parameterized hash algorithm that might be standardized is a scheme developed by Shai Halevi and Hugo Krawczyk [RANDOM-HASH] π.
1.1. Notation π€
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] π.
2. XOR-MD5 Digest Algorithm π§
The XOR-MD5 digest algorithm is built from two existing operators: XOR and the MD5 hash algorithm [MD5]. Here's how the hash algorithm works π:
- A random XOR string consisting of exactly 64 bytes is created.
- The input content is broken up into 64-byte blocks. The last block may be less than 64 bytes.
- Each block is XOR-ed with the random string. The last block uses the same number of bits from the random string as it contains.
- The resulting string is run through the MD5 hash function.
The length of the XOR string was designed to match the barrel size of the MD5 hash function π.
6. IANA Considerations πβ¨
Okay so, for IANA, all the identifiers come out of the S/MIME OID arc. Totally organized, bestie ποΈπ
7. Security Considerations ππ
Okay, this section is serious, so let's go π«Ά
XOR-MD5 is NOT built for general-purpose use. The hash algorithm in here exists to run this experiment and nothing more π§ͺ
This document makes no claim that XOR-MD5 is a secure digest algorithm π ββοΈ The author believes it is no more secure than MD5, and considers MD5 a broken hash algorithm for many purposes π
One known issue with the algorithm right now: the XOR pattern is always 64 bytes long, even when the data is shorter. That means there's a section of the data that can be manipulated without changing the hash π± In a real algorithm, this should either be truncated or forced to a known value.
8. References π
8.1. Normative References π
- [ASN.1-2008] ITU-T, "ITU-T Recommendations X.680, X.681, X.682, and X.683", 2008.
- [CMS] Housley, R., "Cryptographic Message Syntax (CMS)", RFC 5652, September 2009.
- [MD5] Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321, April 1992.
- [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
- [RFC2231] Freed, N. and K. Moore, "MIME Parameter Value and Encoded Word Extensions: Character Sets, Languages, and Continuations", RFC 2231, November 1997.
- [SMIME-MSG] Ramsdell, B. and S. Turner, "Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 3.2 Message Specification", RFC 5751, January 2010.
8.2. Informative References π¦
- [CMS-ASN] Hoffman, P. and J. Schaad, "New ASN.1 Modules for Cryptographic Message Syntax (CMS) and S/MIME", RFC 5911, June 2010.
- [RANDOM-HASH] Halevi, S. and H. Krawczyk, "Strengthening Digital Signatures via Random Hashing", January 2007, <http://webee.technion.ac.il/~hugo/rhash/rhash.pdf>.
- [RFC5912] Hoffman, P. and J. Schaad, "New ASN.1 Modules for the Public Key Infrastructure Using X.509 (PKIX)", RFC 5912, June 2010.
- [SMIME-EXAMPLES] Hoffman, P., "Examples of S/MIME Messages", RFC 4134, July 2005.
Appendix A. Examples π§β¨
Here we've got a set of simple S/MIME messages [SMIME-MSG] made for testing π§ͺ The content is the same as in Section 2.1 of [SMIME-EXAMPLES], and the certificates and key pairs from [SMIME-EXAMPLES] are used here too π
The Perl script in Appendix A of [SMIME-EXAMPLES] can pull out the binary examples from this file. The MIME examples can be extracted with a standard text editor π
Note: The examples here have NOT been independently verified π The author couldn't use the Microsoft APIs because of the new cryptographic hash algorithm. Still, for this experiment, the author believes the form of the messages (which you can check visually) matters more than whether the messages validate π
A.1. Encapsulated Signed Data Example π
This one is a detached signed data example π The content was hashed with the MD5-XOR algorithm from this document. The signature is made with RSA with MD5, and then wrapped as an embedded signed mime message π¦
MIME-Version: 1.0
To: BobRSA@example.com
From: AliceDss@example.com
Subject: MD5-XOR example message
Message-Id: <34567809323489fd.esc@example.com>
Date: Wed, 16 Dec 2010 23:13:00 -0500
Content-Type: application/pkcs7-mime; smime-type=signed-data;
name=smime.p7m;
micalg*0="xor-md5: 0440010203405060708090a0b0c0d0e0f10";
micalg*1="111213415161718191a1b1c1d1e1f20212223425262728292a2b2c";
micalg*2="2d2e2f30313233435363738393a3b3c3d3e3f40"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=smime.p7m
MIIEqAYJKoZIhvcNAQcCoIIEmTCCBJUCAQExUTBPBgsqhkiG9w0BCRADDQRAAQIDBAUGBw
gJCgsMDQ4PEBESEwQVFhcYGRobHB0eHyAhIiMEJSYnKCkqKywtLi8wMTIzBDU2Nzg5Ojs8
PT4/QDArBgkqhkiG9w0BBwGgHgQcVGhpcyBpcyBzb21lIHNhbXBsZSBjb250ZW50LqCCAi
swggInMIIBkKADAgECAhBGNGvHgABWvBHTbi7NXXHQMA0GCSqGSIb3DQEBBQUAMBIxEDAO
BgNVBAMTB0NhcmxSU0EwHhcNOTkwOTE5MDEwOTAyWhcNMzkxMjMxMjM1OTU5WjARMQ8wDQ
YDVQQDEwZCb2JSU0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKnhZ5g/OdVf8qCT
QV6meYmFyDVdmpFb+x0B2hlwJhcPvaUi0DWFbXqYZhRBXM+3twg7CcmRuBlpN235ZR572a
kzJKN/O7uvRgGGNjQyywcDWVL8hYsxBLjMGAgUSOZPHPtdYMTgXB9T039T2GkB8QX4enDR
voPGXzjPHCyqaqfrAgMBAAGjfzB9MAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgUgMB
8GA1UdIwQYMBaAFOngkCeseCB6mtNM8kI3TiKunji7MB0GA1UdDgQWBBTo9Lhn2LOWpCrz
Eaop05Vahha0JDAdBgNVHREEFjAUgRJCb2JSU0FAZXhhbXBsZS5jb20wDQYJKoZIhvcNAQ
EFBQADgYEAe45mxfEQPxAgTIhxq3tAayEz+kqV3p0OW2uUIQXA8uF+Ks2ck4iH+4u3fn1B
YeHk1m354gRVYUW8ZCdEwKG9WXnZHWQ8IdZFsF1oM5LqrPFX5YF9mOY1kaM53nf06Bw7Kd
x/UQeX8zbwUArdm962XjgRK/tX6oltrcmI2I/PK9MxggHfMIIB2wIBATAmMBIxEDAOBgNV
BAMTB0NhcmxSU0ECEEY0a8eAAFa8EdNuLs1dcdAwTwYLKoZIhvcNAQkQAw0EQAECAwQFBg
cICQoLDA0ODxAREhMEFRYXGBkaGxwdHh8gISIjBCUmJygpKissLS4vMDEyMwQ1Njc4OTo7
PD0+P0CggcowGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMD
kxMjEwMjMyNTAwWjAfBgkqhkiG9w0BCQQxEgQQlmmuYRtXnoPqECtrSd3A+TBvBgkqhkiG
9w0BCTQxYjBgME8GCyqGSIb3DQEJEAMNBEABAgMEBQYHCAkKCwwNDg8QERITBBUWFxgZGh
scHR4fICEiIwQlJicoKSorLC0uLzAxMjMENTY3ODk6Ozw9Pj9AoQ0GCSqGSIb3DQEBBAUA
MA0GCSqGSIb3DQEBBAUABIGAClMpfG4IL1yAdRxWdvYKbtuFz1XKnFqo9ui7V5PndjlDut
yib02knY7UtGNhg6oVEkiZHxYh/iLuoLOHSFA1P4ZacTYrEKChF4K18dsqvlFip1vn8BG/
ysFUDfbx5VcTG2Md0/NHV+qj5ihqM+Pye6Urp+5jbqVgpZOXSLfP+pI=
|>sd.bin
|MIIEqAYJKoZIhvcNAQcCoIIEmTCCBJUCAQExUTBPBgsqhkiG9w0BCRADDQRAAQIDBAUGBw
|gJCgsMDQ4PEBESEwQVFhcYGRobHB0eHyAhIiMEJSYnKCkqKywtLi8wMTIzBDU2Nzg5Ojs8
|PT4/QDArBgkqhkiG9w0BBwGgHgQcVGhpcyBpcyBzb21lIHNhbXBsZSBjb250ZW50LqCCAi
|swggInMIIBkKADAgECAhBGNGvHgABWvBHTbi7NXXHQMA0GCSqGSIb3DQEBBQUAMBIxEDAO
|BgNVBAMTB0NhcmxSU0EwHhcNOTkwOTE5MDEwOTAyWhcNMzkxMjMxMjM1OTU5WjARMQ8wDQ
|YDVQQDEwZCb2JSU0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKnhZ5g/OdVf8qCT
|QV6meYmFyDVdmpFb+x0B2hlwJhcPvaUi0DWFbXqYZhRBXM+3twg7CcmRuBlpN235ZR572a
|kzJKN/O7uvRgGGNjQyywcDWVL8hYsxBLjMGAgUSOZPHPtdYMTgXB9T039T2GkB8QX4enDR
|voPGXzjPHCyqaqfrAgMBAAGjfzB9MAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgUgMB
|8GA1UdIwQYMBaAFOngkCeseCB6mtNM8kI3TiKunji7MB0GA1UdDgQWBBTo9Lhn2LOWpCrz
|Eaop05Vahha0JDAdBgNVHREEFjAUgRJCb2JSU0FAZXhhbXBsZS5jb20wDQYJKoZIhvcNAQ
|EFBQADgYEAe45mxfEQPxAgTIhxq3tAayEz+kqV3p0OW2uUIQXA8uF+Ks2ck4iH+4u3fn1B
|YeHk1m354gRVYUW8ZCdEwKG9WXnZHWQ8IdZFsF1oM5LqrPFX5YF9mOY1kaM53nf06Bw7Kd
|x/UQeX8zbwUArdm962XjgRK/tX6oltrcmI2I/PK9MxggHfMIIB2wIBATAmMBIxEDAOBgNV
|BAMTB0NhcmxSU0ECEEY0a8eAAFa8EdNuLs1dcdAwTwYLKoZIhvcNAQkQAw0EQAECAwQFBg
|cICQoLDA0ODxAREhMEFRYXGBkaGxwdHh8gISIjBCUmJygpKissLS4vMDEyMwQ1Njc4OTo7
|PD0+P0CggcowGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMD
|kxMjEwMjMyNTAwWjAfBgkqhkiG9w0BCQQxEgQQlmmuYRtXnoPqECtrSd3A+TBvBgkqhkiG
|9w0BCTQxYjBgME8GCyqGSIb3DQEJEAMNBEABAgMEBQYHCAkKCwwNDg8QERITBBUWFxgZGh
|scHR4fICEiIwQlJicoKSorLC0uLzAxMjMENTY3ODk6Ozw9Pj9AoQ0GCSqGSIb3DQEBBAUA
|MA0GCSqGSIb3DQEBBAUABIGAClMpfG4IL1yAdRxWdvYKbtuFz1XKnFqo9ui7V5PndjlDut
|yib02knY7UtGNhg6oVEkiZHxYh/iLuoLOHSFA1P4ZacTYrEKChF4K18dsqvlFip1vn8BG/
|ysFUDfbx5VcTG2Md0/NHV+qj5ihqM+Pye6Urp+5jbqVgpZOXSLfP+pI=
|<sd.bin
A.2. Multipart Signed Message π«
This is another detached signed data example π The content was hashed with the MD5-XOR algorithm from this document. The signature is made with RSA with MD5, and then wrapped as a detached signed mime message π¦
MIME-Version: 1.0
To: User2@example.com
From: BobRSA@example.com
Subject: MD5-XOR signing example
Message-Id: <091218002550300.249@example.com>
Date: Fri, 18 Dec 2010 00:25:21 -0300
Content-Type: multipart/signed;
micalg*0="xor-md5: 0440010203405060708090a0b0c0d0e0f10";
micalg*1="111213415161718191a1b1c1d1e1f20212223425262728292a2b2c2d2e";
micalg*2="2f30313233435363738393a3b3c3d3e3f40";
boundary="----=_NextBoundry____Fri,_18_Dec_2009_00:25:21";
protocol="application/pkcs7-signature"
This is a multi-part message in MIME format.
------=_NextBoundry____Fri,_18_Dec_2009_00:25:21
This is some sample content.
------=_NextBoundry____Fri,_18_Dec_2009_00:25:21
Content-Type: application/pkcs7-signature; name=smime.p7s
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=smime.p7s
MIIEiAYJKoZIhvcNAQcCoIIEeTCCBHUCAQExUTBPBgsqhkiG9w0BCRADDQRAAQIDBAUGBw
gJCgsMDQ4PEBESEwQVFhcYGRobHB0eHyAhIiMEJSYnKCkqKywtLi8wMTIzBDU2Nzg5Ojs8
PT4/QDALBgkqhkiG9w0BBwGgggIrMIICJzCCAZCgAwIBAgIQRjRrx4AAVrwR024uzV1x0D
ANBgkqhkiG9w0BAQUFADASMRAwDgYDVQQDEwdDYXJsUlNBMB4XDTk5MDkxOTAxMDkwMloX
DTM5MTIzMTIzNTk1OVowETEPMA0GA1UEAxMGQm9iUlNBMIGfMA0GCSqGSIb3DQEBAQUAA4
GNADCBiQKBgQCp4WeYPznVX/Kgk0FepnmJhcg1XZqRW/sdAdoZcCYXD72lItA1hW16mGYU
QVzPt7cIOwnJkbgZaTdt+WUee9mpMySjfzu7r0YBhjY0MssHA1lS/IWLMQS4zBgIFEjmTx
z7XWDE4FwfU9N/U9hpAfEF+Hpw0b6Dxl84zxwsqmqn6wIDAQABo38wfTAMBgNVHRMBAf8E
AjAAMA4GA1UdDwEB/wQEAwIFIDAfBgNVHSMEGDAWgBTp4JAnrHggeprTTPJCN04irp44uz
AdBgNVHQ4EFgQU6PS4Z9izlqQq8xGqKdOVWoYWtCQwHQYDVR0RBBYwFIESQm9iUlNBQGV4
YW1wbGUuY29tMA0GCSqGSIb3DQEBBQUAA4GBAHuOZsXxED8QIEyIcat7QGshM/pKld6dDl
trlCEFwPLhfirNnJOIh/uLt359QWHh5NZt+eIEVWFFvGQnRMChvVl52R1kPCHWRbBdaDOS
6qzxV+WBfZjmNZGjOd539OgcOyncf1EHl/M28FAK3Zvetl44ESv7V+qJba3JiNiPzyvTMY
IB3zCCAdsCAQEwJjASMRAwDgYDVQQDEwdDYXJsUlNBAhBGNGvHgABWvBHTbi7NXXHQME8G
CyqGSIb3DQEJEAMNBEABAgMEBQYHCAkKCwwNDg8QERITBBUWFxgZGhscHR4fICEiIwQlJi
coKSorLC0uLzAxMjMENTY3ODk6Ozw9Pj9AoIHKMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0B
BwEwHAYJKoZIhvcNAQkFMQ8XDTEwMTIxMDIzMjUwMFowHwYJKoZIhvcNAQkEMRIEEJZprm
EbV56D6hAra0ndwPkwbwYJKoZIhvcNAQk0MWIwYDBPBgsqhkiG9w0BCRADDQRAAQIDBAUG
BwgJCgsMDQ4PEBESEwQVFhcYGRobHB0eHyAhIiMEJSYnKCkqKywtLi8wMTIzBDU2Nzg5Oj
s8PT4/QKENBgkqhkiG9w0BAQQFADANBgkqhkiG9w0BAQQFAASBgEDMeyAkXMYqg/wW2B3P
i8HWwGnZVA/4muJJ7+dEPacv3bRqE7n4dP0vXIYR7TJ1eRJk9uB/wry2fRPcnG3Y/Rn0Jy
CqXsb+dXXfwOGK/rvLvJOloXUCy4+HxQk6eaYIBrjiVIUgZjpZXGJcZg2xq5yH1e4aw5Ov
fQlfQXPiKp1l
------=_NextBoundry____Fri,_18_Dec_2009_00:25:21--
A.3. Authenticated Data Example π
This is an authenticated data example πΈ The content was hashed with the MD5-XOR algorithm from this document. The authentication was done with the HMAC-SHA1 algorithm. The key is transported using RSA encryption to BobRSASignByCarl certificate ποΈ
MIME-Version: 1.0
To: BobRSA@example.com
From: AliceDss@example.com
Subject: MD5-XOR example message
Message-Id: <34567809323489fd.esc@example.com>
Date: Wed, 16 Dec 2010 23:13:00 -0500
Content-Type: application/pkcs7-mime; smime-type=authenticated-data;
name=smime.p7m;
micalg*0="xor-md5: 0440010203405060708090a0b0c0d0e0f10";
micalg*1="111213415161718191a1b1c1d1e1f20212223425262728292a2b2c2d2e";
micalg*2="2f30313233435363738393a3b3c3d3e3f40"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=smime.p7m
MIICRQYLKoZIhvcNAQkQAQKgggI0MIICMAIBADGBwDCBvQIBADAmMBIxEDAOBgNVBAMMB0
NhcmxSU0ECEEY0a8eAAFa8EdNuLs1dcdAwDQYJKoZIhvcNAQEBBQAEgYCH70EpEikY7deb
859YJRAWfFondQv1D4NFltw6C1ceheWnlAU0C2WEXr3LUBXZp1/PSte29FnJxu5bXCTn1g
elMm6zNlZNWNd0KadVBcaxi1n8L52tVM5sWFGJPO5cStOyAka2ucuZM6iAnCSkn1Ju7fgU
5j2g3bZ/IM8nHTcygjAKBggrBgEFBQgBAqFPBgsqhkiG9w0BCRADDQRAAQIDBAUGBwgJCg
sMDQ4PEBESEwQVFhcYGRobHB0eHyAhIiMEJSYnKCkqKywtLi8wMTIzBDU2Nzg5Ojs8PT4/
QDArBgkqhkiG9w0BBwGgHgQcVGhpcyBpcyBzb21lIHNhbXBsZSBjb250ZW50LqKBxzAYBg
kqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0wOTEyMTAyMzI1MDBa
MB8GCSqGSIb3DQEJBDESBBCWaa5hG1eeg+oQK2tJ3cD5MGwGCSqGSIb3DQEJNDFfMF0wTw
YLKoZIhvcNAQkQAw0EQAECAwQFBgcICQoLDA0ODxAREhMEFRYXGBkaGxwdHh8gISIjBCUm
JygpKissLS4vMDEyMwQ1Njc4OTo7PD0+P0CiCgYIKwYBBQUIAQIEFLjUxQ9PJFzFnWraxb
EIbVbg2xql
|>ad.bin
|MIICRQYLKoZIhvcNAQkQAQKgggI0MIICMAIBADGBwDCBvQIBADAmMBIxEDAOBgNVBAMMB0
|NhcmxSU0ECEEY0a8eAAFa8EdNuLs1dcdAwDQYJKoZIhvcNAQEBBQAEgYCH70EpEikY7deb
Appendix B. 2008 ASN.1 Module π
okay bestie, this appendix is the ASN.1 bit π€ The module uses the 2008 ASN.1 definitions found in [ASN.1-2008]. It contains the ASN.1 module that holds the required definitions for the types and values defined in this document. It also uses the class defined in [CMS-ASN] and [RFC5912] β¨
MD5-HASH-EXPERIMENT
{ iso(1) member-body(2) us(840) rsadsi(113549)
pkcs(1) pkcs-9(9) smime(16) modules(0)
id-mod-MD5-XOR-EXPERIMENT(999) }
DEFINITIONS IMPLICIT TAGS ::=
BEGIN
IMPORTS
-- Cryptographic Message Syntax (CMS) [CMS]
DigestAlgorithmIdentifier, MessageAuthenticationCodeAlgorithm,
SignatureAlgorithmIdentifier, DIGEST-ALGORITHM
FROM CryptographicMessageSyntax-2009
{ iso(1) member-body(2) us(840) rsadsi(113549)
pkcs(1) pkcs-9(9) smime(16) modules(0) id-mod-cms-2004-02(41) }
-- Common PKIX structures [RFC5912]
ATTRIBUTE
FROM PKIX-CommonTypes-2009
{ iso(1) identified-organization(3) dod(6) internet(1)
security(5) mechanisms(5) pkix(7) id-mod(0)
id-mod-pkixCommon-02(57)};
mda-xor-md5-EXPERIMENT DIGEST-ALGORITHM ::= {
IDENTIFIER id-alg-MD5-XOR-EXPERIMENT
PARAMS TYPE MD5-XOR-EXPERIMENT ARE required
}
id-alg-MD5-XOR-EXPERIMENT OBJECT IDENTIFIER ::= {
iso(1) member-body(2) us(840) rsadsi(113549)
pkcs(1) pkcs-9(9) smime(16) id-alg(3) 13
}
MD5-XOR-EXPERIMENT ::= OCTET STRING (SIZE(64))
END
Author's Address π¦
Jim Schaad
Soaring Hawk Consulting
EMail: ietf@augustcellars.com
π¦ where this page comes from
- ietf: rfc6210 2011-04
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms