RFC 9939 PKCS #8: PrivateKeyInfo Content Types February 2026
Mandel, et al. Standards Track [Page]
Stream:
Internet Engineering Task Force (IETF)
RFC:
9939
Category:
Standards Track
Published:
ISSN:
2070-1721
Authors:
J. Mandel
AKAYLA
R. Housley
Vigil Security
S. Turner
sn3rd

RFC 9939

PKCS #8: Private-Key Information Content Types

Abstract

This document defines PKCS #8 content types for use with PrivateKeyInfo and EncryptedPrivateKeyInfo as specified in RFC 5958.

Status of This Memo

This is an Internet Standards Track document.

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at https://www.rfc-editor.org/info/rfc9939.

Table of Contents

1. Introduction

The syntax for private-key information was originally described in [RFC5208], and the syntax was later revised by [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) [RFC5652].

Note: A very long time ago, media types for PrivateKeyInfo and EncryptedPrivateKeyInfo were assigned as "application/pkcs8" and "application/pkcs8-encrypted", respectively.

2. Private-Key Information Content Types

This section defines a content type for private-key information and encrypted private-key information.

The PrivateKeyInfo content type is identified by the following object identifier:

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

The EncryptedPrivateKeyInfo content type is identified by the following object identifier:

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

3. ASN.1 Module

The ASN.1 module [X680] [X690] in this section builds upon the modules in [RFC5911].

<CODE BEGINS>
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
<CODE ENDS>

4. Security Considerations

The security considerations in [RFC5958] apply here.

5. IANA Considerations

For each of the private-key information content types defined in Section 2, 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 [IANA-CMS-CTS] as follows:

Table 1
Decimal Description Reference
52 id-ct-privateKeyInfo RFC 9939
53 id-ct-encrPrivateKeyInfo RFC 9939

For the ASN.1 module in Section 3, 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 [IANA-SMIME-MODS] as follows:

Table 2
Decimal Description Reference
85 id-mod-pkcs8ContentType RFC 9939

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:

IANA has also updated the "Security considerations" section in the application/csm entry as follows:

Table 3
RFC CMS Protecting Content Type and Algorithms
RFC 9939 privateKeyInfo and encrPrivateKeyInfo

6. References

6.1. Normative References

[RFC5652]
Housley, R., "Cryptographic Message Syntax (CMS)", STD 70, RFC 5652, DOI 10.17487/RFC5652, , <https://www.rfc-editor.org/info/rfc5652>.
[RFC5911]
Hoffman, P. and J. Schaad, "New ASN.1 Modules for Cryptographic Message Syntax (CMS) and S/MIME", RFC 5911, DOI 10.17487/RFC5911, , <https://www.rfc-editor.org/info/rfc5911>.
[RFC5958]
Turner, S., "Asymmetric Key Packages", RFC 5958, DOI 10.17487/RFC5958, , <https://www.rfc-editor.org/info/rfc5958>.
[X680]
ITU-T, "Information technology - Abstract Syntax Notation One (ASN.1): Specification of basic notation", ITU-T Recommendation X.680, ISO/IEC 8824-1:2021, , <https://www.itu.int/rec/T-REC-X.680>.
[X690]
ITU-T, "Information technology - ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)", ITU-T Recommendation X.690, ISO/IEC 8825-1:2021, , <https://www.itu.int/rec/T-REC-X.690>.

6.2. Informative References

[IANA-CMS-CTS]
IANA, "SMI Security for S/MIME CMS Content Type (1.2.840.113549.1.9.16.1)", <https://www.iana.org/assignments/smi-numbers>.
[IANA-SMIME-MODS]
IANA, "SMI Security for S/MIME Module Identifier (1.2.840.113549.1.9.16.0)", <https://www.iana.org/assignments/smi-numbers>.
[RFC5208]
Kaliski, B., "Public-Key Cryptography Standards (PKCS) #8: Private-Key Information Syntax Specification Version 1.2", RFC 5208, DOI 10.17487/RFC5208, , <https://www.rfc-editor.org/info/rfc5208>.

Acknowledgments

Thanks to John Gray, Deb Cooley, Mohamed Boucadair, Orie Steele, and Éric Vyncke for reviewing the document and providing comments.

Authors' Addresses

Joe Mandel
AKAYLA, Inc.
Russ Housley
Vigil Security, LLC
Sean Turner
sn3rd