Документация
ОС Аврора 5.0.1

Класс PKeyBase(абстрактный)

Сигналы

void finished ()

Публичные функции

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

BasicContext (const BasicContext &from)
BasicContext (Provider *parent, const QString &type)

Подробное описание

База криптопровайдеров реализации открытого ключа.

Примечание.

Этот класс является частью интерфейса подключаемого модуля криптопровайдера и не должен использоваться приложениями напрямую. Возможно стоит использовать 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()

virtual int QCA::PKeyBase::maximumEncryptSize (EncryptionAlgorithm alg) const virtual

Возвращает максимальное количество байтов, которое может быть зашифровано этим ключом.

Параметры

alg Алгоритм, который будет использоваться для шифрования

encrypt()

virtual SecureArray QCA::PKeyBase::encrypt (const SecureArray & in, EncryptionAlgorithm alg ) virtual

Шифрует данные.

Параметры

in Входные данные для шифрования
alg Используемый алгоритм шифрования

decrypt()

virtual bool QCA::PKeyBase::decrypt (const SecureArray & in, SecureArray * out, EncryptionAlgorithm alg ) virtual

Дешифрует данные.

Параметры

in Входные данные для расшифровки
out Указатель на массив для хранения результата в виде открытого текста
alg Алгоритм шифрования, используемый для генерации входных данных

startSign()

virtual void QCA::PKeyBase::startSign (SignatureAlgorithm alg, SignatureFormat format ) virtual

Начинает операцию подписи.

Параметры

alg Используемый алгоритм подписи
format Используемый формат подписи

startVerify()

virtual void QCA::PKeyBase::startVerify (SignatureAlgorithm alg, SignatureFormat format ) virtual

Начинает операцию верификации.

Параметры

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

Сигнал испускается, когда завершается асинхронная операция с этим ключом.

Подобные операции будут задокументированы, что они испускают данный сигнал.

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.