QCA::PKeyBase Class Referenceabstract
QCA provider API

`#include <QtCrypto>`

Collaboration diagram for QCA::PKeyBase:
[legend]

## Signals

void | finished ()

## Public Member Functions

virtual int | bits () const =0
virtual bool | canExport () const =0
virtual void | convertToPublic ()=0
virtual bool | decrypt (const SecureArray &in, SecureArray *out, EncryptionAlgorithm alg)
virtual SymmetricKey | deriveKey (const PKeyBase &theirs)
virtual SecureArray | encrypt (const SecureArray &in, EncryptionAlgorithm alg)
virtual QByteArray | endSign ()
virtual bool | endVerify (const QByteArray &sig)
virtual bool | isNull () const =0
virtual bool | isPrivate () const =0
virtual int | maximumEncryptSize (EncryptionAlgorithm alg) const
| PKeyBase (Provider *p, const QString &type)
virtual void | startSign (SignatureAlgorithm alg, SignatureFormat format)
virtual void | startVerify (SignatureAlgorithm alg, SignatureFormat format)
virtual PKey::Type | type () const =0
virtual void | update (const MemoryRegion &in)
Public Member Functions inherited from QCA::Provider::Context
virtual Context * | clone () const =0
Provider * | provider () const
bool | sameProvider (const Context *c) const
QString | type () const

## Additional Inherited Members

Protected Member Functions inherited from QCA::BasicContext
| BasicContext (const BasicContext &from)
| BasicContext (Provider *parent, const QString &type)
Protected Member Functions inherited from QCA::Provider::Context
| Context (const Context &from)
| Context (Provider *parent, const QString &type)

## Detailed Description

Public key implementation provider base.

Note
  This class is part of the provider plugin interface and should not be used directly by applications. You probably want PKey, PublicKey, or PrivateKey instead.

## Constructor & Destructor Documentation

## PKeyBase()

QCA::PKeyBase::PKeyBase | ( | Provider * | p,
|  | const QString & | type )

Standard constructor.

Parameters

  p | the Provider associated with this context
  type | type of key provided by this context

References type().

Referenced by deriveKey(), QCA::DHContext::DHContext(), QCA::DSAContext::DSAContext(), and QCA::RSAContext::RSAContext().

## Member Function Documentation

## isNull()

virtual bool QCA::PKeyBase::isNull | ( |  | ) | const

pure virtual

Returns true if this object is not valid.

This is the default state, and the object may also become this state if a conversion or generation function fails.

## type()

virtual PKey::Type QCA::PKeyBase::type | ( |  | ) | const

pure virtual

Returns the type of public key.

Referenced by PKeyBase().

## isPrivate()

virtual bool QCA::PKeyBase::isPrivate | ( |  | ) | const

pure virtual

Returns true if this is a private key, otherwise false.

## canExport()

virtual bool QCA::PKeyBase::canExport | ( |  | ) | const

pure virtual

Returns true if the components of this key are accessible and whether it can be serialized into an output format.

Private keys from a smart card device will often not be exportable.

## convertToPublic()

virtual void QCA::PKeyBase::convertToPublic | ( |  | ) |

pure virtual

If the key is a private key, this function will convert it into a public key (all private key data includes the public data as well, which is why this is possible).

If the key is already a public key, then this function has no effect.

## bits()

virtual int QCA::PKeyBase::bits | ( |  | ) | const

pure virtual

Returns the number of bits in the key.

Referenced by QCA::RSAContext::createPrivate().

## maximumEncryptSize()

virtual int QCA::PKeyBase::maximumEncryptSize | ( | EncryptionAlgorithm | alg | ) | const

virtual

Returns the maximum number of bytes that can be encrypted by this key.

Parameters

  alg | the algorithm to be used for encryption

## encrypt()

virtual SecureArray QCA::PKeyBase::encrypt | ( | const SecureArray & | in,
|  | EncryptionAlgorithm | alg )

virtual

Encrypt data.

Parameters

  in | the input data to encrypt
  alg | the encryption algorithm to use

## decrypt()

virtual bool QCA::PKeyBase::decrypt | ( | const SecureArray & | in,
|  | SecureArray * | out,
|  | EncryptionAlgorithm | alg )

virtual

Decrypt data.

Parameters

  in | the input data to decrypt
  out | pointer to an array to store the plaintext result
  alg | the encryption algorithm used to generate the input data

## startSign()

virtual void QCA::PKeyBase::startSign | ( | SignatureAlgorithm | alg,
|  | SignatureFormat | format )

virtual

Begin a signing operation.

Parameters

  alg | the signature algorithm to use
  format | the signature format to use

## startVerify()

virtual void QCA::PKeyBase::startVerify | ( | SignatureAlgorithm | alg,
|  | SignatureFormat | format )

virtual

Begin a verify operation.

Parameters

  alg | the signature algorithm used by the input signature
  format | the signature format used by the input signature

## update()

virtual void QCA::PKeyBase::update | ( | const MemoryRegion & | in | ) |

virtual

Process the plaintext input data for either signing or verifying, whichever operation is active.

Parameters

  in | the input data to process

## endSign()

virtual QByteArray QCA::PKeyBase::endSign | ( |  | ) |

virtual

Complete a signing operation, and return the signature value.

If there is an error signing, an empty array is returned.

## endVerify()

virtual bool QCA::PKeyBase::endVerify | ( | const QByteArray & | sig | ) |

virtual

Complete a verify operation, and return true if successful.

If there is an error verifying, this function returns false.

Parameters

  sig | the signature to verify with the input data

## deriveKey()

virtual SymmetricKey QCA::PKeyBase::deriveKey | ( | const PKeyBase & | theirs | ) |

virtual

Compute a symmetric key based on this private key and some other public key.

Essentially for Diffie-Hellman only.

Parameters

  theirs | the other side (public key) to be used for key generation.

References PKeyBase().

## finished

void QCA::PKeyBase::finished | ( |  | ) |

signal

Emitted when an asynchronous operation completes on this key.

Such operations will be documented that they emit this signal.

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

- qcaprovider.h