Класс 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() для публичной версии этого метода.