Storing Validation Parameters in PKCS#8
RFC 8479

Document Type RFC - Informational (September 2018; No errata)
Last updated 2018-09-26
Stream ISE
Formats plain text pdf html bibtex
IETF conflict review conflict-review-mavrogiannopoulos-pkcs8-validated-parameters
Stream ISE state Published RFC
Consensus Boilerplate Unknown
Document shepherd Adrian Farrel
Shepherd write-up Show (last changed 2018-08-20)
IESG IESG state RFC 8479 (Informational)
Telechat date
Responsible AD (None)
Send notices to Adrian Farrel <rfc-ise@rfc-editor.org>
IANA IANA review state Version Changed - Review Needed
IANA action state No IANA Actions
Independent Submission                              N. Mavrogiannopoulos
Request for Comments: 8479                                       Red Hat
Category: Informational                                   September 2018
ISSN: 2070-1721

                Storing Validation Parameters in PKCS#8

Abstract

   This memo describes a method of storing parameters needed for
   private-key validation in the Private-Key Information Syntax
   Specification as defined in PKCS#8 format (RFC 5208).  It is equally
   applicable to the alternative implementation of the Private-Key
   Information Syntax Specification as defined in RFC 5958.

   The approach described in this document encodes the parameters under
   a private enterprise extension and does not form part of a formal
   standard.

Status of This Memo

   This document is not an Internet Standards Track specification; it is
   published for informational purposes.

   This is a contribution to the RFC Series, independently of any other
   RFC stream.  The RFC Editor has chosen to publish this document at
   its discretion and makes no statement about its value for
   implementation or deployment.  Documents approved for publication by
   the RFC Editor are not candidates for any level of Internet Standard;
   see 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/rfc8479.

Copyright Notice

   Copyright (c) 2018 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.

Mavrogiannopoulos             Informational                     [Page 1]
RFC 8479         Storing Validation Parameters in PKCS#8  September 2018

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  ValidationParams Attribute  . . . . . . . . . . . . . . . . .   3
   3.  Example Structure . . . . . . . . . . . . . . . . . . . . . .   4
   4.  Compatibility Notes . . . . . . . . . . . . . . . . . . . . .   4
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .   5
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   5
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   5
     7.1.  Normative References  . . . . . . . . . . . . . . . . . .   5
     7.2.  Informative References  . . . . . . . . . . . . . . . . .   6
   Appendix A.  ASN.1 Module . . . . . . . . . . . . . . . . . . . .   7
   Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .   8
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   8

Mavrogiannopoulos             Informational                     [Page 2]
RFC 8479         Storing Validation Parameters in PKCS#8  September 2018

1.  Introduction

   RSA or DSA private keys generated using the Shawe-Taylor prime
   generation algorithm described in [FIPS186-4] allow for parameter
   validation, i.e., they verify whether the primes are actually prime
   and were correctly generated.  That is done by generating the
   parameters from a known seed and a selected hash algorithm.

   Storing these parameters in a private-key format such as the RSA
   Private-Key Syntax from PKCS#1 [RFC8017] or common representations
   for DSA private keys does not allow information needed for validation
   to be attached to the parameters.  The purpose of this document is to
   describe such a method using the Private-Key Information Syntax
   Specification as defined in [RFC5208] and the alternative
   specification described in [RFC5958].

   The approach described in this document encodes the parameters under
   a private enterprise extension and does not form part of a formal
   standard.  The encoding can be used as is or as the basis for a
   standard at a later time.

2.  ValidationParams Attribute

   The information related to the validation parameters is stored as an
   attribute in the PrivateKeyInfo structure.  The attribute is
   identified by the id-attr-validation-parameters object identifier and
   contains as AttributeValue a single ValidationParams structure.

     id-attr-validation-parameters OBJECT IDENTIFIER ::=
                                              {1 3 6 1 4 1 2312 18 8 1}

     ValidationParams ::= SEQUENCE {
         hashAlgo OBJECT IDENTIFIER,
         seed OCTET STRING
     }

   The algorithm identifier in ValidationParams should be a hash
   algorithm identifier for the methods described in [FIPS186-4].  The
   ValidationParams sequence must be DER encoded [ITU-T-X690].

Mavrogiannopoulos             Informational                     [Page 3]
Show full document text