<?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-pkcs8-prikeyinfo-contenttypes-04" number="9939" updates="" obsoletes="" xml:lang="en" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">

  <front>
    <title abbrev="PKCS #8: PrivateKeyInfo Content Types">PKCS #8: Private-Key Information Content Types</title>
    <seriesInfo name="RFC" value="9939"/>
    <author initials="J." surname="Mandel" fullname="Joe Mandel">
      <organization abbrev="AKAYLA">AKAYLA, Inc.</organization>
      <address>
        <email>joe@akayla.com</email>
      </address>
    </author>
    <author initials="R." surname="Housley" fullname="Russ Housley">
      <organization abbrev="Vigil Security">Vigil Security, LLC</organization>
      <address>
        <email>housley@vigilsec.com</email>
      </address>
    </author>
    <author initials="S." surname="Turner" fullname="Sean Turner">
      <organization abbrev="sn3rd">sn3rd</organization>
      <address>
        <email>sean@sn3rd.com</email>
      </address>
    </author>
    <date year="2026" month="February"/>
    <area>SEC</area>
    <workgroup>lamps</workgroup>

    <keyword>CMS</keyword>

    <abstract>
<t>This document defines PKCS #8 content types for use with
PrivateKeyInfo and EncryptedPrivateKeyInfo as specified in
RFC 5958.</t>
    </abstract>
  </front>
  <middle>

    <section anchor="intro">
      <name>Introduction</name>
      <t>The syntax for private-key information was originally described in <xref target="RFC5208"/>, and
the syntax was later revised by <xref target="RFC5958"/> to include the AsymmetricKeyPackage
content type that supports multiple PrivateKeyInfos. This document defines PKCS #8 content types for
use with one PrivateKeyInfo and one EncryptedPrivateKeyInfo. These content type assignments are
needed for the PrivateKeyInfo and EncryptedPrivateKeyInfo to be carried in the
Cryptographic Message Syntax (CMS) <xref target="RFC5652"/>.</t>
      <t>Note: A very long time ago, media types for PrivateKeyInfo and EncryptedPrivateKeyInfo were assigned
as "application/pkcs8" and "application/pkcs8-encrypted", respectively.</t>
    </section>
    <section anchor="ContentTypes">
      <name>Private-Key Information Content Types</name>
      <t>This section defines a content type for private-key information and
encrypted private-key information.</t>
<t>The PrivateKeyInfo content type is identified by the following object identifier:</t>

      <sourcecode type="asn.1"><![CDATA[
id-ct-privateKeyInfo OBJECT IDENTIFIER ::= { iso(1)
 member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9)
 smime(16) ct(1) 52 }]]></sourcecode>

      <t>The EncryptedPrivateKeyInfo content type is identified by the following object identifier:</t>

      <sourcecode type="asn.1"><![CDATA[
id-ct-encrPrivateKeyInfo OBJECT IDENTIFIER ::= { iso(1)
 member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9)
 smime(16) ct(1) 53 }]]></sourcecode>

    </section>
    <section anchor="asn1-mod">
      <name>ASN.1 Module</name>
      <t>The ASN.1 module <xref target="X680"/> <xref target="X690"/> in this section builds upon the modules in <xref target="RFC5911"/>.</t>

      <sourcecode type="asn.1" markers="true"><![CDATA[
PrivateKeyInfoContentTypes
 { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
   pkcs-9(9) smime(16) modules(0) id-mod-pkcs8ContentType(85) }

DEFINITIONS IMPLICIT TAGS ::=
BEGIN

-- EXPORTS ALL

IMPORTS

CONTENT-TYPE
 FROM CryptographicMessageSyntax-2009 -- in [RFC5911]
   { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
     pkcs-9(9) smime(16) modules(0) id-mod-cms-2004-02(41) }

PrivateKeyInfo, EncryptedPrivateKeyInfo
 FROM AsymmetricKeyPackageModuleV1 -- in [RFC5958]
    { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
      pkcs-9(9) smime(16) modules(0)
      id-mod-asymmetricKeyPkgV1(50) }  ;


PrivateKeyInfoContentTypes CONTENT-TYPE ::= {
 ct-privateKeyInfo | ct-encrPrivateKeyInfo,
 ... -- Expect additional content types --  }

ct-privateKeyInfo CONTENT-TYPE ::= { PrivateKeyInfo
 IDENTIFIED BY id-ct-privateKeyInfo }

id-ct-privateKeyInfo OBJECT IDENTIFIER ::= { iso(1)
 member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9)
 smime(16) ct(1) 52 }

ct-encrPrivateKeyInfo CONTENT-TYPE ::= { EncryptedPrivateKeyInfo
 IDENTIFIED BY id-ct-encrPrivateKeyInfo }

id-ct-encrPrivateKeyInfo OBJECT IDENTIFIER ::= { iso(1)
 member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9)
 smime(16) ct(1) 53 }

