Public-Key Cryptography Standards (PKCS) #8: Private-Key Information Syntax Specification Version 1.2
RFC 5208
Document | Type |
RFC - Informational
(May 2008; Errata)
Obsoleted by RFC 5958
Was draft-kaliski-pkcs8 (individual in gen area)
|
|
---|---|---|---|
Author | Burt Kaliski | ||
Last updated | 2020-01-21 | ||
Stream | Internet Engineering Task Force (IETF) | ||
Formats | plain text html pdf htmlized (tools) htmlized with errata bibtex | ||
Stream | WG state | (None) | |
Document shepherd | No shepherd assigned | ||
IESG | IESG state | RFC 5208 (Informational) | |
Action Holders |
(None)
|
||
Consensus Boilerplate | Unknown | ||
Telechat date | |||
Responsible AD | Russ Housley | ||
Send notices to | turners@ieca.com |
Network Working Group B. Kaliski Request for Comments: 5208 EMC Category: Informational May 2008 Public-Key Cryptography Standards (PKCS) #8: Private-Key Information Syntax Specification Version 1.2 Status of This Memo This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited. IESG Note The IESG thanks RSA Laboratories for transferring change control to the IETF. Enhancements to this specification that preserve backward compatibility are expected in an upcoming IETF standards track document. Abstract 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. This document describes a syntax for private-key information. Table of Contents 1. Introduction ....................................................2 2. Definitions .....................................................2 3. Symbols and Abbreviations .......................................2 4. General Overview ................................................2 5. Private-Key Information Syntax ..................................3 6. Encrypted Private-Key Information Syntax ........................4 7. Security Considerations .........................................4 Appendix A. ASN.1 Syntax ...........................................5 Informative References .............................................6 Kaliski Informational [Page 1] RFC 5208 PKCS #8: Private-Key Information Syntax Standard May 2008 1. Introduction This document describes a syntax for private-key information. Private-key information includes a private key for some public-key algorithm and a set of attributes. The document also describes a syntax for encrypted private keys. A password-based encryption algorithm (e.g., one of those described in [PKCS#5]) could be used to encrypt the private-key information. The intention of including a set of attributes is to provide a simple way for a user to establish trust in information such as a distinguished name or a top-level certification authority's public key. While such trust could also be established with a digital signature, encryption with a secret key known only to the user is just as effective and possibly easier to implement. A non-exhaustive list of attributes is given in [PKCS#9]. 2. Definitions For the purposes of this document, the following definitions apply. AlgorithmIdentifier: A type that identifies an algorithm (by object identifier) and any associated parameters. This type is defined in [X.509]. ASN.1: Abstract Syntax Notation One, as defined in [X.208]. Attribute: A type that contains an attribute type (specified by object identifier) and one or more attribute values. This type is defined in [X.501]. BER: Basic Encoding Rules, as defined in [X.209]. 3. Symbols and Abbreviations No symbols or abbreviations are defined in this document. 4. General Overview The next two sections specify private-key information syntax and encrypted private-key information syntax. This document exports two types: PrivateKeyInfo (Section 6) and EncryptedPrivateKeyInfo (Section 7). Kaliski Informational [Page 2] RFC 5208 PKCS #8: Private-Key Information Syntax Standard May 2008 5. Private-Key Information Syntax This section gives the syntax for private-key information. Private-key information shall have ASN.1 type PrivateKeyInfo: PrivateKeyInfo ::= SEQUENCE { version Version, privateKeyAlgorithm PrivateKeyAlgorithmIdentifier, privateKey PrivateKey, attributes [0] IMPLICIT Attributes OPTIONAL } Version ::= INTEGER PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier PrivateKey ::= OCTET STRING Attributes ::= SET OF Attribute The fields of type PrivateKeyInfo have the following meanings: version is the syntax version number, for compatibility with future revisions of this document. It shall be 0 for this version of the document. privateKeyAlgorithm identifies the private-key algorithm. One example of a private-key algorithm is PKCS #1's rsaEncryption [PKCS#1]. privateKey is an octet string whose contents are the value of the private key. The interpretation of the contents is defined in theShow full document text