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

Класс 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()

Примеры

rsatest.cpp.

isNull()

bool QCA::PKey::isNull () const

Проверяет, является ли ключ нулевым (пустым).

Возвращает true, если ключ пустой.

Примеры

rsatest.cpp.

type()

Type QCA::PKey::type () const

Сообщает тип ключа (например, RSA, DSA или Диффи — Хеллмана).

См. также isRSA, isDSA и isDH для булевых тестов.

bitSize()

int QCA::PKey::bitSize () const

Сообщает количество битов в ключе.

Примеры

keyloader.cpp.

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() для защищённых форм этого вызова.

Примеры

rsatest.cpp.

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

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

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