END]]></sourcecode>

    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations in <xref target="RFC5958"/> apply here.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>For each of the private-key information content types defined in <xref target="ContentTypes"/>,
IANA has assigned an Object Identifier (OID). The
OIDs for the content types have been allocated in the "SMI Security for S/MIME CMS Content Type (1.2.840.113549.1.9.16.1)" registry <xref target="IANA-CMS-CTS"/> as follows:
      </t>
      
  <table>
        <thead>
          <tr>
            <th align="left">Decimal</th>
            <th align="left">Description</th>
	     <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">52</td>
            <td align="left">id-ct-privateKeyInfo</td>
	    <td align="left">RFC 9939</td>
          </tr>
	   <tr>
            <td align="left">53</td>
            <td align="left">id-ct-encrPrivateKeyInfo</td>
	    <td align="left">RFC 9939</td>
          </tr>
        </tbody>
      </table>
      
      <t>For the ASN.1 module in <xref target="asn1-mod"/>, IANA has assigned an OID for the module identifier. The OID for the module
has been allocated in the "SMI Security for S/MIME Module Identifier (1.2.840.113549.1.9.16.0)"
registry  <xref target="IANA-SMIME-MODS"/> as follows:</t>

 <table>
        <thead>
          <tr>
            <th align="left">Decimal</th>
            <th align="left">Description</th>
	     <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">85</td>
            <td align="left">id-mod-pkcs8ContentType</td>
	    <td align="left">RFC 9939</td>
          </tr>
        </tbody>
      </table>
      
      <t>IANA has updated the application/cms registration entry in the "Media Types" registry by adding RFC 9939 to the "Interoperability considerations" section and to the list of RFCs where Inner Content Types (ICTs) are defined (see the "Optional parameters" section) and by adding the following values to the list of ICTs:</t>
      <ul spacing="compact">
        <li>
          <t>privateKeyInfo</t>
        </li>
        <li>
          <t>encrPrivateKeyInfo</t>
        </li>
      </ul>
      <t>IANA has also updated the "Security considerations" section in the application/cms entry as follows:</t>
      <table>
        <thead>
          <tr>
            <th align="left">RFC</th>
            <th align="left">CMS Protecting Content Type and Algorithms</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">RFC 9939</td>
            <td align="left">privateKeyInfo and encrPrivateKeyInfo</td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5652.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5958.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5911.xml"/>

        <reference anchor="X680" target="https://www.itu.int/rec/T-REC-X.680">
          <front>            
	    <title>Information technology - Abstract Syntax Notation One (ASN.1): Specification of basic notation</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2021" month="February"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="X.680"/>
          <seriesInfo name="ISO/IEC" value="8824-1:2021"/>
        </reference>

        <reference anchor="X690" target="https://www.itu.int/rec/T-REC-X.690">
          <front>
            <title>Information technology - ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2021" month="February"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="X.690"/>
          <seriesInfo name="ISO/IEC" value="8825-1:2021"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5208.xml"/>
        <reference anchor="IANA-SMIME-MODS" target="https://www.iana.org/assignments/smi-numbers">
          <front>
            <title>SMI Security for S/MIME Module Identifier (1.2.840.113549.1.9.16.0)</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA-CMS-CTS" target="https://www.iana.org/assignments/smi-numbers">
          <front>
            <title>SMI Security for S/MIME CMS Content Type (1.2.840.113549.1.9.16.1)</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
      </references>
    </references>

    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to <contact fullname="John Gray"/>, <contact fullname="Deb
      Cooley"/>, <contact fullname="Mohamed Boucadair"/>, <contact
      fullname="Orie Steele"/>, and <contact fullname="Éric Vyncke"/> for
      reviewing the document and providing comments.</t>
    </section>
  </back>

</rfc>
