# QCA::KeyStore Class Reference
[QCA user API]

General purpose key storage object. More...

`#include <QtCrypto>`

Inheritance diagram for QCA::KeyStore:

Collaboration diagram for QCA::KeyStore:

[legend]

List of all members.

## 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 PGPKey &key)
QString | writeEntry (const CRL &crl)
QString | writeEntry (const Certificate &cert)
QString | writeEntry (const KeyBundle &kb)

## Friends

class | KeyStoreManagerPrivate
class | KeyStorePrivate

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

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

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

## Member Function Documentation

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

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).

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.

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

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

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

test if the KeyStore holds PGPPublicKey objects

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

test if the KeyStore holds trusted certificates (and CRLs)

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

The ID associated with the KeyStore.

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

Test if the KeyStore is writeable or not.

Returns:
  true if the KeyStore is read-only

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

Check if this KeyStore is valid.

Returns:
  true if the KeyStore is valid

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

The name associated with the KeyStore.

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

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.

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

The KeyStore Type.

Reimplemented from QCA::Algorithm.

void QCA::KeyStore::unavailable | ( |  | ) | `[signal]`

Emitted when the KeyStore becomes unavailable.

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.

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

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

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

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

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

- qca_keystore.h