draft-ietf-smime-gost-02.txt   draft-ietf-smime-gost-03.txt 
S/MIME Working Group Serguei Leontiev, CRYPTO-PRO S/MIME Working Group Serguei Leontiev, CRYPTO-PRO
Internet Draft Gregory Chudov, CRYPTO-PRO Internet Draft Gregory Chudov, CRYPTO-PRO
Expires October 1, 2004 April 1, 2004 Expires August 5, 2005 February 5, 2005
Intended Category: Informational Intended Category: Informational
Using the GOST 28147-89, GOST R 34.11-94, Using the GOST 28147-89, GOST R 34.11-94,
GOST R 34.10-94 and GOST R 34.10-2001 algorithms with the GOST R 34.10-94 and GOST R 34.10-2001 algorithms with the
Cryptographic Message Syntax (CMS) Cryptographic Message Syntax (CMS)
<draft-ietf-smime-gost-02.txt> <draft-ietf-smime-gost-03.txt>
Status of this Memo Status of this Memo
This document is an Internet-Draft and is subject to all provisions By submitting this Internet-Draft, I certify that any applicable
of Section 10 of RFC2026. patent or other IPR claims of which I am aware have been disclosed,
and any of which I become aware will be disclosed, in accordance with
Internet-Drafts are working documents of the Internet Engineering RFC 3668.
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months This document is an Internet Draft and is subject to all provisions
and may be updated, replaced, or made obsolete by other documents at of Section 10 of RFC2026. Internet Drafts are working documents of
any time. It is inappropriate to use Internet-Drafts as reference the Internet Engineering Task Force (IETF), its areas, and its
material or to cite them other than as "work in progress." working groups. Note that other groups may also distribute working
documents as Internet Drafts. Internet Drafts are draft documents
valid for a maximum of 6 months and may be updated, replaced, or
obsoleted by other documents at any time. It is inappropriate to use
Internet Drafts as reference material or to cite them other than as a
"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/1id-abstracts.html http://www.ietf.org/1id-abstracts.html
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 (2005). All Rights Reserved.
Abstract Abstract
This document describes the conventions for using cryptographic This document describes the conventions for using cryptographic
algorithms GOST 28147-89, GOST R 34.10-94, GOST R 34.10-2001, GOST R algorithms GOST 28147-89, GOST R 34.10-94, GOST R 34.10-2001, GOST R
34.11-94, along with Cryptographic Message Syntax (CMS). The CMS is 34.11-94, along with Cryptographic Message Syntax (CMS). The CMS is
used for digital signature, digest, authentication and encryption used for digital signature, digest, authentication and encryption
arbitrary message contents. arbitrary message contents.
Table of Contents Table of Contents
1 Introduction . . . . . . . . . . . . . . . . . . . . . . 2 1 Introduction . . . . . . . . . . . . . . . . . . . . . . 2
skipping to change at page 2, line 27 skipping to change at page 2, line 28
5.1 Key-Encryption Key Algorithm GOST 28147-89 . . . . . . . 8 5.1 Key-Encryption Key Algorithm GOST 28147-89 . . . . . . . 8
6 MAC Algorithms . . . . . . . . . . . . . . . . . . . . . 8 6 MAC Algorithms . . . . . . . . . . . . . . . . . . . . . 8
6.1 HMAC with GOST R 34.11-94. . . . . . . . . . . . . . . . 9 6.1 HMAC with GOST R 34.11-94. . . . . . . . . . . . . . . . 9
7 Using with S/MIME. . . . . . . . . . . . . . . . . . . . 9 7 Using with S/MIME. . . . . . . . . . . . . . . . . . . . 9
7.1 Parameter micalg . . . . . . . . . . . . . . . . . . . . 9 7.1 Parameter micalg . . . . . . . . . . . . . . . . . . . . 9
7.2 Atribute SMIMECapabilities . . . . . . . . . . . . . . . 9 7.2 Atribute SMIMECapabilities . . . . . . . . . . . . . . . 9
8 Security Considerations. . . . . . . . . . . . . . . . . 10 8 Security Considerations. . . . . . . . . . . . . . . . . 10
9 Appendix Examples. . . . . . . . . . . . . . . . . . . . 11 9 Appendix Examples. . . . . . . . . . . . . . . . . . . . 11
9.1 Signed message . . . . . . . . . . . . . . . . . . . . . 11 9.1 Signed message . . . . . . . . . . . . . . . . . . . . . 11
9.2 Enveloped message using Key Agreement. . . . . . . . . . 12 9.2 Enveloped message using Key Agreement. . . . . . . . . . 12
9.2 Enveloped message using Key Transport. . . . . . . . . . 15 9.3 Enveloped message using Key Transport. . . . . . . . . . 15
10 Appendix ASN.1 Modules . . . . . . . . . . . . . . . . . 17 10 Appendix ASN.1 Modules . . . . . . . . . . . . . . . . . 17
10.1 GostR3410-EncryptionSyntax . . . . . . . . . . . . . . . 19 10.1 GostR3410-EncryptionSyntax . . . . . . . . . . . . . . . 19
10.2 GostR3410-94-SignatureSyntax . . . . . . . . . . . . . . 21 10.2 GostR3410-94-SignatureSyntax . . . . . . . . . . . . . . 21
10.3 GostR3410-2001-SignatureSyntax . . . . . . . . . . . . . 22 10.3 GostR3410-2001-SignatureSyntax . . . . . . . . . . . . . 22
10 References . . . . . . . . . . . . . . . . . . . . . . . 23 11 References . . . . . . . . . . . . . . . . . . . . . . . 23
11 Acknowledgments. . . . . . . . . . . . . . . . . . . . . 25 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 25
Author's Address. . . . . . . . . . . . . . . . . . . . . . . . 25 Author's Address. . . . . . . . . . . . . . . . . . . . . . . . 25
Full Copyright Statement. . . . . . . . . . . . . . . . . . . . 27 Full Copyright Statement. . . . . . . . . . . . . . . . . . . . 27
1 Introduction 1 Introduction
The Cryptographic Message Syntax [CMS] is used for digital signature, The Cryptographic Message Syntax [CMS] is used for digital signature,
digest, authentication and encryption arbitrary message contents. digest, authentication and encryption arbitrary message contents.
This companion specification describes the usage of cryptographic This companion specification describes the usage of cryptographic
algorithms GOST 28147-89, GOST R 34.10-94, GOST R 34.10-2001 and hash algorithms GOST 28147-89, GOST R 34.10-94, GOST R 34.10-2001 and hash
algorithm GOST R 34.11-94 in CMS, proposed by CRYPTO-PRO Company for algorithm GOST R 34.11-94 in CMS, proposed by CRYPTO-PRO Company for
skipping to change at page 6, line 32 skipping to change at page 6, line 32
GostR3410-TransportParameters ::= SEQUENCE { GostR3410-TransportParameters ::= SEQUENCE {
encryptionParamSet OBJECT IDENTIFIER, encryptionParamSet OBJECT IDENTIFIER,
ephemeralPublicKey [0] IMPLICIT SubjectPublicKeyInfo OPTIONAL, ephemeralPublicKey [0] IMPLICIT SubjectPublicKeyInfo OPTIONAL,
ukm OCTET STRING ukm OCTET STRING
} }
KeyAgreeRecipientInfo ukm MUST be absent, KeyAgreeRecipientInfo ukm MUST be absent,
GostR3410-TransportParameters ukm is used instead and is not GostR3410-TransportParameters ukm is used instead and is not
optional. optional.
encryptedKey MUST encapsulate Gost28147-89-EncryptedKey. encryptedKey MUST encapsulate Gost28147-89-EncryptedKey, where
maskKey MUST be absent.
Gost28147-89-EncryptedKey ::= SEQUENCE { Gost28147-89-EncryptedKey ::= SEQUENCE {
encryptedKey Gost28147-89-Key, encryptedKey Gost28147-89-Key,
maskKey [0] IMPLICIT Gost28147-89-Key
OPTIONAL,
macKey Gost28147-89-MAC macKey Gost28147-89-MAC
} }
Using the secret key, corresponding to originatorKey publicKey, and Using the secret key, corresponding to originatorKey publicKey, and
recipient's public key, algorithm VKO GOST R 34.10-94 or VKO GOST R recipient's public key, algorithm VKO GOST R 34.10-94 or VKO GOST R
34.10-2001 (described in [CPALGS]) is applied to produce KEK. 34.10-2001 (described in [CPALGS]) is applied to produce KEK.
Then key wrap algorithm, specified by encryptionParamSet, is applied Then key wrap algorithm, specified by encryptionParamSet, is applied
to produce CEK_ENC, CEC_MAC, and IV. GostR3410-TransportParameters to produce CEK_ENC, CEK_MAC, and IV. GostR3410-TransportParameters
encryptionParamSet is used for all encryption operations. encryptionParamSet is used for all encryption operations.
The resulting encrypted key (CEK_ENC) is placed in The resulting encrypted key (CEK_ENC) is placed in
Gost28147-89-EncryptedKey encryptedKey field, it's mac (CEK_MAC) is Gost28147-89-EncryptedKey encryptedKey field, it's mac (CEK_MAC) is
placed in Gost28147-89-EncryptedKey macKey field, and synchrovector placed in Gost28147-89-EncryptedKey macKey field, and synchrovector
(IV) is placed in GostR3410-TransportParameters ukm field. (IV) is placed in GostR3410-TransportParameters ukm field.
4.2 Key Transport Algorithms 4.2 Key Transport Algorithms
This section specifies the conventions employed by CMS This section specifies the conventions employed by CMS
implementations that support key transport using both VKO GOST R implementations that support key transport using both VKO GOST R
34.10-94 and VKO GOST R 34.10-2001 algorithms, described in [CPALGS]. 34.10-94 and VKO GOST R 34.10-2001 algorithms, described in [CPALGS].
Key transport algorithm identifiers are located in the EnvelopedData Key transport algorithm identifiers are located in the EnvelopedData
RecipientInfos KeyTransRecipientInfo keyEncryptionAlgorithm field. RecipientInfos KeyTransRecipientInfo keyEncryptionAlgorithm field.
Key transport encrypted content-encryption keys are located in the Key transport encrypted content-encryption keys are located in the
EnvelopedData RecipientInfos KeyTransRecipientInfo encryptedKey EnvelopedData RecipientInfos KeyTransRecipientInfo encryptedKey
field. field.
skipping to change at page 8, line 6 skipping to change at page 8, line 9
ephemeralPublicKey [0] IMPLICIT SubjectPublicKeyInfo OPTIONAL, ephemeralPublicKey [0] IMPLICIT SubjectPublicKeyInfo OPTIONAL,
ukm OCTET STRING ukm OCTET STRING
} }
Using the secret key, corresponding to GostR3410-TransportParameters Using the secret key, corresponding to GostR3410-TransportParameters
ephemeralPublicKey, and recipient's public key, algorithm VKO GOST R ephemeralPublicKey, and recipient's public key, algorithm VKO GOST R
34.10-94 or VKO GOST R 34.10-2001 (described in [CPALGS]) is applied 34.10-94 or VKO GOST R 34.10-2001 (described in [CPALGS]) is applied
to produce KEK. to produce KEK.
Then key wrap algorithm, specified by encryptionParamSet, is applied Then key wrap algorithm, specified by encryptionParamSet, is applied
to produce CEK_ENC, CEC_MAC, and IV. GostR3410-TransportParameters to produce CEK_ENC, CEK_MAC, and IV. GostR3410-TransportParameters
encryptionParamSet is used for all encryption operations. encryptionParamSet is used for all encryption operations.
The resulting encrypted key (CEK_ENC) is placed in The resulting encrypted key (CEK_ENC) is placed in
Gost28147-89-EncryptedKey encryptedKey field, it's mac (CEK_MAC) is Gost28147-89-EncryptedKey encryptedKey field, it's mac (CEK_MAC) is
placed in Gost28147-89-EncryptedKey macKey field, and synchrovector placed in Gost28147-89-EncryptedKey macKey field, and synchrovector
(IV) is placed in GostR3410-TransportParameters ukm field. (IV) is placed in GostR3410-TransportParameters ukm field.
5 Content Encryption Algorithms 5 Content Encryption Algorithms
This section specifies the conventions employed by CMS This section specifies the conventions employed by CMS
skipping to change at page 11, line 9 skipping to change at page 11, line 9
Law [RFDSL], signer certificate MUST contain keyUsage extension, it Law [RFDSL], signer certificate MUST contain keyUsage extension, it
MUST be critical, and keyUsage MUST NOT include keyEncipherment or MUST be critical, and keyUsage MUST NOT include keyEncipherment or
keyAgreement. Application SHOULD be submited for examination by an keyAgreement. Application SHOULD be submited for examination by an
authorized agency in appropriate levels of target_of_evaluation authorized agency in appropriate levels of target_of_evaluation
(TOE), according to [RFDSL], [RFLLIC] and [CRYPTOLIC]. (TOE), according to [RFDSL], [RFLLIC] and [CRYPTOLIC].
9 Appendix Examples 9 Appendix Examples
9.1 Signed message 9.1 Signed message
0 30 272: SEQUENCE { 0 30 296: SEQUENCE {
4 06 9: OBJECT IDENTIFIER signedData (1 2 840 113549 1 7 2) 4 06 9: OBJECT IDENTIFIER signedData (1 2 840 113549 1 7 2)
15 A0 257: [0] { 15 A0 281: [0] {
19 30 254: SEQUENCE { 19 30 277: SEQUENCE {
22 02 1: INTEGER 1 23 02 1: INTEGER 1
25 31 12: SET { 26 31 12: SET {
27 30 10: SEQUENCE { 28 30 10: SEQUENCE {
29 06 6: OBJECT IDENTIFIER GOST R 34.11-94 (1 2 643 2 2 9) 30 06 6: OBJECT IDENTIFIER id_GostR3411_94 ( 1 2 643 2 2 9)
37 05 0: NULL 38 05 0: NULL
: }
: }
39 30 18: SEQUENCE {
41 06 9: OBJECT IDENTIFIER data (1 2 840 113549 1 7 1)
52 A0 5: [0] {
54 04 3: OCTET STRING
: 2A 0D 0A
: } : }
: } : }
59 31 214: SET { 40 30 27: SEQUENCE {
62 30 211: SEQUENCE { 42 06 9: OBJECT IDENTIFIER data (1 2 840 113549 1 7 1)
65 02 1: INTEGER 1 53 A0 14: [0] {
68 30 116: SEQUENCE { 55 04 12: OCTET STRING
70 30 102: SEQUENCE { : 73 61 6D 70 6C 65 20 74 65 78 74 0A
72 31 11: SET {
74 30 9: SEQUENCE {
76 06 3: OBJECT IDENTIFIER countryName (2 5 4 6)
81 13 2: PrintableString 'RU'
: } : }
: } : }
85 31 15: SET { 69 31 228: SET {
87 30 13: SEQUENCE { 72 30 225: SEQUENCE {
89 06 3: OBJECT IDENTIFIER localityName (2 5 4 7) 75 02 1: INTEGER 1
94 13 6: PrintableString 'Moscow' 78 30 129: SEQUENCE {
81 30 109: SEQUENCE {
83 31 31: SET {
85 30 29: SEQUENCE {
87 06 3: OBJECT IDENTIFIER commonName (2 5 4 3)
92 0C 22: UTF8String 'GostR3410-2001 example'
: } : }
: } : }
102 31 23: SET { 116 31 18: SET {
104 30 21: SEQUENCE { 118 30 16: SEQUENCE {
106 06 3: OBJECT IDENTIFIER organizationName (2 5 4 10) 120 06 3: OBJECT IDENTIFIER organizationName (2 5 4 10)
111 13 14: PrintableString 'OOO Crypto-Pro' 125 0C 9: UTF8String 'CryptoPro'
: } : }
: } : }
127 31 20: SET { 136 31 11: SET {
129 30 18: SEQUENCE { 138 30 9: SEQUENCE {
131 06 3: OBJECT IDENTIFIER 140 06 3: OBJECT IDENTIFIER countryName (2 5 4 6)
: organizationalUnitName (2 5 4 11) 145 13 2: PrintableString 'RU'
136 13 11: PrintableString 'Development'
: } : }
: } : }
149 31 23: SET { 149 31 41: SET {
151 30 21: SEQUENCE { 151 30 39: SEQUENCE {
153 06 3: OBJECT IDENTIFIER commonName (2 5 4 3) 153 06 9: OBJECT IDENTIFIER
158 13 14: PrintableString 'CP CSP Test CA' : emailAddress (1 2 840 113549 1 9 1)
164 16 26: IA5String 'GostR3410-2001@example.com'
: } : }
: } : }
: } : }
174 02 10: INTEGER 192 02 16: INTEGER
: 1A 02 A9 9D 00 03 00 00 0F 60 : 48 E9 54 A5 CF E9 69 F5 C9 5C F7 55 E7 83 41 AF
: } : }
186 30 10: SEQUENCE { 210 30 10: SEQUENCE {
188 06 6: OBJECT IDENTIFIER GOST R 34.11-94 (1 2 643 2 2 9) 212 06 6: OBJECT IDENTIFIER
196 05 0: NULL : id_GostR3411_94 ( 1 2 643 2 2 9)
220 05 0: NULL
: } : }
198 30 10: SEQUENCE { 222 30 10: SEQUENCE {
200 06 6: OBJECT IDENTIFIER GOST R 34.10-94 (1 2 643 2 2 20) 224 06 6: OBJECT IDENTIFIER
208 05 0: NULL : id_GostR3410_2001 ( 1 2 643 2 2 19)
232 05 0: NULL
: } : }
210 04 64: OCTET STRING 234 04 64: OCTET STRING
: 6E 7B 56 7C 86 F4 0A 08 30 7E 8F 9D DD 9E 55 B1 : 6D C4 2D E5 C8 E8 8C 2E E0 77 AA 8C 75 0F C4 18
: F4 7D 9A B3 B8 8D 52 8D 34 46 28 AF 66 48 42 71 : 09 0B 8A 23 D4 50 F3 0E 2B 6F 59 E8 8D 54 5D F9
: 8A 11 5D 45 EE 52 1F FF 81 61 AA 64 A0 D2 DE 80 : A7 4D 36 41 48 36 22 17 32 A1 F5 CA 1C FD 56 FE
: 96 C4 33 9D BD 87 3E F7 98 1E A8 91 25 FC CF 5A : C4 53 47 0D 5D 24 B9 88 70 D9 F6 0A 8A 54 DB 54
: } : }
: } : }
: } : }
: } : }
: } : }
9.2 Enveloped message using Key Agreement 9.2 Enveloped message using Key Agreement
0 30 452: SEQUENCE { 0 30 452: SEQUENCE {
4 06 9: OBJECT IDENTIFIER envelopedData (1 2 840 113549 1 7 3) 4 06 9: OBJECT IDENTIFIER envelopedData (1 2 840 113549 1 7 3)
skipping to change at page 22, line 31 skipping to change at page 22, line 29
[X.209-88] CCITT. Recommendation X.209: Specification of Basic [X.209-88] CCITT. Recommendation X.209: Specification of Basic
Encoding Rules for Abstract Syntax Notation One Encoding Rules for Abstract Syntax Notation One
(ASN.1). 1988.. (ASN.1). 1988..
[CPPK] S. Leontiev, D. Shefanovskij, "Algorithms and Identi- [CPPK] S. Leontiev, D. Shefanovskij, "Algorithms and Identi-
fiers for the Internet X.509 Public Key Infrastruc- fiers for the Internet X.509 Public Key Infrastruc-
ture Certificates and Certificate Revocation List ture Certificates and Certificate Revocation List
(CRL), corresponding to the algorithms GOST R (CRL), corresponding to the algorithms GOST R
34.10-94, GOST R 34.10-2001, GOST R 34.11-94", draft- 34.10-94, GOST R 34.10-2001, GOST R 34.11-94", draft-
ietf-pkix-gost-cppk-00.txt ietf-pkix-gost-cppk-02.txt
[CPALGS] V. Popov, I. Kurepkin, S. Leontiev "Additional cryp- [CPALGS] V. Popov, I. Kurepkin, S. Leontiev "Additional cryp-
tographic algorithms for use with GOST 28147-89, GOST tographic algorithms for use with GOST 28147-89, GOST
R 34.10-94, GOST R 34.10-2001, and GOST R 34.11-94 R 34.10-94, GOST R 34.10-2001, and GOST R 34.11-94
algorithms.", draft-popov-cryptopro-cpalgs-00.txt algorithms.", draft-popov-cryptopro-cpalgs-02.txt
[HMAC] H. Krawczyk, M. Bellare, R. Canetti, "HMAC: Keyed- [HMAC] H. Krawczyk, M. Bellare, R. Canetti, "HMAC: Keyed-
Hashing for Message Authentication", RFC 2104 Febru- Hashing for Message Authentication", RFC 2104 Febru-
ary 1997. ary 1997.
[RFDSL] "Russian Federal Digital Signature Law", 10 Jan 2002 [RFDSL] "Russian Federal Digital Signature Law", 10 Jan 2002
N1-FZ N1-FZ
[RFLLIC] "Russian Federal Law on Licensing of Selected Activ- [RFLLIC] "Russian Federal Law on Licensing of Selected Activ-
ity Categories", 08 Aug 2001 N 128-FZ ity Categories", 08 Aug 2001 N 128-FZ
[CRYPTOLIC] "Russian Federal Goverment Regulation on Licensing of [CRYPTOLIC] "Russian Federal Goverment Regulation on Licensing of
Selected Activity Categories in Cryptography Area", Selected Activity Categories in Cryptography Area",
23 Sep 2002 N 691 23 Sep 2002 N 691
Acknowledgments Acknowledgments
This document was created in accordance with "Russian Cryptographic This document was created in accordance with "Russian Cryptographic
skipping to change at page 25, line 11 skipping to change at page 25, line 7
EMail: igus@cryptocom.ru EMail: igus@cryptocom.ru
Anatolij Erkin Anatolij Erkin
SPRCIS (SPbRCZI) SPRCIS (SPbRCZI)
1, Obrucheva, 1, Obrucheva,
St.Petersburg, 195220, Russian Federation St.Petersburg, 195220, Russian Federation
EMail: erkin@nevsky.net EMail: erkin@nevsky.net
Full Copyright Statement Full Copyright Statement
Copyright (C) The Internet Society (2003). All Rights Reserved. Copyright (C) The Internet Society (2005). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and
This document and translations of it may be copied and furnished to except as set forth therein, the authors retain all their rights.
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an This document and the information contained herein are provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
 End of changes. 

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