Crypto++ 8.9 Free C++ class library of cryptographic schemes

Public Member Functions | List of all members
PKCS8PrivateKey Class Referenceabstract

Encodes and Decodes privateKeyInfo. More...

Inheritance diagram for PKCS8PrivateKey:

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

## 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. More...

## Detailed Description

Encodes and Decodes privateKeyInfo.

Definition at line 748 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 ed25519PrivateKey, x25519, and InvertibleRSAFunction.

## ◆ 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 ed25519PrivateKey, x25519, and InvertibleRSAFunction.

## ◆ GetAlgorithmID()

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

Retrieves the OID of the algorithm.

Returns
  OID of the algorithm

Implemented in ed25519PrivateKey, x25519, and InvertibleRSAFunction.

## ◆ 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 764 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 771 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 DL_PrivateKeyImpl< GP >, ed25519PrivateKey, x25519, and InvertibleRSAFunction.

## ◆ 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 ed25519PrivateKey, x25519, InvertibleRSAFunction, and DL_PrivateKeyImpl< GP >.

## ◆ 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