Standards related to OpenSSL
============================

[Please, this is currently a draft.  I made a first try at finding
 documents that describe parts of what OpenSSL implements.  There are
 big gaps, and I've most certainly done something wrong.  Please
 correct whatever is...  Also, this note should be removed when this
 file is reaching a somewhat correct state.        -- Richard Levitte]


All pointers in here will be either URL's or blobs of text borrowed
from miscellaneous indexes, like rfc-index.txt (index of RFCs),
1id-index.txt (index of Internet drafts) and the like.

To find the latest possible RFCs, it's recommended to either browse
ftp://ftp.isi.edu/in-notes/ or go to http://www.rfc-editor.org/ and
use the search mechanism found there.
To find the latest possible Internet drafts, it's recommended to
browse ftp://ftp.isi.edu/internet-drafts/.
To find the latest possible PKCS, it's recommended to browse
http://www.rsasecurity.com/rsalabs/pkcs/.


Implemented:
------------

These are documents that describe things that are implemented (in
whole or at least great parts) in OpenSSL.

1319 The MD2 Message-Digest Algorithm. B. Kaliski. April 1992.
     (Format: TXT=25661 bytes) (Status: INFORMATIONAL)

1320 The MD4 Message-Digest Algorithm. R. Rivest. April 1992. (Format:
     TXT=32407 bytes) (Status: INFORMATIONAL)

1321 The MD5 Message-Digest Algorithm. R. Rivest. April 1992. (Format:
     TXT=35222 bytes) (Status: INFORMATIONAL)

2246 The TLS Protocol Version 1.0. T. Dierks, C. Allen. January 1999.
     (Format: TXT=170401 bytes) (Status: PROPOSED STANDARD)

2268 A Description of the RC2(r) Encryption Algorithm. R. Rivest.
     January 1998. (Format: TXT=19048 bytes) (Status: INFORMATIONAL)

2315 PKCS 7: Cryptographic Message Syntax Version 1.5. B. Kaliski.
     March 1998. (Format: TXT=69679 bytes) (Status: INFORMATIONAL)

PKCS#8: Private-Key Information Syntax Standard

PKCS#12: Personal Information Exchange Syntax Standard, version 1.0.

2560 X.509 Internet Public Key Infrastructure Online Certificate
     Status Protocol - OCSP. M. Myers, R. Ankney, A. Malpani, S. Galperin,
     C. Adams. June 1999. (Format: TXT=43243 bytes) (Status: PROPOSED
     STANDARD)

2712 Addition of Kerberos Cipher Suites to Transport Layer Security
     (TLS). A. Medvinsky, M. Hur. October 1999. (Format: TXT=13763 bytes)
     (Status: PROPOSED STANDARD)

2898 PKCS #5: Password-Based Cryptography Specification Version 2.0.
     B. Kaliski. September 2000. (Format: TXT=68692 bytes) (Status:
     INFORMATIONAL)

2986 PKCS #10: Certification Request Syntax Specification Version 1.7.
     M. Nystrom, B. Kaliski. November 2000. (Format: TXT=27794 bytes)
     (Obsoletes RFC2314) (Status: INFORMATIONAL)

3174 US Secure Hash Algorithm 1 (SHA1). D. Eastlake 3rd, P. Jones.
     September 2001. (Format: TXT=35525 bytes) (Status: INFORMATIONAL)

3268 Advanced Encryption Standard (AES) Ciphersuites for Transport
     Layer Security (TLS). P. Chown. June 2002. (Format: TXT=13530 bytes)
     (Status: PROPOSED STANDARD)

3279 Algorithms and Identifiers for the Internet X.509 Public Key
     Infrastructure Certificate and Certificate Revocation List (CRL)
     Profile. L. Bassham, W. Polk, R. Housley. April 2002. (Format:
     TXT=53833 bytes) (Status: PROPOSED STANDARD)

3280 Internet X.509 Public Key Infrastructure Certificate and
     Certificate Revocation List (CRL) Profile. R. Housley, W. Polk, W.
     Ford, D. Solo. April 2002. (Format: TXT=295556 bytes) (Obsoletes
     RFC2459) (Status: PROPOSED STANDARD)

3447 Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography
     Specifications Version 2.1. J. Jonsson, B. Kaliski. February 2003.
     (Format: TXT=143173 bytes) (Obsoletes RFC2437) (Status:           
     INFORMATIONAL)                                         

3713 A Description of the Camellia Encryption Algorithm. M. Matsui,
     J. Nakajima, S. Moriai. April 2004. (Format: TXT=25031 bytes)
     (Status: INFORMATIONAL)

3820 Internet X.509 Public Key Infrastructure (PKI) Proxy Certificate
     Profile. S. Tuecke, V. Welch, D. Engert, L. Pearlman, M. Thompson.
     June 2004. (Format: TXT=86374 bytes) (Status: PROPOSED STANDARD)

