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

Класс PublicKey

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

bool canDecrypt () const
bool canEncrypt () const
bool canVerify () const
bool decrypt (const SecureArray &in, SecureArray *out, EncryptionAlgorithm alg)
SecureArray encrypt (const SecureArray &a, EncryptionAlgorithm alg)
int maximumEncryptSize (EncryptionAlgorithm alg) const
PublicKey & operator= (const PublicKey &from)
PublicKey ()
PublicKey (const PrivateKey &k)
PublicKey (const PublicKey &from)
PublicKey (const QString &fileName)
void startVerify (SignatureAlgorithm alg, SignatureFormat format=DefaultFormat)
QByteArray toDER () const
DHPublicKey toDH () const
DSAPublicKey toDSA () const
ECPublicKey toEC () const
GOSTPublicKey toGOST () const
QString toPEM () const
bool toPEMFile (const QString &fileName) const
RSAPublicKey toRSA () const
void update (const MemoryRegion &a)
bool validSignature (const QByteArray &sig)
bool verifyMessage (const MemoryRegion &a, const QByteArray &sig, SignatureAlgorithm alg, SignatureFormat format=DefaultFormat)

Публичные функции, унаследованные от QCA::PKey

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 PublicKey fromDER (const QByteArray &a, ConvertResult *result=nullptr, const QString &provider=QString())
static PublicKey fromPEM (const QString &s, ConvertResult *result=nullptr, const QString &provider=QString())
static PublicKey fromPEMFile (const QString &fileName, ConvertResult *result=nullptr, const QString &provider=QString())

Статические публичные функции, унаследованные от QCA::PKey

static QList<Type> supportedIOTypes (const QString &provider=QString())
static QList<Type> supportedTypes (const QString &provider=QString())

Защищённые методы

PublicKey (const QString &type, const QString &provider)

Защищённые функции, унаследованные от QCA::PKey

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)

Дополнительные унаследованные члены

Публичные типы, унаследованные от QCA::PKey

enum Type { RSA , DSA , DH , EC , GOST , UNKNOWN }

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

Общий открытый ключ.

Примеры

rsatest.cpp.

Описание конструкторов и деструктора

PublicKey() [1/5]

QCA::PublicKey::PublicKey ()

Создаёт пустой (null) открытый ключ.

PublicKey() [2/5]

QCA::PublicKey::PublicKey (const PrivateKey & k)

Создаёт открытый ключ на основе указанного закрытого ключа.

Параметры

k Закрытый ключ, из которого будут извлечены части открытого ключа

PublicKey() [3/5]

QCA::PublicKey::PublicKey (const QString & fileName)

Импортирует открытый ключ из представления PEM в файле.

Параметры

fileName Имя файла, содержащего открытый ключ

См. также fromPEMFile как альтернативный метод.

PublicKey() [4/5]

QCA::PublicKey::PublicKey (const PublicKey & from)

Конструктор копирования.

Параметры

from Объект PublicKey для копирования

PublicKey() [5/5]

QCA::PublicKey::PublicKey (const QString & type, const QString & provider ) protected

Создаёт новый ключ указанного типа.

Параметры

type Тип создаваемого ключа
provider Криптопровайдер, который будет использоваться, если требуется

Описание методов

operator=()

PublicKey& QCA::PublicKey::operator= (const PublicKey & from)

Оператор присваивания.

Параметры

from Объект PublicKey для копирования

toRSA()

RSAPublicKey QCA::PublicKey::toRSA () const

Удобный метод преобразования этого ключа в RSAPublicKey.

Следует обратить внимание, что если ключ не является ключом RSA (например, он DSA или DH), тогда будет получен нулевой ключ.

toDSA()

DSAPublicKey QCA::PublicKey::toDSA () const

Удобный метод преобразования этого ключа в DSAPublicKey.

Следует обратить внимание, что если ключ не является ключом DSA (например, он RSA или DH), тогда будет получен нулевой ключ.

toDH()

DHPublicKey QCA::PublicKey::toDH () const

Удобный метод преобразования этого ключа в DHPublicKey.

