QCA::KeyBundle Class Reference
QCA user API

`#include <QtCrypto>`

## Public Member Functions

CertificateChain | certificateChain () const
bool | isNull () const
| KeyBundle ()
| KeyBundle (const KeyBundle &from)
| KeyBundle (const QString &fileName, const SecureArray &passphrase=SecureArray())
QString | name () const
KeyBundle & | operator= (const KeyBundle &from)
PrivateKey | privateKey () const
void | setCertificateChainAndKey (const CertificateChain &c, const PrivateKey &key)
void | setName (const QString &s)
QByteArray | toArray (const SecureArray &passphrase, const QString &provider=QString()) const
bool | toFile (const QString &fileName, const SecureArray &passphrase, const QString &provider=QString()) const

## Static Public Member Functions

static KeyBundle | fromArray (const QByteArray &a, const SecureArray &passphrase=SecureArray(), ConvertResult *result=nullptr, const QString &provider=QString())
static KeyBundle | fromFile (const QString &fileName, const SecureArray &passphrase=SecureArray(), ConvertResult *result=nullptr, const QString &provider=QString())

## Detailed Description

Certificate chain and private key pair.

KeyBundle is essentially a convience class that holds a certificate chain and an associated private key. This class has a number of methods that make it particularly suitable for accessing a PKCS12 (.p12) format file, however it can be used as just a container for a Certificate, its associated PrivateKey and optionally additional X.509 Certificate that form a chain.

For more information on PKCS12 "Personal Information Exchange Syntax Standard", see ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-12/pkcs-12v1.pdf.

## Constructor & Destructor Documentation

## KeyBundle() [1/3]

QCA::KeyBundle::KeyBundle | ( |  | ) |

Create an empty KeyBundle.

Referenced by fromArray(), fromFile(), KeyBundle(), and operator=().

## KeyBundle() [2/3]

QCA::KeyBundle::KeyBundle | ( | const QString & | fileName,
|  | const SecureArray & | passphrase = SecureArray() )

explicit

Create a KeyBundle from a PKCS12 (.p12) encoded file.

This constructor requires appropriate plugin (provider) support. You must check for the "pkcs12" feature before using this constructor.

Parameters

  fileName | the name of the file to read from
  passphrase | the passphrase that is applicable to the file

See also
  fromFile for a more flexible version of the same capability.

Note
  This synchronous operation may require event handling, and so it must not be called from the same thread as an EventHandler.

## KeyBundle() [3/3]

QCA::KeyBundle::KeyBundle | ( | const KeyBundle & | from | ) |

Standard copy constructor.

Parameters

  from | the KeyBundle to use as source

References KeyBundle().

## Member Function Documentation

## operator=()

KeyBundle & QCA::KeyBundle::operator= | ( | const KeyBundle & | from | ) |

Standard assignment operator.

Parameters

  from | the KeyBundle to use as source

References KeyBundle().

## isNull()

bool QCA::KeyBundle::isNull | ( |  | ) | const

Test if this key is empty (null).

## name()

QString QCA::KeyBundle::name | ( |  | ) | const

The name associated with this key.

This is also known as the "friendly name", and if present, is typically suitable to be displayed to the user.

See also
  setName

## certificateChain()

CertificateChain QCA::KeyBundle::certificateChain | ( |  | ) | const

The public certificate part of this bundle.

See also
  setCertificateChainAndKey

## privateKey()

PrivateKey QCA::KeyBundle::privateKey | ( |  | ) | const

The private key part of this bundle.

See also
  setCertificateChainAndKey

## setName()

void QCA::KeyBundle::setName | ( | const QString & | s | ) |

Specify the name of this bundle.

Parameters

  s | the name to use

## setCertificateChainAndKey()

void QCA::KeyBundle::setCertificateChainAndKey | ( | const CertificateChain & | c,
|  | const PrivateKey & | key )

Set the public certificate and private key.

Parameters

  c | the CertificateChain containing the public part of the Bundle
  key | the private key part of the Bundle

