PKCS8PrivateKey Class Referenceabstract

Encodes and Decodes privateKeyInfo. More...

`#include <asn.h>`

Inheritance diagram for PKCS8PrivateKey:

## Public Member Functions

void | BERDecode (BufferedTransformation &bt)
| Decode this object from a BufferedTransformation.
void | DEREncode (BufferedTransformation &bt) const
| Encode this object into a BufferedTransformation.
virtual OID | GetAlgorithmID () const =0
| Retrieves the OID of the algorithm.
virtual bool | BERDecodeAlgorithmParameters (BufferedTransformation &bt)
| Decode optional parameters.
virtual bool | DEREncodeAlgorithmParameters (BufferedTransformation &bt) const
| Encode optional parameters.
virtual void | BERDecodePrivateKey (BufferedTransformation &bt, bool parametersPresent, size_t size)=0
| Decode privateKey part of privateKeyInfo.
virtual void | DEREncodePrivateKey (BufferedTransformation &bt) const =0
| Encode privateKey part of privateKeyInfo.
virtual void | BERDecodeOptionalAttributes (BufferedTransformation &bt)
| Decode optional attributes.
virtual void | DEREncodeOptionalAttributes (BufferedTransformation &bt) const
| Encode optional attributes.
Public Member Functions inherited from ASN1CryptoMaterial< PrivateKey >
void | Save (BufferedTransformation &bt) const
| DER encode ASN.1 object.
void | Load (BufferedTransformation &bt)
| BER decode ASN.1 object.
Public Member Functions inherited from ASN1Object
virtual void | BEREncode (BufferedTransformation &bt) const
| Encode this object into a BufferedTransformation.
Public Member Functions inherited from GeneratableCryptoMaterial
virtual void | GenerateRandom (RandomNumberGenerator &rng, const NameValuePairs &params=g_nullNameValuePairs)
| Generate a random key or crypto parameters.
void | GenerateRandomWithKeySize (RandomNumberGenerator &rng, unsigned int keySize)
| Generate a random key or crypto parameters.
Public Member Functions inherited from CryptoMaterial
virtual void | AssignFrom (const NameValuePairs &source)=0
| Assign values to this object.
virtual bool | Validate (RandomNumberGenerator &rng, unsigned int level) const =0
| Check this object for errors.
virtual void | ThrowIfInvalid (RandomNumberGenerator &rng, unsigned int level) const
| Check this object for errors.
virtual bool | SupportsPrecomputation () const
| Determines whether the object supports precomputation.
virtual void | Precompute (unsigned int precomputationStorage)
| Perform precomputation.
virtual void | LoadPrecomputation (BufferedTransformation &storedPrecomputation)
| Retrieve previously saved precomputation.
virtual void | SavePrecomputation (BufferedTransformation &storedPrecomputation) const
| Save precomputation for later use.
void | DoQuickSanityCheck () const
| Perform a quick sanity check.
Public Member Functions inherited from NameValuePairs
template<class T >
bool | GetThisObject (T &object) const
| Get a copy of this object or subobject.
template<class T >
bool | GetThisPointer (T *&ptr) const
| Get a pointer to this object.
template<class T >
bool | GetValue (const char *name, T &value) const
| Get a named value.
template<class T >
T | GetValueWithDefault (const char *name, T defaultValue) const
| Get a named value.
CRYPTOPP_DLL std::string | GetValueNames () const
| Get a list of value names that can be retrieved.
CRYPTOPP_DLL bool | GetIntValue (const char *name, int &value) const
| Get a named value with type int.
CRYPTOPP_DLL int | GetIntValueWithDefault (const char *name, int defaultValue) const
| Get a named value with type int, with default.
CRYPTOPP_DLL bool | GetWord64Value (const char *name, word64 &value) const
| Get a named value with type word64.
CRYPTOPP_DLL word64 | GetWord64ValueWithDefault (const char *name, word64 defaultValue) const
| Get a named value with type word64, with default.
template<class T >
void | GetRequiredParameter (const char *className, const char *name, T &value) const
| Retrieves a required name/value pair.
CRYPTOPP_DLL void | GetRequiredIntParameter (const char *className, const char *name, int &value) const
| Retrieves a required name/value pair.
virtual CRYPTOPP_DLL bool | GetVoidValue (const char *name, const std::type_info &valueType, void *pValue) const =0
| Get a named value.

## Additional Inherited Members

Static Public Member Functions inherited from NameValuePairs
static CRYPTOPP_DLL void | ThrowIfTypeMismatch (const char *name, const std::type_info &stored, const std::type_info &retrieving)
| Ensures an expected name and type is present.

