<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-pkcs8-prikeyinfo-contenttypes-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.2 -->
  <front>
    <title abbrev="PKCS #8 PrivateKeyInfo Content Types">PKCS #8 Private-Key Information Content Types</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-pkcs8-prikeyinfo-contenttypes-03"/>
    <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="2025" month="September" day="29"/>
    <area>Security</area>
    <workgroup>Limited Additional Mechanisms for PKIX and SMIME</workgroup>
    <keyword/>
    <abstract>
      <?line 82?>

<t>This document defines PKCS #8 content types for use with
PrivateKeyInfo and EncryptedPrivateKeyInfo as specified in
RFC 5958.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://github.com/lamps-wg/pkcs8-PriKeyInfoCt"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-lamps-pkcs8-prikeyinfo-contenttypes/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Limited Additional Mechanisms for PKIX and SMIME  mailing list (<eref target="mailto:spasm@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/spasm/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/spasm/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/lamps-wg/pkcs8-PriKeyInfoCt"/>.</t>
    </note>
  </front>
  <middle>
    <?line 88?>

<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 EncryptedPrivateKeyInfo. These content type assignments are
needed for 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>
      <artwork><![CDATA[
id-ct-privateKeyInfo OBJECT IDENTIFIER ::= { iso(1)
 member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9)
 smime(16) ct(1) TBD1 }
]]></artwork>
      <t>The EncryptedPrivateKeyInfo content type is identified by the following object identifier:</t>
      <artwork><![CDATA[
id-ct-encrPrivateKeyInfo OBJECT IDENTIFIER ::= { iso(1)
 member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9)
 smime(16) ct(1) TBD2 }
]]></artwork>
    </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(TBD0) }

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) TBD1 }

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) TBD2 }

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 the private key info content types defined in section <xref target="ContentTypes"/>,
IANA is requested to assign an object identifier (OID) for each of the content types. The
OIDs for the content types should be alloacted in the "SMI Security for S/MIME CMS Content Type"
registry (1.2.840.113549.1.9.16.1) <xref target="IANA-CMS-CTS"/>, and the description should be set to id-ct-privateKeyInfo (TDB1)
and id-ct-encrPrivateKeyInfo (TBD2).</t>
      <t>For the ASN.1 Module in <xref target="asn1-mod"/>, IANA is requested to assign an
object identifier (OID) for the module identifier. The OID for the module
should be allocated in the "SMI Security for S/MIME Module Identifier"
registry (1.2.840.113549.1.9.16.0) <xref target="IANA-SMIME-MODS"/>, and the Description for the new OID should be set
to "id-mod-pkcs8ContentType".</t>
      <t>IANA is also requested to update the application/cms entry in the "Media Types" registry to add [ RFC-to-be] to the list of RFCs where Inner Content Types (ICTs) are defined in the "Optional parameters" and the "Interoperability considerations" sections.</t>
      <t>IANA is also requested to update the application/cms entry in the "Media Types" registry to
