Skip to main content

The application/pkcs10 Media Type

The information below is for an old version of the document that is already published as an RFC.
Document Type
This is an older version of an Internet-Draft that was ultimately published as RFC 5967.
Author Sean Turner
Last updated 2015-10-14 (Latest revision 2010-05-06)
RFC stream Internet Engineering Task Force (IETF)
Intended RFC status Informational
Stream WG state (None)
Document shepherd (None)
IESG IESG state Became RFC 5967 (Informational)
Action Holders
Consensus boilerplate Unknown
Telechat date (None)
Responsible AD Tim Polk
Send notices to
Network Working Group                                         S. Turner 
Internet Draft                                                     IECA 
Intended Status: Informational                              May 6, 2010 
Updates: 2986 (once approved) 
Expires: November 6, 2010 
                     The application/pkcs10 Media Type 


   This document specifies a media type used to carry PKCS#10 
   certification requests as defined in RFC 2986. It carries over the 
   original specification from RFC 2311, which recently has been moved 
   to Historic state, and properly links it to RFC 2986. 

Status of this Memo 

   This Internet-Draft is submitted in full conformance with the 
   provisions of BCP 78 and BCP 79.  This document may contain material 
   from IETF Documents or IETF Contributions published or made publicly 
   available before November 10, 2008.  The person(s) controlling the 
   copyright in some of this material may not have granted the IETF 
   Trust the right to allow modifications of such material outside the 
   IETF Standards Process.  Without obtaining an adequate license from 
   the person(s) controlling the copyright in such materials, this 
   document may not be modified outside the IETF Standards Process, and 
   derivative works of it may not be created outside the IETF Standards 
   Process, except to format it for publication as an RFC or to 
   translate it into languages other than English. 

   Internet-Drafts are working documents of the Internet Engineering 
   Task Force (IETF), its areas, and its working groups.  Note that 
   other groups may also distribute working documents as Internet- 

   Internet-Drafts are draft documents valid for a maximum of six 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 "work in progress." 

   The list of current Internet-Drafts can be accessed at 

   The list of Internet-Draft Shadow Directories can be accessed at 
Turner                 Expires November 6, 2010                [Page 1] 

Internet-Draft      application/pkcs10 Media Type              May 2010 

   This Internet-Draft will expire on November 6, 2010. 