## Detailed Description

Encodes and Decodes privateKeyInfo.

Definition at line 747 of file asn.h.

## Constructor & Destructor Documentation

## ~PKCS8PrivateKey()

virtual PKCS8PrivateKey::~PKCS8PrivateKey | ( |  | ) |

inline virtual

Definition at line 750 of file asn.h.

## Member Function Documentation

## BERDecode()

void PKCS8PrivateKey::BERDecode | ( | BufferedTransformation & | bt | ) |

virtual

Decode this object from a BufferedTransformation.

Parameters

  bt | BufferedTransformation object

Uses Basic Encoding Rules (BER)

Implements ASN1Object.

Reimplemented in x25519.

## DEREncode()

void PKCS8PrivateKey::DEREncode | ( | BufferedTransformation & | bt | ) | const

virtual

Encode this object into a BufferedTransformation.

Parameters

  bt | BufferedTransformation object

Uses Distinguished Encoding Rules (DER)

Implements ASN1Object.

Reimplemented in x25519.

## GetAlgorithmID()

virtual OID PKCS8PrivateKey::GetAlgorithmID | ( |  | ) | const

pure virtual

Retrieves the OID of the algorithm.

Returns
  OID of the algorithm

Implemented in InvertibleRSAFunction, x25519, and ed25519PrivateKey.

## BERDecodeAlgorithmParameters()

virtual bool PKCS8PrivateKey::BERDecodeAlgorithmParameters | ( | BufferedTransformation & | bt | ) |

inline virtual

Decode optional parameters.

Parameters

  bt | BufferedTransformation object

See also
  BERDecodePrivateKey, RFC 2459, section 7.3.1

Definition at line 763 of file asn.h.

## DEREncodeAlgorithmParameters()

virtual bool PKCS8PrivateKey::DEREncodeAlgorithmParameters | ( | BufferedTransformation & | bt | ) | const

inline virtual

Encode optional parameters.

Parameters

  bt | BufferedTransformation object

See also
  DEREncodePrivateKey, RFC 2459, section 7.3.1

Definition at line 770 of file asn.h.

## BERDecodePrivateKey()

virtual void PKCS8PrivateKey::BERDecodePrivateKey | ( | BufferedTransformation & | bt,
|  | bool | parametersPresent,
|  | size_t | size
| ) |  |

pure virtual

Decode privateKey part of privateKeyInfo.

Parameters

  bt | BufferedTransformation object
  parametersPresent | flag indicating if algorithm parameters are present
  size | number of octets to read for the parameters, in bytes

BERDecodePrivateKey() the decodes privateKey part of privateKeyInfo, without the OCTET STRING header.

When `parametersPresent = true` then BERDecodePrivateKey() calls BERDecodeAlgorithmParameters() to parse algorithm parameters.

See also
  BERDecodeAlgorithmParameters

Implemented in InvertibleRSAFunction, x25519, ed25519PrivateKey, and DL_PrivateKeyImpl< GP >.

## DEREncodePrivateKey()

virtual void PKCS8PrivateKey::DEREncodePrivateKey | ( | BufferedTransformation & | bt | ) | const

pure virtual

Encode privateKey part of privateKeyInfo.

Parameters

  bt | BufferedTransformation object

DEREncodePrivateKey() encodes the privateKey part of privateKeyInfo, without the OCTET STRING header.

See also
  DEREncodeAlgorithmParameters

Implemented in DL_PrivateKeyImpl< GP >, InvertibleRSAFunction, x25519, and ed25519PrivateKey.

## BERDecodeOptionalAttributes()

virtual void PKCS8PrivateKey::BERDecodeOptionalAttributes | ( | BufferedTransformation & | bt | ) |

virtual

Decode optional attributes.

Parameters

  bt | BufferedTransformation object

BERDecodeOptionalAttributes() decodes optional attributes including context-specific tag.

See also
  BERDecodeAlgorithmParameters, DEREncodeOptionalAttributes

Note
  default implementation stores attributes to be output using DEREncodeOptionalAttributes

## DEREncodeOptionalAttributes()

virtual void PKCS8PrivateKey::DEREncodeOptionalAttributes | ( | BufferedTransformation & | bt | ) | const

virtual

Encode optional attributes.

Parameters

  bt | BufferedTransformation object

DEREncodeOptionalAttributes() encodes optional attributes including context-specific tag.

See also
  BERDecodeAlgorithmParameters

The documentation for this class was generated from the following file:

- asn.h