4132 Addition of Camellia Cipher Suites to Transport Layer Security
     (TLS). S. Moriai, A. Kato, M. Kanda. July 2005. (Format: TXT=13590
     bytes) (Status: PROPOSED STANDARD)

4162 Addition of SEED Cipher Suites to Transport Layer Security (TLS).
     H.J. Lee, J.H. Yoon, J.I. Lee. August 2005. (Format: TXT=10578 bytes)
     (Status: PROPOSED STANDARD)

4269 The SEED Encryption Algorithm. H.J. Lee, S.J. Lee, J.H. Yoon,
     D.H. Cheon, J.I. Lee. December 2005. (Format: TXT=34390 bytes)
     (Obsoletes RFC4009) (Status: INFORMATIONAL)


Related:
--------

These are documents that are close to OpenSSL, for example the
STARTTLS documents.

1421 Privacy Enhancement for Internet Electronic Mail: Part I: Message
     Encryption and Authentication Procedures. J. Linn. February 1993.
     (Format: TXT=103894 bytes) (Obsoletes RFC1113) (Status: PROPOSED
     STANDARD)

1422 Privacy Enhancement for Internet Electronic Mail: Part II:
     Certificate-Based Key Management. S. Kent. February 1993. (Format:
     TXT=86085 bytes) (Obsoletes RFC1114) (Status: PROPOSED STANDARD)

1423 Privacy Enhancement for Internet Electronic Mail: Part III:
     Algorithms, Modes, and Identifiers. D. Balenson. February 1993.
     (Format: TXT=33277 bytes) (Obsoletes RFC1115) (Status: PROPOSED
     STANDARD)

1424 Privacy Enhancement for Internet Electronic Mail: Part IV: Key
     Certification and Related Services. B. Kaliski. February 1993.
     (Format: TXT=17537 bytes) (Status: PROPOSED STANDARD)

2025 The Simple Public-Key GSS-API Mechanism (SPKM). C. Adams. October
     1996. (Format: TXT=101692 bytes) (Status: PROPOSED STANDARD)

2510 Internet X.509 Public Key Infrastructure Certificate Management
     Protocols. C. Adams, S. Farrell. March 1999. (Format: TXT=158178
     bytes) (Status: PROPOSED STANDARD)

2511 Internet X.509 Certificate Request Message Format. M. Myers, C.
     Adams, D. Solo, D. Kemp. March 1999. (Format: TXT=48278 bytes)
     (Status: PROPOSED STANDARD)

2527 Internet X.509 Public Key Infrastructure Certificate Policy and
     Certification Practices Framework. S. Chokhani, W. Ford. March 1999.
     (Format: TXT=91860 bytes) (Status: INFORMATIONAL)

2538 Storing Certificates in the Domain Name System (DNS). D. Eastlake
     3rd, O. Gudmundsson. March 1999. (Format: TXT=19857 bytes) (Status:
     PROPOSED STANDARD)

2539 Storage of Diffie-Hellman Keys in the Domain Name System (DNS).
     D. Eastlake 3rd. March 1999. (Format: TXT=21049 bytes) (Status:
     PROPOSED STANDARD)

2559 Internet X.509 Public Key Infrastructure Operational Protocols -
     LDAPv2. S. Boeyen, T. Howes, P. Richard. April 1999. (Format:
     TXT=22889 bytes) (Updates RFC1778) (Status: PROPOSED STANDARD)

2585 Internet X.509 Public Key Infrastructure Operational Protocols:
     FTP and HTTP. R. Housley, P. Hoffman. May 1999. (Format: TXT=14813
     bytes) (Status: PROPOSED STANDARD)

2587 Internet X.509 Public Key Infrastructure LDAPv2 Schema. S.
     Boeyen, T. Howes, P. Richard. June 1999. (Format: TXT=15102 bytes)
     (Status: PROPOSED STANDARD)

2595 Using TLS with IMAP, POP3 and ACAP. C. Newman. June 1999.
     (Format: TXT=32440 bytes) (Status: PROPOSED STANDARD)

2631 Diffie-Hellman Key Agreement Method. E. Rescorla. June 1999.
     (Format: TXT=25932 bytes) (Status: PROPOSED STANDARD)

2632 S/MIME Version 3 Certificate Handling. B. Ramsdell, Ed.. June
     1999. (Format: TXT=27925 bytes) (Status: PROPOSED STANDARD)

2716 PPP EAP TLS Authentication Protocol. B. Aboba, D. Simon. October
     1999. (Format: TXT=50108 bytes) (Status: EXPERIMENTAL)

2773 Encryption using KEA and SKIPJACK. R. Housley, P. Yee, W. Nace.
     February 2000. (Format: TXT=20008 bytes) (Updates RFC0959) (Status:
     EXPERIMENTAL)

2797 Certificate Management Messages over CMS. M. Myers, X. Liu, J.
     Schaad, J. Weinstein. April 2000. (Format: TXT=103357 bytes) (Status:
     PROPOSED STANDARD)