See also
  privateKey, certificateChain for getters

## toArray()

QByteArray QCA::KeyBundle::toArray | ( | const SecureArray & | passphrase,
|  | const QString & | provider = QString() ) const

Export the key bundle to an array in PKCS12 format.

This method requires appropriate plugin (provider) support - you must check for the "pkcs12" feature, as shown below.

if( QCA::isSupported("pkcs12") )
{
// can use I/O
byteArray = bundle.toArray( "pass phrase" );
}
else
{
// not possible to use I/O
}
QCA::isSupported
QCA_EXPORT bool isSupported(const char *features, const QString &provider=QString())
Test if a capability (algorithm) is available.

Parameters

  passphrase | the passphrase to use to protect the bundle
  provider | the provider to use, if a specific provider is required

## toFile()

bool QCA::KeyBundle::toFile | ( | const QString & | fileName,
|  | const SecureArray & | passphrase,
|  | const QString & | provider = QString() ) const

Export the key bundle to a file in PKCS12 (.p12) format.

This method requires appropriate plugin (provider) support - you must check for the "pkcs12" feature, as shown below.

if( QCA::isSupported("pkcs12") )
{
// can use I/O
bool result = bundle.toFile( filename, "pass phrase" );
}
else
{
// not possible to use I/O
}

Parameters

  fileName | the name of the file to save to
  passphrase | the passphrase to use to protect the bundle
  provider | the provider to use, if a specific provider is required

## fromArray()

KeyBundle QCA::KeyBundle::fromArray | ( | const QByteArray & | a,
|  | const SecureArray & | passphrase = SecureArray(),
|  | ConvertResult * | result = nullptr,
|  | const QString & | provider = QString() )

static

Import the key bundle from an array in PKCS12 format.

This method requires appropriate plugin (provider) support - you must check for the "pkcs12" feature, as shown below.

if( QCA::isSupported("pkcs12") )
{
// can use I/O
bundle = QCA::KeyBundle::fromArray( array, "pass phrase" );
}
else
{
// not possible to use I/O
}
QCA::KeyBundle::fromArray
static KeyBundle fromArray(const QByteArray &a, const SecureArray &passphrase=SecureArray(), ConvertResult *result=nullptr, const QString &provider=QString())
Import the key bundle from an array in PKCS12 format.

Parameters

  a | the array to import from
  passphrase | the passphrase for the encoded bundle
  result | pointer to the result of the import process
  provider | the provider to use, if a specific provider is required

See also
  QCA::KeyLoader for an asynchronous loader approach.

Note
  This synchronous operation may require event handling, and so it must not be called from the same thread as an EventHandler.

References KeyBundle().

## fromFile()

KeyBundle QCA::KeyBundle::fromFile | ( | const QString & | fileName,
|  | const SecureArray & | passphrase = SecureArray(),
|  | ConvertResult * | result = nullptr,
|  | const QString & | provider = QString() )

static

Import the key bundle from a file in PKCS12 (.p12) format.

This method requires appropriate plugin (provider) support - you must check for the "pkcs12" feature, as shown below.

if( QCA::isSupported("pkcs12") )
{
// can use I/O
bundle = QCA::KeyBundle::fromFile( filename, "pass phrase" );
}
else
{
// not possible to use I/O
}
QCA::KeyBundle::fromFile
static KeyBundle fromFile(const QString &fileName, const SecureArray &passphrase=SecureArray(), ConvertResult *result=nullptr, const QString &provider=QString())
Import the key bundle from a file in PKCS12 (.p12) format.

Parameters

  fileName | the name of the file to read from
  passphrase | the passphrase for the encoded bundle
  result | pointer to the result of the import process
  provider | the provider to use, if a specific provider is required

See also
  QCA::KeyLoader for an asynchronous loader approach.

Note
  This synchronous operation may require event handling, and so it must not be called from the same thread as an EventHandler.

References KeyBundle().

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

- qca_cert.h