<?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-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.0 -->
  <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-01"/>
    <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="01"/>
    <area>Security</area>
    <workgroup>Limited Additional Mechanisms for PKIX and SMIME</workgroup>
    <keyword/>
    <abstract>
      <?line 44?>

<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 50?>

<section anchor="intro">
      <name>Introduction</name>
      <t>The syntax for private-key information was originally described in <xref target="RFC5208"/> and
later obsoleted by <xref target="RFC5958"/>. This document defines PKCS #8 content types for
use with PrivateKeyInfo and EncryptedPrivateKeyInfo.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</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="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), 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), and the Description for the new OID should be set
to "id-mod-pkcs8ContentType".</t>
    </section>
    <section anchor="asn1-mod">
      <name>ASN.1 Module</name>
      <t>The ASN.1 module 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>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </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>
      </references>
    </references>
    <?line 171?>

<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:
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
fwCrCDs7CBMAAA==

-->

</rfc>
