QCA::KeyStore Class Reference
QCA user API

`#include <QtCrypto>`

Collaboration diagram for QCA::KeyStore:
[legend]

## Public Types

enum | Type { System , User , Application , SmartCard , PGPKeyring }

## Signals

void | entryRemoved (bool success)
void | entryWritten (const QString &entryId)
void | unavailable ()
void | updated ()

## Public Member Functions

QList< KeyStoreEntry > | entryList () const
bool | holdsIdentities () const
bool | holdsPGPPublicKeys () const
bool | holdsTrustedCertificates () const
QString | id () const
bool | isReadOnly () const
bool | isValid () const
| KeyStore (const QString &id, KeyStoreManager *keyStoreManager)
QString | name () const
bool | removeEntry (const QString &id)
void | startAsynchronousMode ()
Type | type () const
QString | writeEntry (const Certificate &cert)
QString | writeEntry (const CRL &crl)
QString | writeEntry (const KeyBundle &kb)
QString | writeEntry (const PGPKey &key)
Public Member Functions inherited from QCA::Algorithm
| Algorithm (const Algorithm &from)
void | change (const QString &type, const QString &provider)
void | change (Provider::Context *c)
Provider::Context * | context ()
const Provider::Context * | context () const
Algorithm & | operator= (const Algorithm &from)
Provider * | provider () const
Provider::Context * | takeContext ()
QString | type () const

## Friends

class | KeyStoreManagerPrivate
class | KeyStorePrivate

## Additional Inherited Members

Protected Member Functions inherited from QCA::Algorithm
| Algorithm ()
| Algorithm (const QString &type, const QString &provider)

## Detailed Description

General purpose key storage object.

Examples of use of this are:

- systemstore: System TrustedCertificates
- accepted self-signed: Application TrustedCertificates
- apple keychain: User Identities
- smartcard: SmartCard Identities
- gnupg: PGPKeyring Identities,PGPPublicKeys

Note
  - there can be multiple KeyStore objects referring to the same id
  - when a KeyStore is constructed, it refers to a given id (deviceId) and internal contextId. if the context goes away, the KeyStore becomes invalid (isValid() == false), and unavailable() is emitted. even if the device later reappears, the KeyStore remains invalid. a new KeyStore will have to be created to use the device again.

## Member Enumeration Documentation

## Type

enum QCA::KeyStore::Type

The type of keystore.

Enumerator
System | objects such as root certificates
User | objects such as Apple Keychain, KDE Wallet
Application | for caching accepted self-signed certificates
SmartCard | for smartcards
PGPKeyring | for a PGP keyring

## Constructor & Destructor Documentation

## KeyStore()

QCA::KeyStore::KeyStore | ( | const QString & | id,
|  | KeyStoreManager * | keyStoreManager )

Obtain a specific KeyStore.

Parameters

  id | the identification for the key store
  keyStoreManager | the parent manager for this keystore

References KeyStore().

Referenced by entryRemoved(), and KeyStore().

## Member Function Documentation

## isValid()

bool QCA::KeyStore::isValid | ( |  | ) | const

Check if this KeyStore is valid.

Returns
  true if the KeyStore is valid

## type()

Type QCA::KeyStore::type | ( |  | ) | const

The KeyStore Type.

## name()

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

The name associated with the KeyStore.

## id()

QString QCA::KeyStore::id | ( |  | ) | const

The ID associated with the KeyStore.

## isReadOnly()

bool QCA::KeyStore::isReadOnly | ( |  | ) | const

Test if the KeyStore is writeable or not.

Returns
  true if the KeyStore is read-only

## startAsynchronousMode()

void QCA::KeyStore::startAsynchronousMode | ( |  | ) |

Turns on asynchronous mode for this KeyStore instance.

Normally, entryList() and writeEntry() are blocking calls. However, if startAsynchronousMode() is called, then these functions will return immediately. entryList() will return with the latest known entries, or an empty list if none are known yet (in this mode, updated() will be emitted once the initial entries are known, even if the store has not actually been altered). writeEntry() will always return an empty string, and the entryWritten() signal indicates the result of a write.

## entryList()

QList< KeyStoreEntry > QCA::KeyStore::entryList | ( |  | ) | const

A list of the KeyStoreEntry objects in this store.

Note
  This synchronous operation may require event handling, and so it must not be called from the same thread as an EventHandler (this is not a concern if asynchronous mode is enabled).

See also
  startAsynchronousMode

## holdsTrustedCertificates()

bool QCA::KeyStore::holdsTrustedCertificates | ( |  | ) | const

test if the KeyStore holds trusted certificates (and CRLs)

## holdsIdentities()

bool QCA::KeyStore::holdsIdentities | ( |  | ) | const

test if the KeyStore holds identities (eg KeyBundle or PGPSecretKey)

## holdsPGPPublicKeys()

bool QCA::KeyStore::holdsPGPPublicKeys | ( |  | ) | const

test if the KeyStore holds PGPPublicKey objects

## writeEntry() [1/4]

QString QCA::KeyStore::writeEntry | ( | const KeyBundle & | kb | ) |

Add a entry to the KeyStore.

Returns the entryId of the written entry or an empty string on failure.

Parameters

  kb | the KeyBundle to add to the KeyStore

Note
  This synchronous operation may require event handling, and so it must not be called from the same thread as an EventHandler (this is not a concern if asynchronous mode is enabled).

See also
  startAsynchronousMode

## writeEntry() [2/4]

QString QCA::KeyStore::writeEntry | ( | const Certificate & | cert | ) |

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters

  cert | the Certificate to add to the KeyStore

## writeEntry() [3/4]

QString QCA::KeyStore::writeEntry | ( | const CRL & | crl | ) |

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters

  crl | the CRL to add to the KeyStore

## writeEntry() [4/4]

QString QCA::KeyStore::writeEntry | ( | const PGPKey & | key | ) |

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters

  key | the PGPKey to add to the KeyStore

Returns
  a ref to the key in the keyring

## removeEntry()

bool QCA::KeyStore::removeEntry | ( | const QString & | id | ) |

Delete the a specified KeyStoreEntry from this KeyStore.

Parameters

  id | the ID for the entry to be deleted

Note
  This synchronous operation may require event handling, and so it must not be called from the same thread as an EventHandler (this is not a concern if asynchronous mode is enabled).

See also
  startAsynchronousMode

## updated

void QCA::KeyStore::updated | ( |  | ) |

signal

Emitted when the KeyStore is changed.

This occurs if entries are added, removed, or changed in this KeyStore, including changes in entry availability.

## unavailable

void QCA::KeyStore::unavailable | ( |  | ) |

signal

Emitted when the KeyStore becomes unavailable.

## entryWritten

void QCA::KeyStore::entryWritten | ( | const QString & | entryId | ) |

signal

Emitted when an entry has been written, in asynchronous mode.

Parameters

  entryId | is the newly written entry id on success, or an empty string if the write failed.

## entryRemoved

void QCA::KeyStore::entryRemoved | ( | bool | success | ) |

signal

Emitted when an entry has been removed, in asynchronous mode.

Parameters

  success | indicates if the removal succeeded (true) or not (false).

References KeyStore().

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

- qca_keystore.h