2817 Upgrading to TLS Within HTTP/1.1. R. Khare, S. Lawrence. May
     2000. (Format: TXT=27598 bytes) (Updates RFC2616) (Status: PROPOSED
     STANDARD)

2818 HTTP Over TLS. E. Rescorla. May 2000. (Format: TXT=15170 bytes)
     (Status: INFORMATIONAL)

2876 Use of the KEA and SKIPJACK Algorithms in CMS. J. Pawling. July
     2000. (Format: TXT=29265 bytes) (Status: INFORMATIONAL)

2984 Use of the CAST-128 Encryption Algorithm in CMS. C. Adams.
     October 2000. (Format: TXT=11591 bytes) (Status: PROPOSED STANDARD)

2985 PKCS #9: Selected Object Classes and Attribute Types Version 2.0.
     M. Nystrom, B. Kaliski. November 2000. (Format: TXT=70703 bytes)
     (Status: INFORMATIONAL)

3029 Internet X.509 Public Key Infrastructure Data Validation and
     Certification Server Protocols. C. Adams, P. Sylvester, M. Zolotarev,
     R. Zuccherato. February 2001. (Format: TXT=107347 bytes) (Status:
     EXPERIMENTAL)

3039 Internet X.509 Public Key Infrastructure Qualified Certificates
     Profile. S. Santesson, W. Polk, P. Barzin, M. Nystrom. January 2001.
     (Format: TXT=67619 bytes) (Status: PROPOSED STANDARD)

3058 Use of the IDEA Encryption Algorithm in CMS. S. Teiwes, P.
     Hartmann, D. Kuenzi. February 2001. (Format: TXT=17257 bytes)
     (Status: INFORMATIONAL)

3161 Internet X.509 Public Key Infrastructure Time-Stamp Protocol
     (TSP). C. Adams, P. Cain, D. Pinkas, R. Zuccherato. August 2001.
     (Format: TXT=54585 bytes) (Status: PROPOSED STANDARD)

3185 Reuse of CMS Content Encryption Keys. S. Farrell, S. Turner.
     October 2001. (Format: TXT=20404 bytes) (Status: PROPOSED STANDARD)

3207 SMTP Service Extension for Secure SMTP over Transport Layer
     Security. P. Hoffman. February 2002. (Format: TXT=18679 bytes)
     (Obsoletes RFC2487) (Status: PROPOSED STANDARD)

3217 Triple-DES and RC2 Key Wrapping. R. Housley. December 2001.
     (Format: TXT=19855 bytes) (Status: INFORMATIONAL)

3274 Compressed Data Content Type for Cryptographic Message Syntax
     (CMS). P. Gutmann. June 2002. (Format: TXT=11276 bytes) (Status:
     PROPOSED STANDARD)

3278 Use of Elliptic Curve Cryptography (ECC) Algorithms in
     Cryptographic Message Syntax (CMS). S. Blake-Wilson, D. Brown, P.
     Lambert. April 2002. (Format: TXT=33779 bytes) (Status:
     INFORMATIONAL)

3281 An Internet Attribute Certificate Profile for Authorization. S.
     Farrell, R. Housley. April 2002. (Format: TXT=90580 bytes) (Status:
     PROPOSED STANDARD)

3369 Cryptographic Message Syntax (CMS). R. Housley. August 2002.
     (Format: TXT=113975 bytes) (Obsoletes RFC2630, RFC3211) (Status:
     PROPOSED STANDARD)

3370 Cryptographic Message Syntax (CMS) Algorithms. R. Housley. August
     2002. (Format: TXT=51001 bytes) (Obsoletes RFC2630, RFC3211) (Status:
     PROPOSED STANDARD)

3377 Lightweight Directory Access Protocol (v3): Technical
     Specification. J. Hodges, R. Morgan. September 2002. (Format:
     TXT=9981 bytes) (Updates RFC2251, RFC2252, RFC2253, RFC2254, RFC2255,
     RFC2256, RFC2829, RFC2830) (Status: PROPOSED STANDARD)

3394 Advanced Encryption Standard (AES) Key Wrap Algorithm. J. Schaad,
     R. Housley. September 2002. (Format: TXT=73072 bytes) (Status:
     INFORMATIONAL)

3436 Transport Layer Security over Stream Control Transmission
     Protocol. A. Jungmaier, E. Rescorla, M. Tuexen. December 2002.
     (Format: TXT=16333 bytes) (Status: PROPOSED STANDARD)

3657 Use of the Camellia Encryption Algorithm in Cryptographic 
     Message Syntax (CMS). S. Moriai, A. Kato. January 2004.
     (Format: TXT=26282 bytes) (Status: PROPOSED STANDARD)

"Securing FTP with TLS", 01/27/2000, <draft-murray-auth-ftp-ssl-05.txt>  
 

To be implemented:
------------------

These are documents that describe things that are planed to be
implemented in the hopefully short future.