Следует обратить внимание, что если ключ не является ключом DH (например, он DSA или RSA), тогда будет получен нулевой ключ.

toEC()

ECPublicKey QCA::PublicKey::toEC () const

Удобный метод преобразования этого ключа в ECPublicKey.

Следует обратить внимание, что если ключ не является ключом эллиптической кривой (например, он RSA или DH), тогда будет получен нулевой ключ.

toGOST()

GOSTPublicKey QCA::PublicKey::toGOST () const

Удобный метод преобразования этого ключа в GOSTPublicKey.

Следует обратить внимание, что если ключ не является ключом ГОСТ (например, он RSA или эллиптическая кривая), тогда будет получен нулевой ключ.

canEncrypt()

bool QCA::PublicKey::canEncrypt () const

Проверяет, можно ли использовать этот ключ для шифрования.

Возвращает true, если ключ можно использовать для шифрования.

Примеры

rsatest.cpp.

canDecrypt()

bool QCA::PublicKey::canDecrypt () const

Проверяет, можно ли использовать этот ключ для дешифрования.

Возвращает true, если ключ можно использовать для дешифрования.

canVerify()

bool QCA::PublicKey::canVerify () const

Проверяет, можно ли использовать этот ключ для проверки подписей.

Возвращает true, если ключ можно использовать для верификации.

Примеры

rsatest.cpp.

maximumEncryptSize()

int QCA::PublicKey::maximumEncryptSize (EncryptionAlgorithm alg) const

Максимальный размер сообщения, которое можно зашифровать с помощью указанного алгоритма.

Параметры

alg Алгоритм для проверки

encrypt()

SecureArray QCA::PublicKey::encrypt (const SecureArray & a, EncryptionAlgorithm alg )

Шифрует сообщение, используя указанный алгоритм.

Параметры

a Сообщение для шифрования
alg Используемый алгоритм

Примеры

rsatest.cpp.

decrypt()

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

Расшифровывает сообщение.

Параметры

in Зашифрованные данные
out Данные в виде обычного текста
alg Используемый алгоритм

Примечание.

Эта синхронная операция может потребовать обработки событий, поэтому её нельзя вызывать из того же потока, что и EventHandler.

startVerify()

void QCA::PublicKey::startVerify (SignatureAlgorithm alg, SignatureFormat format = DefaultFormat )

Инициализирует процесс проверки подписи.

Параметры

alg Используемый алгоритм подписи
format Конкретный формат для использования в DSA

Примеры

rsatest.cpp.

update()

void QCA::PublicKey::update (const MemoryRegion & a)

Обновляет процесс проверки подписи дополнительными данными.

Параметры

a Массив, содержащий данные, которые нужно добавить в подпись

Примеры

rsatest.cpp.

validSignature()

bool QCA::PublicKey::validSignature (const QByteArray & sig)

Проверяет, что подпись действительна для сообщения.

Ниже показан процесс проверки правильности подписи:

// следует обратить внимание, что открытый ключ имеет тип PublicKey
if( pubkey.canVerify() )
{
   pubkey.startVerify( QCA::EMSA3_MD5 );
pubkey.update( theMessage ); // может вызываться несколько раз
   if ( pubkey.validSignature( theSignature ) )
   {
      // тогда подпись действительна
   }
   else
   {
      // тогда подпись недействительна
   }
}

Параметры

sig Подпись для проверки

Возвращает true, если подпись верна.

Примеры

rsatest.cpp.

verifyMessage()

bool QCA::PublicKey::verifyMessage (const MemoryRegion & a, const QByteArray & sig, SignatureAlgorithm alg, SignatureFormat format = DefaultFormat )

Одноэтапная проверка сообщения.

Если нужно верифицировать всё сообщение, данный метод предлагает более удобный подход к проверке.

Параметры

a Сообщение для проверки подписи
sig Подпись, которую нужно проверить
alg Используемый алгоритм
format Используемый формат подписи для DSA

Возвращает true, если подпись действительна для сообщения.

Примеры

rsatest.cpp.

toDER()