add the following values to the "innerContent" list:</t>
      <ul spacing="normal">
        <li>
          <t>privateKeyInfo</t>
        </li>
        <li>
          <t>encrPrivateKeyInfo</t>
        </li>
      </ul>
      <t>And, to update the following row in the application/cms entry's "Security considerations" section:</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-to-be ]</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>
        <reference anchor="RFC5652">
          <front>
            <title>Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document describes the Cryptographic Message Syntax (CMS). This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary message content. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="70"/>
          <seriesInfo name="RFC" value="5652"/>
          <seriesInfo name="DOI" value="10.17487/RFC5652"/>
        </reference>
        <reference anchor="RFC5958">
          <front>
            <title>Asymmetric Key Packages</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="August" year="2010"/>
            <abstract>
              <t>This document defines the syntax for private-key information and a content type for it. Private-key information includes a private key for a specified public-key algorithm and a set of attributes. The Cryptographic Message Syntax (CMS), as defined in RFC 5652, can be used to digitally sign, digest, authenticate, or encrypt the asymmetric key format content type. This document obsoletes RFC 5208. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5958"/>
          <seriesInfo name="DOI" value="10.17487/RFC5958"/>
        </reference>
        <reference anchor="RFC5911">
          <front>
            <title>New ASN.1 Modules for Cryptographic Message Syntax (CMS) and S/MIME</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>The Cryptographic Message Syntax (CMS) format, and many associated formats, are expressed using ASN.1. The current ASN.1 modules conform to the 1988 version of ASN.1. This document updates those ASN.1 modules to conform to the 2002 version of ASN.1. There are no bits-on-the-wire changes to any of the formats; this is simply a change to the syntax. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5911"/>
          <seriesInfo name="DOI" value="10.17487/RFC5911"/>
        </reference>
        <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>
        <reference anchor="RFC5208">
          <front>
            <title>Public-Key Cryptography Standards (PKCS) #8: Private-Key Information Syntax Specification Version 1.2</title>
            <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This document represents a republication of PKCS #8 v1.2 from RSA Laboratories' Public Key Cryptography Standard (PKCS) series. Change control is transferred to the IETF. The body of this document, except for the security considerations section, is taken directly from the PKCS #8 v1.2 specification.</t>
              <t>This document describes a syntax for private-key information. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5208"/>
          <seriesInfo name="DOI" value="10.17487/RFC5208"/>
        </reference>
        <reference anchor="IANA-SMIME-MODS" target="https://www.iana.org/assignments/smi-numbers/smi-numbers.xhtml#security-smime-0">
          <front>
            <title>SMI Security for S/MIME Module Identifier</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="IANA-CMS-CTS" target="https://www.iana.org/assignments/smi-numbers/smi-numbers.xhtml#security-smime-1">
          <front>
            <title>SMI Security for S/MIME CMS Content Type</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 207?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to John Gray and Deb Cooley for reviewing the document and providing comments.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1Z3XPaOhZ/119xhjyU7MYmpEknYac7JUC6tCHJBLbTzp0+
