Класс KeyLoader
Сигналы
void | finished () |
Публичные функции
ConvertResult | convertResult () const |
KeyBundle | keyBundle () const |
KeyLoader (QObject *parent=nullptr) | |
void | loadKeyBundleFromArray (const QByteArray &a) |
void | loadKeyBundleFromFile (const QString &fileName) |
void | loadPrivateKeyFromDER (const SecureArray &a) |
void | loadPrivateKeyFromPEM (const QString &s) |
void | loadPrivateKeyFromPEMFile (const QString &fileName) |
PrivateKey | privateKey () const |
Дружественные функции и классы
class | Private |
Подробное описание
Асинхронный загрузчик закрытого ключа.
Приложения с графическим интерфейсом обычно должны использовать
KeyLoader
для загрузки закрытых
ключей. Это связано с тем, что синхронные функции загрузки закрытого ключа, например
QCA::PrivateKey::fromPEMFile(),
не могут использоваться в том же потоке, что и
EventHandler,
и большинство приложений с графическим интерфейсом будут использовать
EventHandler
из основного потока. У KeyLoader
нет
этой проблемы. Его можно использовать из любого потока, включая тот же поток, что и
EventHandler.
Класс KeyLoader
позволяет асинхронно
загружать автономные закрытые ключи (QCA::PrivateKey) или
закрытые ключи с сертификатом
(QCA::KeyBundle) с сигналом,
который сообщает о завершении.
Чтобы использовать этот класс для загрузки PrivateKey,
нужно создать объект KeyLoader
, а
затем использовать одну из функций loadPrivateKeyFrom…()
, в зависимости от формата ключа. Эти
функции возвращаются немедленно. Когда будет получен сигнал
finished(),
можно будет проверить, что операция загрузки прошла успешно (с помощью
convertResult()),
а затем получить PrivateKey с помощью функции
privateKey().
Тот же процесс применяется для загрузки
KeyBundle, за исключением того,
что используется
loadKeyBundleFromFile()
или
loadKeyBundleFromArray()
вместо loadPrivateKeyFrom…()
, и используется
keyBundle()
вместо
privateKey().
Загрузчику может потребоваться кодовая фраза для завершения загрузки ключа или связки ключей. Необходимо использовать класс QCA::EventHandler, чтобы убедиться, что приложение справляется с этим правильно.
Примечание.
QCA также обеспечивает синхронную загрузку закрытого ключа с использованием QCA::PrivateKey::fromPEMFile(), QCA::PrivateKey::fromPEM() и QCA::PrivateKey::fromDER(). QCA обеспечивает синхронную загрузку связки ключей с использованием QCA::KeyBundle::fromArray() и QCA::KeyBundle::fromFile().
Примеры
Описание конструкторов и деструктора
KeyLoader()
QCA::KeyLoader::KeyLoader (QObject * parent = nullptr) |
Создаёт объект KeyLoader
.
Параметры
parent | Родительский объект для этого экземпляра |
Описание методов
loadPrivateKeyFromPEMFile()
void QCA::KeyLoader::loadPrivateKeyFromPEMFile (const QString & fileName) |
Инициирует асинхронную загрузку PrivateKey из файла
формата PEM
.
Метод немедленно возвращается.
Параметры
fileName | Имя файла (и путь, если необходимо) для загрузки ключа |
Примеры
loadPrivateKeyFromPEM()
void QCA::KeyLoader::loadPrivateKeyFromPEM (const QString & s) |
Инициирует асинхронную загрузку PrivateKey из строки
формата PEM
.
Метод немедленно возвращается.
Параметры
s | Строка, содержащая ключ в формате PEM |
loadPrivateKeyFromDER()
void QCA::KeyLoader::loadPrivateKeyFromDER (const SecureArray & a) |
Инициирует асинхронную загрузку PrivateKey из массива
формата PEM
.
Метод немедленно возвращается.
Параметры
a | Массив, содержащий ключ в формате DER |
loadKeyBundleFromFile()
void QCA::KeyLoader::loadKeyBundleFromFile (const QString & fileName) |
Инициирует асинхронную загрузку KeyBundle из файла.
Метод немедленно возвращается.
Параметры
fileName | Имя файла (и путь, если необходимо) для загрузки связки ключей |
loadKeyBundleFromArray()
void QCA::KeyLoader::loadKeyBundleFromArray (const QByteArray & a) |
Инициирует асинхронную загрузку KeyBundle из массива.
Метод немедленно возвращается.
Параметры
a | Массив, содержащий связку ключей |
convertResult()
ConvertResult QCA::KeyLoader::convertResult () const |
Результат процесса загрузки.
Он не действует до тех пор, пока не будет отправлен сигнал finished().
Примеры
privateKey()
PrivateKey QCA::KeyLoader::privateKey () const |
Загруженный закрытый ключ.
Он действителен только в том случае, если использовались
loadPrivateKeyFromPEMFile(),
loadPrivateKeyFromPEM()
или
loadPrivateKeyFromDER(),
загрузка завершена (то есть
finished()
был отправлен), и преобразование прошло успешно (то есть
convertResult()
вернул ConvertGood
).
Примеры
keyBundle()
KeyBundle QCA::KeyLoader::keyBundle () const |
Пакет ключей, который был загружен.
Он действителен только в том случае, если использовались
loadKeyBundleFromFile()
или
loadKeyBundleFromArray(),
загрузка завершена (то есть
finished()
был отправлен) и преобразование прошло успешно (то есть
convertResult()
вернул ConvertGood
).
finished
void QCA::KeyLoader::finished () | signal |
Сигнал, который испускается после завершения процесса загрузки.
Примечание.
Возможно, процесс загрузки не завершился успешно. Следует проверить результат convertResult(), чтобы подтвердить это, прежде чем использовать результаты privateKey() или keyBundle().