QByteArray QCA::PublicKey::toDER () const

Экспортирует ключ в формате особых правил кодирования (DER).

toPEM()

QString QCA::PublicKey::toPEM () const

Экспортирует ключ в формате почты с повышенной секретностью (PEM).

См. также toPEMFile предоставляет удобный способ сохранить закодированный ключ PEM в файл.

fromPEM предоставляет действие, обратное toPEM, преобразуя закодированный ключ PEM в PublicKey.

toPEMFile()

bool QCA::PublicKey::toPEMFile (const QString & fileName) const

Экспортирует ключ в формате почты с повышенной секретностью (PEM) в файл.

Параметры

fileName Имя (и путь, если необходимо) файла, в который будет сохранён закодированный ключ PEM

См. также toPEM для версии, которая экспортируется в QString, что может быть полезно, если нужно выполнить более сложную обработку.

fromPEMFile предоставляет действие, обратное toPEMFile, считывая закодированный ключ PEM из файла.

fromDER()

static PublicKey QCA::PublicKey::fromDER (const QByteArray & a, ConvertResult * result = nullptr, const QString & provider = QString() ) static

Импортирует ключ в формате особых правил кодирования (DER).

Эта функция принимает двоичный массив, который, как предполагается, содержит открытый ключ в формате DER и возвращает этот ключ. Если не важна успешность импорта, следует проверить результат, как показано ниже.

QCA::ConvertResult conversionResult;
QCA::PublicKey publicKey = QCA::PublicKey::fromDER(keyArray, &conversionResult);
if (! QCA::ConvertGood == conversionResult)
{
std::cout << "Не удалось прочитать открытый ключ" << std::endl;
}

Параметры

a Массив, содержащий ключ в кодировке DER
result Указатель на переменную, которая возвращает, было ли преобразование успешным (ConvertGood) или нет
provider Имя криптопровайдера, используемого для импорта

fromPEM()

static PublicKey QCA::PublicKey::fromPEM (const QString & s, ConvertResult * result = nullptr, const QString & provider = QString() ) static

Импортирует ключ в формате почты с повышенной секретностью (PEM).

Эта функция принимает строку, которая, как предполагается, содержит открытый ключ в формате PEM и возвращает этот ключ. Если не важна успешность импорта, следует проверить результат, как показано ниже.

QCA::ConvertResult conversionResult;
QCA::PublicKey publicKey = QCA::PublicKey::fromPEM(keyAsString, &conversionResult);
if (! QCA::ConvertGood == conversionResult)
{
std::cout << "Не удалось прочитать открытый ключ" << std::endl;
}

Параметры

s Строка, содержащая ключ в кодировке PEM
result Указатель на переменную, которая возвращает, было ли преобразование успешным (ConvertGood) или нет
provider Имя криптопровайдера, используемого для импорта

См. также toPEM, который предоставляет действие, обратное fromPEM(),

fromPEMFile, который обеспечивает импорт прямо из файла.

fromPEMFile()

static PublicKey QCA::PublicKey::fromPEMFile (const QString & fileName, ConvertResult * result = nullptr, const QString & provider = QString() ) static

Импортирует ключ в формате почты с повышенной секретностью (PEM) из файла.

Эта функция принимает имя файла, которое, как предполагается, содержит открытый ключ в формате PEM и возвращает этот ключ. Если не важна успешность импорта, следует проверить результат, как показано ниже.

QCA::ConvertResult conversionResult;
QCA::PublicKey publicKey = QCA::PublicKey::fromPEMFile(fileName, &conversionResult);
if (! QCA::ConvertGood == conversionResult)
{
std::cout << "Не удалось прочитать открытый ключ" << std::endl;
}

Параметры

fileName Строка, содержащая имя файла
result Указатель на переменную, которая возвращает, было ли преобразование успешным (ConvertGood) или нет
provider Имя криптопровайдера, используемого для импорта

См. также toPEMFile, который предоставляет действие, обратное fromPEMFile()

fromPEM, который обеспечивает импорт из строки.

Примечание.

Есть также конструктор, который может импортировать из файла.

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

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