Copyright Notice 

   Copyright (c) 2010 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 
   ( in effect on the date of 
   publication of this document. Please review these documents 
   carefully, as 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 are provided without warranty as 
   described in the Simplified BSD License. 

1. Introduction 

   [RFC2311] first defined the application/pkcs10 media type.  When 
   [RFC2633] was published, the application/pkcs10 section was dropped, 
   but for some reason the text was not incorporated into the PKCS#10 
   document [RFC2986].  [RFC2311] was moved to historic status by 
   [RFC5751].  To ensure the IANA media type registration points to a 
   non-historic document, this document updates [RFC2986] with the 
   definition of the application/pkcs10 media type and an IANA 
   registration based on [RFC4288]. 

   The text for Section 2 is adapted from Section 3.7 of [RFC2311]. 

1.1. Requirements Terminology 

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 
   document are to be interpreted as described in [RFC2119]. 

2. Creating a Certification Request 

   A typical application which allows a user to generate cryptographic 
   information has to submit that information to a certification 
   authority (CA), who transforms it into a certificate.  PKCS #10 
   [RFC2986] describes a syntax for certification requests.  A PKCS #10 
   certification request MUST use the application/pkcs10 media type. 

   The details of certification requests and the process of obtaining a 
   certificate are beyond the scope of this memo. Instead, only the 
   format of data used in application/pkcs10 is defined. 

Turner                  Expires August 6, 2010                 [Page 2] 

Internet-Draft      application/pkcs10 Media Type              May 2010 

2.1. Format of the application/pkcs10 Body 

   PKCS #10 defines the ASN.1 type CertificationRequest for use in 
   submitting a certification request. For transfer to a CA, this 
   abstract syntax needs to be encoded and identified in a unique 
   manner.  When the media type application/pkcs10 is used, the body 
   MUST be a CertificationRequest, encoded using the Basic Encoding 
   Rules (BER) [X.690]. 

   Although BER is specified, instead of the more restrictive 
   Distinguished Encoding Rules (DER) [X.690], a typical application 
   will use DER since the CertificationRequest's 
   CertificationRequestInfo has to be DER-encoded in order to be signed. 

   A robust application SHOULD output DER, but allow BER or DER on 

   Data produced by BER or DER is 8-bit, but some transports are limited 
   to 7-bit data. In such cases, a suitable 7-bit transfer encoding MUST 
   be applied; in MIME-compatible transports, the base64 encoding 
   [RFC4648] SHOULD be used with application/pkcs10, although any 7-bit 
   transfer encoding may work. 

2.2. Sending and Receiving an application/pkcs10 Body Part 

   For sending a certificate-signing request, the application/pkcs10 
   message format MUST be used to convey a PKCS #10 certificate-signing 
   request. Note that for sending certificates and CRLs without any 
   signed content, the application/pkcs7-mime message format MUST be 
   used to convey a degenerate PKCS #7 signedData "certs-only" message 

   To send an application/pkcs10 body, the application generates the 
   cryptographic information for the user. The details of the 
   cryptographic information are beyond the scope of this memo. 

   Step 1. The cryptographic information is placed within a PKCS #10 

   Step 2. The CertificationRequest is encoded according to BER or DER 
   (typically, DER). 

   Step 3. As a typical step, the DER-encoded CertificationRequest is 
   also base64 encoded so that it is 7-bit data suitable for transfer in 
   ESMTP. This then becomes the body of an application/pkcs10 body part. 

   The result might look like this: 

Turner                  Expires August 6, 2010                 [Page 3] 

Internet-Draft      application/pkcs10 Media Type              May 2010 

     Content-Type: application/pkcs10; name=smime.p10 
     Content-Transfer-Encoding: base64 
     Content-Disposition: attachment; filename=smime.p10 


   A typical application only needs to send a certification request. It 
   is a certification authority that has to receive and process the 
   request. The steps for recovering the CertificationRequest from the 
   message are straightforward but are not presented here. The 
   procedures for processing the certification request are beyond the 
   scope of this document. 

3. IANA Considerations 

   IANA is asked to update the registration for the application/pkcs10 
   media subtype in the Application Media Types registry using the 
   filled-in template from BCP 13 [RFC4288] given below. 

3.1. Registration of media subtype application/pkcs10 

   The media subtype for a PKCS#10 certification request is 

     Type name: application 

     Subtype name: pkcs10 

     Required parameters: None 

     Optional parameters: None 

     Encoding considerations: binary; See Section 2.  

     Security considerations: 

      Clients use a certification request to request that a 
      Certification Authority certify a public key.  The certification 
      request is digitally signed.  Also see Section 6. 

     Interoperability considerations: See Section 2. 

     Published specification: This specification. 

Turner                  Expires August 6, 2010                 [Page 4] 

Internet-Draft      application/pkcs10 Media Type              May 2010 

     Applications which use this media type: 

       Applications that support PKCS#10 certification requests 

     Additional information: 

       Magic number(s): None 
       File extension(s): .p10 
       Macintosh File Type Code(s): 

     Person & email address to contact for further information: 
       Sean Turner <> 

     Restrictions on usage: none 

     Author: Sean Turner <> 

     Intended usage: COMMON 

     Change controller: The IESG 

4. Security Considerations 

   The security considerations of [RFC2986] and [RFC5751] apply; no new 
   security considerations are introduced by this document. 

5. Acknowledgements 

   I wish to thank the authors of RFC 2311, Steve Dusse, Paul Hoffman, 
   Blake Ramsdell, Laurence Lundblade, and Lisa Repka.  

   I would also like to thank Bjoern Hoehrmann for his review of the 
   media subtype application. 

6. References 

6.1. Normative References 

   [RFC2119]    Bradner, S., "Key words for use in RFCs to Indicate 
                Requirement Levels", BCP 14, RFC 2119, March 1997. 

   [RFC2986]    Nystrom, M, and B. Kaliski, "PKCS #10: Certification 
                Request Syntax Specification Version 1.7", RFC 2986, 
                November 2000. 

Turner                  Expires August 6, 2010                 [Page 5] 

Internet-Draft      application/pkcs10 Media Type              May 2010 

   [RFC4288]    Freed, N., and J. Klensin, "Media Type Specifications 
                and Registration Procedures, BCP 13, RFC 4288, December 

   [RFC4648]    Josefsson, S., "The Base16, Base32, and Base64 Data 
                Encodings", RFC 4648, October 2006. 

   [RFC5751]    Turner, S. and B. Ramsdell, "Secure/Multipurpose 
                Internet Mail Extensions (S/MIME) Version 3.2 Message 
                Specification", RFC 5751, January 2010. 

   [X.690]      ITU-T Recommendation X.690 (2002) | ISO/IEC 8825-
                1:2002.  Information Technology - ASN.1 encoding rules: 
                Specification of Basic Encoding Rules (BER), Canonical 
                Encoding Rules (CER) and Distinguished Encoding Rules 

6.2. Informative References 

   [RFC2311]    Dusse, S., Hoffman, P., Ramsdell, B., Lundblade, L., 
                and L. Repka, "S/MIME Version 2 Message Specification", 
                RFC 2311, March 1998. 

   [RFC2633]    Ramsdell, B., "S/MIME Version 3 Message Specification", 
                RFC 2633, June 1999. 

Authors' Addresses 

   Sean Turner 
   IECA, Inc. 
   3057 Nutley Street, Suite 106 
   Fairfax, VA 22031 


Turner                  Expires August 6, 2010                 [Page 6]