CFsB3RjLV7JDmZT+7XuOZIMNpF97O3sfNjMdbOvofPzOp1TP81gq00i0oHbz
tjOEvVO40fKBp8J7KxbQj++UnvFUqhg6Kk5FnMJokQhTY3w81uJhex9uo12b
5AEuTZRetMCkIWOhCmI+Q7Gh5nepJ0V650V8lhgvuQ/MqZdoeS8WEhl5gWOU
Eh/v8Dkz2XgmjUGV6FML+r3RBYuz2VjoFgtRTIvhFiNik5kWpDoTDNV8zrgW
HNUdiiDTMl3U2Fzp+4lWWYJfL+VMpiKEdhhKspZHMBDBlMfSzAwgCHDztv8e
eBzCcNAf9GoM1UMGYYuBxx5EnKFYgJ9nB+CsqdHjjMsIH03CzewVYeMrPaEF
roMpLkzTNDGtRoPo6JN8EH5B1qAPjbFWcyMalkODdk5kOs3GuNehPJ80HNDo
tdxjnZToIgTQpCUZbqMfqFnjq1sZz9KpQhd44Dz7RgkYoIUiQraoWAvab9sf
LtsHGFWBT8bkEeQ+4wfh7P5diVf8ni8iTlJX/G4zY+BfKjORWBQc38mJjKBw
6QFcXnZKjKurawFTx+TVA60bEVTEDAWPYZTpWOhCiomf67DEt3jP2Rnc8cp+
s4xY7FLmwUbE7UXn5MXJUfF4dnK6emw26fH9i9ND+sUA4HoiEPoC+fl87ss0
82WcNrQIGiPvttfx3vu4wdG7xP2nfYFKrqYYbLGK1GQBmOFuvT02qeZBCsNF
nPJPcKVSR3wdC6i3h1d+c7+V0w4TEcg7GTgCdQdjbmQAcb7FUhX+pmfPAdUf
/dsb2Q82D+Ho8KjpHR7ZL0ZoKQxldCHEUsOtQNBmIg4t5xas7UOK4XWj3+u0
4PT06NhrtoifhezsRyE7+znICBQQcaBCGU9AZ5HAkrIFzrkFp1eQ3RIZ1M97
t/sHOaMOj1WMO6Itqg5S2TrQlSbF75k0Uywcm2RdJPvFqJ/tQv3Ea3oWdVlA
tQ7ro0Mby/32VduzVcwbXHeHrTLQNfy+SkBb94YNooSBCtEw6IdY2RFLoWtP
+5PH3BU2LPqTGJVOTcPMpOdqfuXZ/zRNZ9GeySV6uDQT3mGhZWcw9Dqj71QR
iStN7Fdq2Pw/jn8Sjox5noeV2tU6xkZTaQCnjYy4QSjuZIz5VMws+Wxhe6/r
y5kRMMeWxzbGGUpRTEq9SLCvb64ZMK4mYObKmGFyAFV63ykzk2EYCcb2sN6k
Gh0W2MLxuCfpdUk6CjCuKJMKST6A4YQBslSh5ihHaexZOE5EC7TFBFqOrUh4
fMwzcrk8IF1ZuuZJ+6ita8DuJQ1uGC/yDajkcgmpQhZBlIUCaFvbLLA0pFoG
aOAND+75RLAyUkjFUzBZkiidGphlUSoTjMIqLMaHHwSfFeCDije5fc0BJEjg
1oqOpRjCsUmwWIgQTbez1/e7FqEZI2OutfMtAcQ6RKommidTrPsDYQwiVLTV
Osb7fg4vNv7lEqMAWy1mSBsehF5ApLCspxitwCfqAGYilLwUgD+g3Fzowk4R
MvQyT5Io70tuRrPbt756omB4gCFBoUtlPVr4FKPfNf5j8Obv9nWZ55kRLrQL
T/OqS74W3BSzK7WeovJdrmzAUJGBWsiiGNpAp4i+U1Gk5tRO1fh31HFNgp2U
ffnyhcnQC1IvqTK+Pn/T64yg3+1djfoX/d4ttFov4RFlqHoT2/FMUCnyxipc
1I/2sXTUT48P90EbHhpZbzafnxyf7QNBjuT21zurn+FGW6zqzRf7EKS0NDrv
NmFpFbEGPuXwP89Sgvrmf2ftUWHtXj5j5X3scY+buOnNVJiXRbc6y1cfaVhe
Lun3DH9dPpbibpzJKDSQJcomar7PrAskztw2IVE2Jk7sNzfKfDmo2cr2HzOd
2tvK+pLxuTJ13Ig+wDd31C2JrCMyuIqmd3sX/av+qH99NYT+4Oay3+mPYNR+
PSSfsPPe6/4V9Rbovb+5vh0NoX15yRgS0gtjneurETrRG3246TG4uL0eQKVk
5RXLFSwc7w7PcOQlkH7LMfpINvy89d9rfzAzJP0Yh9X6cdMaXnXHwVOZkFu1
q1O5SHrXrJh0cmpN+q9s+oZROVFuGq9odj9516yfkGsB/sE2rSwHHZR95xKQ
wXZl+gw7cxiPG77vk+W9T1TVga/vH6rdFkkI7m3O2/JhE/pVhejC+QfYWTmR
9V+iorLdpW6HkU8G2i5rd7BcWfwXqKysd9W15fWxBUZlOsDDXii8Gdf3ODm/
fEZ3Ys+WVHxX8zrGoMFWoW2bNflIWiwGlcVSNbXTI40XC5jiLIKFlYZcPCFs
8bvA1k8VOY8HKBr7Rli6wcEOWkVNf3ysTBrLA2YFYNXX4o9MGBoXUpWPQThG
bDc+qF/3u/t2+hA8mNKJnVSpSLYjJEM6N4RtrYOZqiwKaRjE4Vvh0WI1Dv7I
yUeLCR7zcQisN/0jH73sO+/6TR//vfCbNDmWj1j5OG/luIE/sais1TEitQP8
rnSrj7rnGGDE4MngpKZztO+vXVRpyNbXq56MynwdfPY18NcdubRugQek2SBh
VcDp+vjbgO84DX8L8cMV4uujdxn0bgn0QsNYzK3GFScwxKH2RGOvIbwFcDwy
qopeltC9jeVcHtWxOwLu14uV2QN7VHAX6rAyjPAPQ/iN7mS8VHlj8ZG+0Y4I
KSjcccXAnFIUR/oYnVId5uv9zsjs0ympnIBW5HWSt4+Ea44NDetHbYVNDc+z
QqsE03wso+1KUSuS2Pxa+xnZX51+H3iEAgocapKszo2uWVhwGv4bVNMFP2zn
B2PtGI9JVTXXcrSaF+rt1P2ZWf+Pw1PooCqfyUVugMDeTnXjRuOZMaAbwYqz
LPbtaKKQ4RSFfGafW97q7++l52/+4dZy0MBHlJxsHz53lAyU6m42xjhy2Rk+
uI/VPBLhxJ63se+4WxoRvqzdocNFzY7zPL63LnmjpjG81nzhLj7FGE1UkXCp
THcUwmJra15xeUCUiVYP0t6KusvLlOLqP/DOYeXDGgAA

-->

</rfc>
