Класс PKeyBase(абстрактный)
Сигналы
Публичные функции
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 |
unwrapKey (const QByteArray &blob, const QString &algorithm, const PrivateKey &unwrappingKey) |
virtual void |
unwrapKey (const QByteArray &blob, const QString &algorithm, const SymmetricKey &unwrappingKey) |
virtual void |
update (const MemoryRegion &in) |
virtual QByteArray |
wrapKey (const QString &algorithm, const PublicKey &wrappingKey) |
virtual QByteArray |
wrapKey (const QString &algorithm, const SymmetricKey &wrappingKey) |
Дополнительные унаследованные члены
Защищённые функции, унаследованные от QCA::BasicContext
Подробное описание
База криптопровайдеров реализации открытого ключа.
Примечание.
Этот класс является частью интерфейса подключаемого модуля криптопровайдера и не должен
использоваться приложениями напрямую. Возможно стоит использовать
PKey,
PublicKey или
PrivateKey вместо него.
Описание конструкторов и деструктора
PKeyBase()
QCA::PKeyBase::PKeyBase (Provider * p, const QString & type ) |
Стандартный конструктор.
Параметры
p |
Объект Provider, связанный с этим контекстом |
type |
Тип ключа, предоставленный этим контекстом |
Описание методов
isNull()
virtual bool QCA::PKeyBase::isNull () const |
pure virtual |
Возвращает true
, если этот объект недействителен.
Это состояние по умолчанию, и объект также может прийти в него в случае сбоя функции преобразования
или генерации.
type()
virtual PKey::Type QCA::PKeyBase::type () const |
pure virtual |
Возвращает тип открытого ключа.
isPrivate()
virtual bool QCA::PKeyBase::isPrivate () const |
pure virtual |
Возвращает true
, если это закрытый ключ, иначе false
.
canExport()
virtual bool QCA::PKeyBase::canExport () const |
pure virtual |
Возвращает true
, если компоненты этого ключа доступны и его можно сериализовать в выходной
формат.
Закрытые ключи со смарт-карты часто невозможно экспортировать.
convertToPublic()
virtual void QCA::PKeyBase::convertToPublic () |
pure virtual |
Если ключ является закрытым, данный метод преобразует его в открытый ключ (все данные закрытого
ключа также включают общедоступные данные, поэтому это возможно).
Если ключ уже является открытым ключом, метод не делает ничего.
bits()
virtual int QCA::PKeyBase::bits () const |
pure virtual |
Возвращает количество бит в ключе.
maximumEncryptSize()
Возвращает максимальное количество байтов, которое может быть зашифровано этим ключом.
Параметры
alg |
Алгоритм, который будет использоваться для шифрования |
encrypt()
Шифрует данные.
Параметры
in |
Входные данные для шифрования |
alg |
Используемый алгоритм шифрования |
decrypt()
Дешифрует данные.
Параметры
in |
Входные данные для расшифровки |
out |
Указатель на массив для хранения результата в виде открытого текста |
alg |
Алгоритм шифрования, используемый для генерации входных данных |
startSign()
Начинает операцию подписи.
Параметры
alg |
Используемый алгоритм подписи |
format |
Используемый формат подписи |
startVerify()
Начинает операцию верификации.
Параметры
alg |
Алгоритм подписи, используемый входной подписью |
format |
Формат подписи, используемый входной подписью |
update()
virtual void QCA::PKeyBase::update (const MemoryRegion & in) |
virtual |
Обрабатывает входные данные в виде открытого текста для подписи или проверки, в зависимости от того,
какая операция активна.
Параметры
in |
Входные данные для обработки |
endSign()
virtual QByteArray QCA::PKeyBase::endSign () |
virtual |
Завершает операцию подписи и возвращает значение подписи.
В случае ошибки подписи возвращает пустой массив.
endVerify()
virtual bool QCA::PKeyBase::endVerify (const QByteArray & sig) |
virtual |
Завершает операцию проверки и возвращает true
в случае успеха.
Если есть ошибка проверки, то метод возвращает false
.
Параметры
sig |
Подпись для сверки с входными данными |
deriveKey()
virtual SymmetricKey QCA::PKeyBase::deriveKey (const PKeyBase & theirs) |
virtual |
Вычисляет симметричный ключ на основе этого закрытого ключа и некоторого другого открытого ключа.
Существенным образом только для Диффи — Хеллмана.
Параметры
theirs |
Другая сторона (открытый ключ) будет использоваться для генерации ключа |
unwrapKey() [1/2]
virtual void QCA::PKeyBase::unwrapKey (const QByteArray & blob, const QString & algorithm, const SymmetricKey & unwrappingKey ) |
virtual |
Извлекает (расшифрует) закрытый ключ из заданного массива байтов.
Реализация зависит от конкретного класса закрытого ключа.
Параметры
blob |
Байты, возвращаемые функцией wrap() . |
См. также wrapKey()
для обертывания функциональности.
Параметры
algorithm |
Алгоритм дешифрования должен быть таким же, как и алгоритм шифрования |
unwrappingKey |
SymmetricKey, используемый для извлечения ключа, должен быть таким же, как и ключ для обёртывания. |
unwrapKey() [2/2]
virtual void QCA::PKeyBase::unwrapKey (const QByteArray & blob, const QString & algorithm, const PrivateKey & unwrappingKey ) |
virtual |
Извлекает (расшифрует) закрытый ключ из заданного массива байтов.
Реализация зависит от конкретного класса закрытого ключа.
Параметры
blob |
Байты, возвращаемые функцией wrap() . |
См. также wrapKey()
для обертывания функциональности.
Параметры
algorithm |
Алгоритм дешифрования должен быть таким же, как и алгоритм шифрования |
unwrappingKey |
PrivateKey, используемый для излечения ключа, должен быть связан с обертыванием PublicKey. |
wrapKey() [1/2]
virtual QByteArray QCA::PKeyBase::wrapKey (const QString & algorithm, const SymmetricKey & wrappingKey ) |
virtual |
Обертывает (шифрует) ключ, используя заданный алгоритм и симметричный ключ.
Параметры
algortihm |
Algorithm, который будет использоваться для шифрования. Большинство стандартных алгоритмов шифрования должны работать, но могут быть и особые алгоритмы. |
wrappingKey |
SymmetricKey используемый для шифрования |
См. также unwrapKey()
для функциональности извлечения.
wrapKey() [2/2]
virtual QByteArray QCA::PKeyBase::wrapKey (const QString & algorithm, const PublicKey & wrappingKey ) |
virtual |
Обёртывает (шифрует) ключ, используя заданный алгоритм и открытый ключ.
Параметры
algortihm |
Algorithm, который будет использоваться для шифрования. Большинство стандартных алгоритмов шифрования должны работать, но могут быть и особые алгоритмы. |
wrappingKey |
PublicKey, используемый для шифрования |
См. также unwrapKey()
для функциональности извлечения.
finished
void QCA::PKeyBase::finished () |
signal |
Сигнал испускается, когда завершается асинхронная операция с этим ключом.
Подобные операции будут задокументированы, что они испускают данный сигнал.