Класс PKey
#include <QtCrypto>
Диаграмма кооперации класса QCA::PKey:

Публичные типы
| enum | Type { RSA , DSA , DH , EC , GOST , UNKNOWN } |
Публичные функции
| int | bitSize () const |
| bool | canExport () const |
| bool | canKeyAgree () const |
| bool | isDH () const |
| bool | isDSA () const |
| bool | isEC () const |
| bool | isGOST () const |
| bool | isNull () const |
| bool | isPrivate () const |
| bool | isPublic () const |
| bool | isRSA () const |
| bool | operator!= (const PKey &a) const |
| PKey & | operator= (const PKey &from) |
| bool | operator== (const PKey &a) const |
| PKey () | |
| PKey (const PKey &from) | |
| PrivateKey | toPrivateKey () const |
| PublicKey | toPublicKey () const |
| Type | type () const |
Публичные функции, унаследованные от 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 |
Статические публичные функции
| static QList< Type > | supportedIOTypes (const QString &provider=QString()) |
| static QList< Type > | supportedTypes (const QString &provider=QString()) |
Защищённые методы
| PKey (const QString &type, const QString &provider) | |
| void | set (const PKey &k) |
| DHPrivateKey | toDHPrivateKey () const |
| DHPublicKey | toDHPublicKey () const |
| DSAPrivateKey | toDSAPrivateKey () const |
| DSAPublicKey | toDSAPublicKey () const |
| ECPrivateKey | toECPrivateKey () const |
| ECPublicKey | toECPublicKey () const |
| GOSTPrivateKey | toGOSTPrivateKey () const |
| GOSTPublicKey | toGOSTPublicKey () const |
| RSAPrivateKey | toRSAPrivateKey () const |
| RSAPublicKey | toRSAPublicKey () const |
Защищённые функции, унаследованные от QCA::Algorithm
| Algorithm () |
| Algorithm (const QString &type, const QString &provider) |
Подробное описание
Общий родительский класс для открытого (PublicKey) и закрытого (PrivateKey) ключей, используемых с методами асимметричного шифрования.
Описание перечислений
Type
| enum QCA::PKey::Type |
Типы открытых криптографических ключей, поддерживаемые QCA.
| RSA | Ключ RSA. |
| DSA | Ключ DSA. |
| DH | Ключ Диффи — Хеллмана. |
| EC | Эллиптическая кривая. |
| GOST | ГОСТ. |
| UNKNOWN | Неизвестно. |
Описание конструкторов и деструктора
PKey() [1/3]
| QCA::PKey::PKey () |
Стандартный конструктор.
PKey() [2/3]
| QCA::PKey::PKey (const PKey & from) |
Стандартный конструктор копирования.
Параметры
| from | Ключ для копирования |
PKey() [3/3]
| QCA::PKey::PKey (const QString & type, const QString & provider ) | protected |
Создаёт ключ указанного типа.
Параметры
| type | Название типа создаваемого ключа |
| provider | Имя криптопровайдера, для которого нужно создать ключ |
Описание методов
operator=()
| PKey & QCA::PKey::operator= (const PKey & from) |
Стандартный оператор присваивания.
Параметры
| from | объект PKey для копирования |
supportedTypes()
| static QList< Type > QCA::PKey::supportedTypes (const QString & provider = QString()) | static |
Проверяет, какие типы ключей поддерживаются.
Обычно просто проверяется, присутствует ли такая возможность, однако для ёPKey` также необходимо проверить, какие типы ключей доступны. Поэтому, если нужно выяснить, поддерживаются ли ключи RSA, нужно сделать что-то вроде:
if(!QCA::isSupported("pkey") ||
!QCA::PKey::supportedTypes().contains(QCA::PKey::RSA))
{
// тогда нет поддержки ключа RSA
}
else
{
// есть поддержка ключа RSA
}
Чтобы немного усложнить задачу,
supportedTypes()
проверяет только базовую функциональность. Если требуется проверить, можно ли выполнять операции с
PEM или DER (например, toPEM(), fromPEM() и эквивалентные операции DER и PEMfile, а также
всё остальное, что их использует, включая конструктор, который принимает на вход имя файла), тогда
вместо этого нужно проверить наличие
supportedIOTypes().
Параметры
| provider | Название криптопровайдера, который будет использоваться, если требуется конкретный криптопровайдер |
См. также supportedIOTypes()
supportedIOTypes()
| static QList<Type > QCA::PKey::supportedIOTypes (const QString & provider = QString()) | static |
Проверяет, какие типы ключей поддерживаются для операций ввода-вывода.
Если используются операции PKey DER или PEM, необходимо проверить наличие соответствующей поддержки с помощью этого метода. Например, если требуется проверить, можно ли экспортировать или импортировать ключ RSA, нужно сделать что-то вроде:
if(!QCA::isSupported("pkey") ||
!QCA::PKey::supportedIOTypes().contains(QCA::PKey::RSA))
{
// тогда нет поддержки ввода-вывода ключа RSA
}
else
{
// есть поддержка ввода-вывода ключа RSA
}
Следует обратить внимание, что если требуется проверить только базовую функциональность (т.е. не импорт/экспорт PEM или DER), можно использовать supportedTypes(). Нет необходимости использовать оба — если тип ключа поддерживается для ввода-вывода, то он также поддерживается для базовых операций.
Параметры
| provider | Название криптопровайдера, который будет использоваться, если требуется конкретный криптопровайдер |
См. также supportedTypes()
Примеры
isNull()
| bool QCA::PKey::isNull () const |
Проверяет, является ли ключ нулевым (пустым).
Возвращает true, если ключ пустой.
Примеры
type()
| Type QCA::PKey::type () const |
Сообщает тип ключа (например, RSA, DSA или Диффи — Хеллмана).
См. также isRSA, isDSA и isDH для булевых тестов.
bitSize()
| int QCA::PKey::bitSize () const |
Сообщает количество битов в ключе.
Примеры
isRSA()
| bool QCA::PKey::isRSA () const |
Проверяет, является ли ключ ключом RSA.
isDSA()
| bool QCA::PKey::isDSA () const |
Проверяет, является ли ключ ключом DSA.
isDH()
| bool QCA::PKey::isDH () const |
Проверяет, является ли ключ ключом Диффи — Хеллмана.
isEC()
| bool QCA::PKey::isEC () const |
Проверяет, является ли ключ ключом эллиптической кривой.
isGOST()
| bool QCA::PKey::isGOST () const |
Проверяет, является ли ключ ключом ГОСТ.
isPublic()
| bool QCA::PKey::isPublic () const |
Проверяет, является ли ключ открытым ключом.
isPrivate()
| bool QCA::PKey::isPrivate () const |
Проверяет, является ли ключ закрытым ключом.
canExport()
| bool QCA::PKey::canExport () const |
Проверяет, можно ли экспортировать данные ключа.
Если ключ находится на смарт-карте или другом подобном устройстве, метод, скорее всего, вернет
false.
canKeyAgree()
| bool QCA::PKey::canKeyAgree () const |
Проверяет, можно ли использовать этот ключ для согласования ключей.
toPublicKey()
| PublicKey QCA::PKey::toPublicKey () const |
Интерпретирует этот ключ как PublicKey.
См. также toRSAPublicKey(), toDSAPublicKey() и toDHPublicKey() для защищённых форм этого вызова.
Примеры
toPrivateKey()
| PrivateKey QCA::PKey::toPrivateKey () const |
Интерпретирует этот ключ как PrivateKey.
operator==()
| bool QCA::PKey::operator== (const PKey & a) const |
Проверяет, равны ли два ключа.
Параметры
| a | Ключ для сравнения с данным ключом |
operator!=()
| bool QCA::PKey::operator!= (const PKey & a) const |
Проверяет, что два ключа не равны.
Параметры
| a | Ключ для сравнения с данным ключом |
set()
| void QCA::PKey::set (const PKey & k) | protected |
Устанавливает ключ.
Параметры
| k | Ключ для присваивания |
toRSAPublicKey()
| RSAPublicKey QCA::PKey::toRSAPublicKey () const | protected |
Интерпретирует этот ключ как RSAPublicKey.
Примечание.
Этот метод представляет собой удобное приведение типов — если ключ был создан как ключ DSA, метод не может превратить его в ключ RSA.
См. также toPublicKey() для публичной версии этого метода.
toRSAPrivateKey()
| RSAPrivateKey QCA::PKey::toRSAPrivateKey () const | protected |
Интерпретирует этот ключ как RSAPrivateKey.
Примечание.
Этот метод представляет собой удобное приведение типов — если ключ был создан как ключ DSA, метод не может превратить его в ключ RSA.
См. также toPrivateKey() для публичной версии этого метода.
toDSAPublicKey()
| DSAPublicKey QCA::PKey::toDSAPublicKey () const | protected |
Интерпретирует этот ключ как DSAPublicKey.
Примечание.
Этот метод представляет собой удобное приведение типов — если ключ был создан как ключ RSA, метод не может превратить его в ключ DSA.
См. также toPublicKey() для публичной версии этого метода.
toDSAPrivateKey()
| DSAPrivateKey QCA::PKey::toDSAPrivateKey () const | protected |
Интерпретирует этот ключ как DSAPrivateKey.
Примечание.
Этот метод представляет собой удобное приведение типов — если ключ был создан как ключ RSA, метод не может превратить его в ключ DSA.
См. также toPrivateKey() для публичной версии этого метода.
toDHPublicKey()
| DHPublicKey QCA::PKey::toDHPublicKey () const | protected |
Интерпретирует этот ключ как DHPublicKey.
Примечание.
Этот метод представляет собой удобное приведение типов — если ключ был создан как ключ DSA, метод не может превратить его в ключ DH.
См. также toPublicKey() для публичной версии этого метода.
toDHPrivateKey()
| DHPrivateKey QCA::PKey::toDHPrivateKey () const | protected |
Интерпретирует этот ключ как DHPrivateKey.
Примечание.
Этот метод представляет собой удобное приведение типов — если ключ был создан как ключ DSA, метод не может превратить его в ключ DH.
См. также toPrivateKey() для публичной версии этого метода.
toECPublicKey()
| ECPublicKey QCA::PKey::toECPublicKey () const | protected |
Интерпретирует этот ключ как ECPublicKey.
Примечание.
Этот метод представляет собой удобное приведение типов — если ключ был создан как ключ RSA, метод не может превратить его в ключ эллиптической кривой.
См. также toPublicKey() для публичной версии этого метода.
toECPrivateKey()
| ECPrivateKey QCA::PKey::toECPrivateKey () const | protected |
Интерпретирует этот ключ как ECPrivateKey.
Примечание.
Этот метод представляет собой удобное приведение типов — если ключ был создан как ключ RSA, метод не может превратить его в ключ эллиптической кривой.
См. также toPrivateKey() для публичной версии этого метода.
toGOSTPublicKey()
| GOSTPublicKey QCA::PKey::toGOSTPublicKey () const | protected |
Интерпретирует этот ключ как GOSTPublicKey.
Примечание.
Этот метод представляет собой удобное приведение типов — если ключ был создан как ключ эллиптической кривой, метод не может превратить его в ключ ГОСТ.
См. также toPublicKey() для публичной версии этого метода.
toGOSTPrivateKey()
| GOSTPrivateKey QCA::PKey::toGOSTPrivateKey () const | protected |
Интерпретирует этот ключ как GOSTPrivateKey.
Примечание.
Этот метод представляет собой удобное приведение типов — если ключ был создан как ключ эллиптической кривой, метод не может превратить его в ключ ГОСТ.
См. также toPrivateKey() для публичной версии этого метода.