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

Описание пространств имён QCA

Классы

class AbstractLogDevice
class Algorithm
class AuthTag
class Base64
class BasicContext
class BigInteger
class BufferedComputation
class CAContext
class CertBase
class CertCollectionContext
class CertContext
class CertContextProps
class Certificate
class CertificateAuthority
class CertificateChain
class CertificateCollection
class CertificateInfoOrdered
class CertificateInfoPair
class CertificateInfoType
class CertificateOptions
class CertificateRequest
class Cipher
class CipherContext
class CMS
class Console
class ConsolePrompt
class ConsoleReference
class ConstraintType
class CRL
class CRLContext
class CRLContextProps
class CRLEntry
class CSRContext
class DHContext
class DHPrivateKey
class DHPublicKey
class DirWatch
class DLGroup
class DLGroupContext
class DSAContext
class DSAPrivateKey
class DSAPublicKey
class ECContext
class ECPrivateKey
class ECPublicKey
class Event
class EventHandler
class FileWatch
class Filter
class GOSTContext
class GOSTPrivateKey
class GOSTPublicKey
class Hash
class HashContext
class Hex
class HKDF
class HKDFContext
class InfoContext
class InitializationVector
class Initializer
class KDFContext
class KeyAsker
class KeyBundle
class KeyDerivationFunction
class KeyGenerator
class KeyLength
class KeyLoader
class KeyStore
class KeyStoreAsker
class KeyStoreEntry
class KeyStoreEntryContext
class KeyStoreEntryWatcher
class KeyStoreInfo
class KeyStoreListContext
class KeyStoreManager
class Logger
class MACContext
class MemoryRegion
class MessageAuthenticationCode
class MessageContext
class OpenPGP
class PasswordAsker
class PBKDF1
class PBKDF2
class PGPKey
class PGPKeyContext
class PGPKeyContextProps
class PKCS12Context
class PKey
class PKeyBase
class PKeyContext
class PrivateKey
class Provider
class PublicKey
class QPipe
class QPipeDevice
class QPipeEnd
class Random
class RandomContext
class RSAContext
class RSAPrivateKey
class RSAPublicKey
class SafeTimer
class SASL
class SASLContext
class SecureArray
class SecureLayer
class SecureMessage
class SecureMessageKey
class SecureMessageSignature
class SecureMessageSystem
class SMSContext
class SymmetricKey
class SymmetricKeyContext
class Synchronizer
class SyncThread
class TextFilter
class TLS
class TLSContext
class TLSSession
class TLSSessionContext
class TokenAsker

Определения типов

typedef QMultiMap< CertificateInfoType, QString > CertificateInfo
typedef QList<ConstraintType> Constraints
typedef QList< Provider * > ProviderList
typedef QList<SecureMessageKey> SecureMessageKeyList
typedef QList<SecureMessageSignature> SecureMessageSignatureList

Перечисления

enum CertificateInfoTypeKnown { CommonName , Email , EmailLegacy , Organization , OrganizationalUnit , Locality , IncorporationLocality , State , IncorporationState , Country , IncorporationCountry , URI , DNS , IPAddress , XMPP , INN , OGRN , SNILS , INNLE , OGRNIP , IdentificationKind }
enum CertificateRequestFormat { PKCS10 , SPKAC }
enum ConstraintTypeKnown { DigitalSignature , NonRepudiation , KeyEncipherment , DataEncipherment , KeyAgreement , KeyCertificateSign , CRLSign , EncipherOnly , DecipherOnly , ServerAuth , ClientAuth , CodeSigning , EmailProtection , IPSecEndSystem , IPSecTunnel , IPSecUser , TimeStamping , OCSPSigning }
enum ConvertResult { ConvertGood , ErrorDecode , ErrorPassphrase , ErrorFile }
enum Direction { Encode , Decode }
enum DLGroupSet { DSA_512 , DSA_768 , DSA_1024 , IETF_768 , IETF_1024 , IETF_1536 , IETF_2048 , IETF_3072 , IETF_4096 , IETF_6144 , IETF_8192 }
enum EncryptionAlgorithm { EME_PKCS1v15 , EME_PKCS1_OAEP , EME_PKCS1v15_SSL , EME_NO_PADDING }
enum MemoryMode { Practical , Locking , LockingKeepPrivileges }
enum PBEAlgorithm { PBEDefault , PBES2_DES_SHA1 , PBES2_TripleDES_SHA1 , PBES2_AES128_SHA1 , PBES2_AES192_SHA1 , PBES2_AES256_SHA1 }
enum SecurityLevel { SL_None , SL_Integrity , SL_Export , SL_Baseline , SL_High , SL_Highest }
enum SignatureAlgorithm { SignatureUnknown , EMSA1_SHA1 , EMSA3_SHA1 , EMSA3_MD5 , EMSA3_MD2 , EMSA3_RIPEMD160 , EMSA3_Raw , EMSA3_SHA224 , EMSA3_SHA256 , EMSA3_SHA384 , EMSA3_SHA512 , ECDSA_SHA256 , ECDSA_SHA384 , GOST3411_94_R3410_2001 , GOST3410_2012_256 , GOST3410_2012_512 }
enum SignatureFormat { DefaultFormat , IEEE_1363 , DERSequence }
enum UsageMode { UsageAny = 0x00 , UsageTLSServer = 0x01 , UsageTLSClient = 0x02 , UsageCodeSigning = 0x04 , UsageEmailProtection = 0x08 , UsageTimeStamping = 0x10 , UsageCRLSigning = 0x20 }
enum ValidateFlags { ValidateAll = 0x00 , ValidateRevoked = 0x01 , ValidateExpired = 0x02 , ValidatePolicy = 0x04 , ValidateCRL = 0x05 , ValidateOCSP = 0x06 }
enum Validity { ValidityGood , ErrorRejected , ErrorUntrusted , ErrorSignatureFailed , ErrorInvalidCA , ErrorInvalidPurpose , ErrorSelfSigned , ErrorRevoked , ErrorPathLengthExceeded , ErrorExpired , ErrorExpiredCA , ErrorValidityUnknown = 64 , RevokedUnknown }

Функции

QCA_EXPORT void appendPluginDiagnosticText (const QString &text)
QCA_EXPORT QString appName ()
QCA_EXPORT QString arrayToBase64 (const QByteArray &array)
QCA_EXPORT QString arrayToHex (const QByteArray &array)
QCA_EXPORT QByteArray base64ToArray (const QString &base64String)
QCA_EXPORT void clearPluginDiagnosticText ()
QCA_EXPORT QStringList defaultFeatures ()
QCA_EXPORT Provider * defaultProvider ()
QCA_EXPORT void deinit ()
QCA_EXPORT QByteArray emsa3Encode (const QString &hashName, const QByteArray &digest, int size=-1)
QCA_EXPORT Provider * findProvider (const QString &name)
QCA_EXPORT QVariant getProperty (const QString &name)
QCA_EXPORT QVariantMap getProviderConfig (const QString &name)
QCA_EXPORT QString globalRandomProvider ()
QCA_EXPORT bool haveSecureMemory ()
QCA_EXPORT bool haveSecureRandom ()
QCA_EXPORT bool haveSystemStore ()
QCA_EXPORT QByteArray hexToArray (const QString &hexString)
QCA_EXPORT void init ()
QCA_EXPORT void init (MemoryMode m, int prealloc)
QCA_EXPORT bool insertProvider (Provider *p, int priority=0)
QCA_EXPORT bool isSupported (const char *features, const QString &provider=QString())
QCA_EXPORT bool isSupported (const QStringList &features, const QString &provider=QString())
QCA_EXPORT Logger * logger ()
QCA_EXPORT QStringList makeFriendlyNames (const QList<Certificate> &list)
QCA_EXPORT const SecureArray operator+ (const SecureArray &a, const SecureArray &b)
QCA_EXPORT CertificateInfoOrdered orderedDNOnly (const CertificateInfoOrdered &in)
QCA_EXPORT QString orderedToDNString (const CertificateInfoOrdered &in)
QCA_EXPORT QString pluginDiagnosticText ()
QCA_EXPORT QStringList pluginPaths ()
QCA_EXPORT int providerPriority (const QString &name)
QCA_EXPORT ProviderList providers ()
QCA_EXPORT void saveProviderConfig (const QString &name)
QCA_EXPORT void scanForPlugins ()
QCA_EXPORT void setAppName (const QString &name)
QCA_EXPORT void setGlobalRandomProvider (const QString &provider)
QCA_EXPORT void setProperty (const QString &name, const QVariant &value)
QCA_EXPORT void setProviderConfig (const QString &name, const QVariantMap &config)
QCA_EXPORT void setProviderPriority (const QString &name, int priority)
QCA_EXPORT QStringList supportedFeatures ()
QCA_EXPORT CertificateCollection systemStore ()
QCA_EXPORT void unloadAllPlugins ()
QCA_EXPORT bool unloadProvider (const QString &name)

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

QCA — криптографическая архитектура Qt.

Описание определений типов

CertificateInfo

typedef QMultiMap<CertificateInfoType, QString> QCA::CertificateInfo

Тип для свойств класса Certificate.

В этом контейнере информация не обязательно хранится в той же последовательности, что и по формату самого сертификата. Нужно использовать этот контейнер, если порядок хранения информации не имеет значения (это относится к большинству приложений).

Кроме того, с этим контейнером нельзя использовать тип EmailLegacy. Вместо него следует использовать Email.

Constraints

typedef QList<ConstraintType> QCA::Constraints

Тип ограничений сертификата.

ProviderList

typedef QList<Provider *> QCA::ProviderList

Удобное представление для криптопровайдеров плагинов.

Можно получить список криптопровайдеров с помощью функции providers()

См. также ProviderListIterator

providers()

SecureMessageKeyList

typedef QList<SecureMessageKey> QCA::SecureMessageKeyList

Список ключей сообщений.

SecureMessageSignatureList

typedef QList<SecureMessageSignature> QCA::SecureMessageSignatureList

Список сигнатур.

Описание перечислений

CertificateRequestFormat

enum QCA::CertificateRequestFormat

Формат запроса Certificate.

PKCS10 Стандартный формат PKCS#10
SPKAC Подписанный открытый ключ и формат запроса (Netscape)

CertificateInfoTypeKnown

enum QCA::CertificateInfoTypeKnown

Известные типы информации, хранящейся в сертификатах.

Этот перечислитель предлагает удобный способ работы с общими типами.

CommonName Обычное имя (например, имя человека), id = "2.5.4.3"
Email Адрес электронной почты, id = "GeneralName.rfc822Name"
EmailLegacy Поле электронной почты PKCS#9, id = "1.2.840.113549.1.9.1"
Organization Организация (компания), id = "2.5.4.10"
OrganizationalUnit Часть организации (например, подразделение или филиал), id = "2.5.4.11"
Locality Населённый пункт (например, город, область и т.п.), id = "2.5.4.7"
IncorporationLocality Место регистрации (сертификаты EV), id = "1.3.6.1.4.1.311.60.2.1.1"
State Область внутри страны, id = "2.5.4.8"
IncorporationState Штат регистрации (сертификаты EV), id = "1.3.6.1.4.1.311.60.2.1.2"
Country Страна, id = "2.5.4.6"
IncorporationCountry Страна регистрации (сертификаты EV), id = "1.3.6.1.4.1.311.60.2.1.3"
URI Универсальный идентификатор ресурса, id = "GeneralName.uniformResourceIdentifier"
DNS DNS-имя, id = "GeneralName.dNSName"
IPAddress IP-адрес, id = "GeneralName.iPAddress"
XMPP XMPP-адрес (см. http://www.ietf.org/rfc/rfc3920.txt), id = "1.3.6.1.5.5.7.8.5"
INN Идентификационный номер налогоплательщика, id = "1.2.643.3.131.1.1".
OGRN Основной государственный регистрационный номер, id = "1.2.643.100.1".
SNILS Страховой номер индивидуального лицевого счета, id = "1.2.643.100.3".
INNLE ИНН юридического лица, id = "1.2.643.100.4".
OGRNIP ОГРН индивидуального предпринимателя, id = "1.2.643.100.5".
IdentificationKind Как был идентифицирован владелец сертификата при выдаче сертификата, id="1.2.643.100.114".

ConstraintTypeKnown

enum QCA::ConstraintTypeKnown

Известные типы ограничений сертификата.

Этот перечислитель предлагает удобный способ работы с общими типами.

DigitalSignature Сертификат можно использовать для создания цифровых подписей, id = "KeyUsage.digitalSignature"
NonRepudiation Сертификат можно использовать для предотвращения отказа от авторства, id = "KeyUsage.nonRepudiation"
KeyEncipherment Сертификат может использоваться для шифрования/дешифрования ключей, id = "KeyUsage.keyEncipherment"
DataEncipherment Сертификат может использоваться для шифрования/дешифрования данных, id = "KeyUsage.dataEncipherment"
KeyAgreement Сертификат может использоваться для согласования ключей, id = "KeyUsage.keyAgreement"
KeyCertificateSign Сертификат можно использовать для подписи сертификата ключа, id = "KeyUsage.keyCertSign"
CRLSign Сертификат можно использовать для подписи списков отзыва сертификатов, id = "KeyUsage.crlSign"
EncipherOnly Сертификат можно использовать только для шифрования, id = "KeyUsage.encipherOnly"
DecipherOnly Сертификат можно использовать только для дешифрования, id = "KeyUsage.decipherOnly"
ServerAuth Сертификат может использоваться для аутентификации сервера (например, веб-сервера), id = "1.3.6.1.5.5.7.3.1". Это расширенное ограничение использования
ClientAuth Сертификат может использоваться для аутентификации клиента (например, веб-браузера), id = "1.3.6.1.5.5.7.3.2". Это расширенное ограничение использования
CodeSigning Сертификат может использоваться для подписи кода, id = "1.3.6.1.5.5.7.3.3". Это расширенное ограничение использования
EmailProtection Сертификат может использоваться для подписи/шифрования электронной почты, id = "1.3.6.1.5.5.7.3.4". Это расширенное ограничение использования
IPSecEndSystem Сертификат может использоваться для аутентификации конечной точки в IPSEC, id = "1.3.6.1.5.5.7.3.5". Это расширенное ограничение использования
IPSecTunnel Сертификат может использоваться для аутентификации туннеля в IPSEC, id = "1.3.6.1.5.5.7.3.6". Это расширенное ограничение использования
IPSecUser Сертификат может использоваться для аутентификации пользователя в IPSEC, id = "1.3.6.1.5.5.7.3.7". Это расширенное ограничение использования
TimeStamping Сертификат может использоваться для создания подписи «отметка времени», id = "1.3.6.1.5.5.7.3.8". Это расширенное ограничение использования
OCSPSigning Сертификат можно использовать для подписи утверждения протокола состояния онлайн-сертификата (OCSP), id = "1.3.6.1.5.5.7.3.9". Это расширенное ограничение использования

UsageMode

enum QCA::UsageMode

Указывает предполагаемое использование сертификата.

UsageAny Любое применение или неуказанное
UsageTLSServer Серверная сторона соединения TLS или SSL
UsageTLSClient Клиентская сторона соединения TLS или SSL
UsageCodeSigning Сертификат подписи кода
UsageEmailProtection Сертификат электронной почты (S/MIME)
UsageTimeStamping Сертификат с отметкой времени
UsageCRLSigning Сертификат, подписывающий список отзыва сертификатов

Validity

enum QCA::Validity

Действительность (или недействительность) сертификата.

ValidityGood Сертификат действителен
ErrorRejected Корневой ЦС отклонил назначение сертификата
ErrorUntrusted Сертификат не является доверенным
ErrorSignatureFailed Подпись не совпадает
ErrorInvalidCA Центр сертификации недействителен
ErrorInvalidPurpose Цель не соответствует предполагаемому использованию
ErrorSelfSigned Сертификат является самоподписанным, и его нет в списке доверенных сертификатов
ErrorRevoked Сертификат отозван
ErrorPathLengthExceeded Длина пути от корневого ЦС к этому сертификату слишком велика
ErrorExpired Срок действия сертификата истёк или он ещё не действителен (например, текущее время меньше, чем время notBefore)
ErrorExpiredCA Срок действия центра сертификации истёк
ErrorValidityUnknown Срок действия неизвестен
RevokedUnknown Респондент не знает об этом сертификате.

ValidateFlags

enum QCA::ValidateFlags

Условия для подтверждения сертификата.

MemoryMode

enum QCA::MemoryMode

Настройки режима для выделения памяти.

QCA может использовать безопасную память, однако большинство операционных систем ограничивают объём памяти, который может быть закреплен за пользовательскими приложениями, чтобы предотвратить атаку вида «отказ в обслуживании».

QCA поддерживает два подхода к получению памяти — метод mlock, который обычно требует прав суперпользователя (администратора), и метод mmap, который не так безопасен, но может использоваться любым процессом.

См. также Initializer

Practical mlock и drop root, если имеются, иначе mmap
Locking mlock и drop root
LockingKeepPrivileges mlock, сохраняя права root

Direction

enum QCA::Direction

Настройки направления для симметричных алгоритмов.

Для некоторых алгоритмов имеет смысл указывать «направление», например алгоритмы шифрования, которые можно использовать для шифрования или дешифрования.

Encode Действует в направлении «вперёд»; например, шифрование
Decode Действует в направлении «обратно»; например, дешифрование

EncryptionAlgorithm

enum QCA::EncryptionAlgorithm

Алгоритмы шифрования.

EME_PKCS1v15 Block type 2 (PKCS#1, Version 1.5)
EME_PKCS1_OAEP Оптимальное асимметричное дополнение шифрования (PKCS#1, версия 2.0)
EME_PKCS1v15_SSL PKCS#1, версия 1.5 с модификацией для SSL.
EME_NO_PADDING Чистое шифрование RSA

SignatureAlgorithm

enum QCA::SignatureAlgorithm

Варианты алгоритма подписи.

Следует обратить внимание, что большинство алгоритмов подписи следуют процессу сначала хеширования данных открытого текста, которые должны быть подписаны, создания формата полезной нагрузки, который обертывает хеш-значение (среди прочего), а затем подписания полезной нагрузки закрытым ключом. Так, например, подпись EMSA3 (SHA1), выводимая QCA, не может быть проверена простым выполнением операций RSA и SHA1 (например, «openssl rsautl -verify» и сравнение с sha1sum), потому что при этом не будет учитываться формат полезной нагрузки EMSA3.

SignatureUnknown Неизвестный алгоритм подписи
EMSA1_SHA1 SHA1, с шифрованием EMSA1 (IEEE1363-2000) (это обычный алгоритм DSA — FIPS186)
EMSA3_SHA1 SHA1 с шифрованием EMSA3 (т.е. PKCS#1 версии 1.5)
EMSA3_MD5 MD5, с шифрованием EMSA3 (т.е. PKCS#1 версии 1.5) (это обычный алгоритм RSA)
EMSA3_MD2 MD2 с шифрованием EMSA3 (т.е. PKCS#1 версии 1.5)
EMSA3_RIPEMD160 RIPEMD160 с шифрованием EMSA3 (т.е. PKCS#1 версии 1.5)
EMSA3_Raw EMSA3 без вычисления дайджеста сообщения или шифрования DigestInfo (идентично механизму CKM_RSA_PKCS PKCS#11)
EMSA3_SHA224 SHA224 с шифрованием EMSA3 (т.е. PKCS#1 версии 1.5)
EMSA3_SHA256 SHA256 с шифрованием EMSA3 (т.е. PKCS#1 версии 1.5)
EMSA3_SHA384 SHA384 с шифрованием EMSA3 (т.е. PKCS#1 версии 1.5)
EMSA3_SHA512 SHA512 с шифрованием EMSA3 (т.е. PKCS#1 версии 1.5)
ECDSA_SHA256 ECDSA с SHA256.
ECDSA_SHA384 ECDSA с SHA384.
GOST3411_94_R3410_2001 ГОСТ Р 34.11-94 с ГОСТ Р 34.10-2001.
GOST3410_2012_256 ГОСТ Р 34.10-2012 с ГОСТ Р 34.11-2012 (256 бит)
GOST3410_2012_512 ГОСТ Р 34.10-2012 с ГОСТ Р 34.11-2012 (512 бит)

SignatureFormat

enum QCA::SignatureFormat

Форматы подписи (только DSA)

DefaultFormat Для DSA это то же самое, что и IEEE_1363
IEEE_1363 40-байтовый формат из IEEE 1363 (Botan/.NET)
DERSequence Подпись в формате DER (OpenSSL/Java)

PBEAlgorithm

enum QCA::PBEAlgorithm

Шифрование на основе пароля.

PBEDefault Использовать современные настройки по умолчанию (такие же, как PBES2_TripleDES_SHA1)
PBES2_DES_SHA1 PKCS#5 v2.0 DES/CBC,SHA1.
PBES2_TripleDES_SHA1 PKCS#5 v2.0 TripleDES/CBC,SHA1.
PBES2_AES128_SHA1 PKCS#5 v2.0 AES-128/CBC,SHA1.
PBES2_AES192_SHA1 PKCS#5 v2.0 AES-192/CBC,SHA1.
PBES2_AES256_SHA1 PKCS#5 v2.0 AES-256/CBC,SHA1.

ConvertResult

enum QCA::ConvertResult

Возвращает значение после преобразования формата.

Следует обратить внимание: если проверяется какой-либо результат, кроме ConvertGood, возможно, вводится зависимость от криптопровайдера.

ConvertGood Преобразование успешно, результаты должны быть действительными
ErrorDecode Общий сбой на этапе декодирования
ErrorPassphrase Ошибка из-за неправильной кодовой фразы
ErrorFile Ошибка из-за неправильного файла

DLGroupSet

enum QCA::DLGroupSet

Хорошо известные наборы групп дискретного логарифма.

Эти наборы получены из трёх основных источников: криптографические расширения Java, RFC2412 и RFC3526.

DSA_512 512-битная группа, для совместимости с JCE
DSA_768 768-битная группа, для совместимости с JCE
DSA_1024 1024-битная группа, для совместимости с JCE
IETF_768 Группа 1 из RFC 2412, раздел E.1.
IETF_1024 Группа 2 из RFC 2412, раздел E.2.
IETF_1536 1536-битная группа MODP («группа 5») из раздела 2 RFC3526
IETF_2048 2048-битная группа MODP («группа 14») из раздела 3 RFC3526
IETF_3072 3072-битная группа MODP («группа 15») из раздела 4 RFC3526
IETF_4096 4096-битная группа MODP («группа 16») из раздела 5 RFC3526
IETF_6144 6144-битная группа MODP («группа 17») из раздела 6 RFC3526
IETF_8192 8192-битная группа MODP («группа 18») из раздела 7 RFC3526

SecurityLevel

enum QCA::SecurityLevel

Указывает нижнюю границу для приемлемых уровней безопасности TLS/SASL.

Для TLS интерпретация этих уровней следующая:

  • Любой набор шифров, который обеспечивает связь без аутентификации (обычно анонимный протокол Диффи — Хеллмана), называется SL_Integrity.
  • Любой набор шифров, который ограничен 40 битами (урезанные экспортной версией формы RC2, RC4 или DES), называется SL_Export. Стандартный DES (56 бит) и некоторые формы RC4 (64 бит) также являются SL_Export.
  • Любой обычный шифр (AES, Camellia, RC4 или аналогичный) со 128 битами или шифры с эллиптической кривой с 283 битами — это SL_Baseline.
  • AES или Camellia не менее 192 бит, тройной DES и аналогичные шифры — SL_High. ECC с 409 или более битами также является SL_High.
  • Highest не имеет эквивалентной силы. Он указывает на то, что криптопровайдер должен использовать самые надёжные доступные шифры (но не ниже SL_High).
SL_None Указывает, что безопасность не в порядке
SL_Integrity Необходимо как минимум получить защиту целостности
SL_Export Небходимы биты уровня экспорта или выше
SL_Baseline Должно быть 128 бит или больше
SL_High Должно быть больше 128 бит
SL_Highest SL_High или максимально возможный, в зависимости от того, что больше

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

orderedToDNString()

QCA_EXPORT QString QCA::orderedToDNString (const CertificateInfoOrdered & in)

Преобразует в строковый формат RFC 1779.

Параметры

in Информация о сертификате для преобразования

На него ссылается QCA::CertificateInfoOrdered::toString().

orderedDNOnly()

QCA_EXPORT CertificateInfoOrdered QCA::orderedDNOnly (const CertificateInfoOrdered & in)

Возвращает новый CertificateInfoOrdered, который содержит только типы отличительного имени (DN), найденные во входном объекте.

Параметры

in Информация о сертификате для извлечения

На него ссылается QCA::CertificateInfoOrdered::dnOnly().

makeFriendlyNames()

QCA_EXPORT QStringList QCA::makeFriendlyNames (const QList<Certificate> & list)

Создаёт список уникальных понятных имён среди списка сертификатов.

Параметры

list Список сертификатов, для которых требуется понятное имя

init() [1/2]

QCA_EXPORT void QCA::init ()

Инициализация QCA.

Этот вызов обычно не требуется, поскольку проще использовать Initializer.

init() [2/2]

QCA_EXPORT void QCA::init (MemoryMode m, int prealloc )

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

Параметры

m MemoryMode для использования
prealloc Объём памяти в килобайтах, который нужно выделить для безопасного хранения

deinit()

QCA_EXPORT void QCA::deinit ()

Выполняет очистку.

Эта процедура очищает QCA, включая выделенную память. Этот вызов обычно не требуется, поскольку проще использовать Initializer

haveSecureMemory()

QCA_EXPORT bool QCA::haveSecureMemory ()

Проверяет, доступна ли безопасная память для хранения.

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

haveSecureRandom()

QCA_EXPORT bool QCA::haveSecureRandom ()

Проверяет, доступен ли безопасный случайный выбор.

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

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

isSupported() [1/2]

QCA_EXPORT bool QCA::isSupported (const char * features, const QString & provider = QString() )

Проверка, доступна ли возможность (алгоритм).

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

QCA::init();
if(!QCA::isSupported("sha1"))
        printf("SHA1 не поддерживается!\n");
else
{
    QString result = QCA::SHA1::hashToString(myString);
    printf("sha1(\"%s\") = [%s]\n", myString.data(), qPrintable(result));
}

Параметры

features Название возможности для проверки
provider Если указан, проверяет возможность только у этого конкретного криптопровайдера. Если не указан или предоставлен как пустая строка, проверяет возможности всех доступных криптопровайдеров

Возвращает true, если возможность доступна, иначе false.

Следует обратить внимание, что можно проверить комбинацию возможностей, используя список, разделённый запятыми:

QCA::isSupported("sha1,md5"):

такой вызов метода вернёт true, если присутствуют все перечисленные возможности.

Примеры

aes-cmac.cpp, certtest.cpp, ciphertest.cpp, hashtest.cpp, mactest.cpp, md5crypt.cpp, publickeyexample.cpp, rsatest.cpp, saslclient.cpp, saslserver.cpp, sslservtest.cpp и ssltest.cpp.

isSupported() [2/2]

QCA_EXPORT bool QCA::isSupported (const QStringList & features, const QString & provider = QString() )

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

Параметры

features Список возможностей для тестирования
provider Если указан, проверяет возможность только у этого конкретного криптопровайдера. Если не указан или предоставлен как пустая строка, проверяет возможности всех доступных криптопровайдеров

supportedFeatures()

QCA_EXPORT QStringList QCA::supportedFeatures ()

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

Возвращает список, содержащий названия функциональностей.

Следующий код записывает список стандартных функциональностей:

QStringList capabilities;
capabilities = QCA::supportedFeatures();
std::cout << "Поддерживаются:" << capabilities.join(",") << std::endl;

См. также isSupported(const char *features)

isSupported(const QStringList &features)

defaultFeatures()

defaultFeatures()

QCA_EXPORT QStringList QCA::defaultFeatures ()

Создаёт список встроенных функциональностей.

Он отличается от supportedFeatures() тем, что не включает функциональности, предоставляемые плагинами.

Возвращает список, содержащий названия функциональностей.

Следующий код записывает список стандартных функциональностей:

QStringList capabilities;
capabilities = QCA::defaultFeatures();
std::cout << "По умолчанию:" << capabilities.join(",") << std::endl;

См. также isSupported

supportedFeatures()

Примеры

providertest.cpp.

insertProvider()

QCA_EXPORT bool QCA::insertProvider (Provider * p, int priority = 0)

Добавить криптопровайдера в текущий список криптопровайдеров.

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

QCA становится владельцем криптопровайдера.

Параметры

p Указатель на объект Provider, который необходимо настроить
priority Уровень приоритета, который нужно установить криптопровайдеру

Возвращает true, если криптопровайдер добавлен, и false, если криптопровайдер не добавлен (сбой).

См. также unloadProvider для выгрузки указанных криптопровайдеров

setProviderPriority для описания системы приоритета криптопровайдера

Примеры

aes-cmac.cpp.

unloadProvider()

QCA_EXPORT bool QCA::unloadProvider (const QString & name)

Выгрузить указанного криптопровайдера.

Указанный криптопровайдер удаляется, в том числе из списка криптопровайдеров. Если криптопровайдер с таким именем не найден, этот вызов завершается ошибкой.

Параметры

name Имя криптопровайдера

Возвращает true, если криптопровайдер выгружен, и false, если криптопровайдер не может быть найден.

См. также insertProvider для добавления криптопровайдеров

setProviderPriority()

QCA_EXPORT void QCA::setProviderPriority (const QString & name, int priority )

Изменить приоритет указанного криптопровайдера.

QCA поддерживает несколько криптопровайдеров, и если несколько криптопровайдеров поддерживают один и тот же алгоритм, ему необходимо выбирать между ними. Это можно сделать во время создания экземпляра объекта (указав имя криптопровайдера, который следует использовать). В качестве альтернативы можно указать относительный уровень приоритета на уровне приложения, используя этот вызов.

Приоритет используется во время создания экземпляра объекта. Криптопровайдер выбирается по следующим правилам:

  • если назначен конкретный криптопровайдер и этот криптопровайдер поддерживает требуемый алгоритм, то используется назначенный криптопровайдер.
  • если криптопровайдер не назначен или не поддерживает требуемый алгоритм, то будет использоваться криптопровайдер с наименьшим номером приоритета, если этот криптопровайдер поддерживает алгоритм.
  • если криптопровайдер с самым низким номером приоритета не поддерживает требуемый алгоритм, будет использован криптопровайдер со следующим самым низким номером приоритета, и так далее до криптопровайдера с самым большим номером приоритета.
  • если ни один из криптопровайдеров плагинов не поддерживает требуемый алгоритм, будет использован криптопровайдер по умолчанию (встроенный).

Параметры

name Имя криптопровайдера
priority Новый приоритет криптопровайдера. В особом случае, если будет передан -1, то этот криптопровайдер получит тот же приоритет, что и последний добавленный криптопровайдер, или его приоритет был установлен с помощью этого вызова

См. также providerPriority

providerPriority()

QCA_EXPORT int QCA::providerPriority (const QString & name)

Возвращает приоритет указанного криптопровайдера.

Имя криптопровайдера (например, «qca-ossl») используется для поиска текущего приоритета, связанного с этим криптопровайдером. Если криптопровайдер не найден (или что-то ещё пошло не так), возвращается -1.

Параметры

name Имя криптопровайдера

Возвращает текущий уровень приоритета.

См. также setProviderPriority для описания системы приоритета криптопровайдера

providers()

QCA_EXPORT ProviderList QCA::providers ()

Возвращает список текущих криптопровайдеров.

Текущие криптопровайдеры плагинов представлены в виде списка, который можно перебирать с помощью ProviderListIterator.

См. также ProviderList

ProviderListIterator

Примеры

providertest.cpp.

findProvider()

QCA_EXPORT Provider* QCA::findProvider (const QString & name)

Возвращает названного криптопровайдера или 0, если он не найден.

Параметры

name Имя криптопровайдера для поиска

defaultProvider()

QCA_EXPORT Provider* QCA::defaultProvider ()

Возвращает криптопровайдера по умолчанию.

pluginPaths()

QCA_EXPORT QStringList QCA::pluginPaths ()

Получает пути к плагинам.

Результат состоит из:

  1. QCA_PLUGIN_PATH, если установлено.
  2. QCoreApplication::libraryPaths() .
  3. Каталог, в который были установлены плагины.

QCA_PLUGIN_PATH — это список путей, например PATH или QT_PLUGIN_PATH. Он использует разделитель системного пути. ";" в Windows и ":" в Unix.

Этот метод был введён в QCA 2.1.

scanForPlugins()

QCA_EXPORT void QCA::scanForPlugins ()

Ищет новые плагины.

Примеры

providertest.cpp.

unloadAllPlugins()

QCA_EXPORT void QCA::unloadAllPlugins ()

Выгружает текущие плагины.

pluginDiagnosticText()

QCA_EXPORT QString QCA::pluginDiagnosticText ()

Получает диагностический текст плагина.

clearPluginDiagnosticText()

QCA_EXPORT void QCA::clearPluginDiagnosticText ()

Очищает диагностический текст плагина.

appendPluginDiagnosticText()

QCA_EXPORT void QCA::appendPluginDiagnosticText (const QString & text)

Добавляет диагностический текст плагина.

Этот метод должны вызывать только криптопровайдеры.

Параметры

text Диагностическое сообщение, которое нужно добавить

setProperty()

QCA_EXPORT void QCA::setProperty (const QString & name, const QVariant & value )

Устанавливает глобальное свойство.

Параметры

name Название свойства
value Значение, которое нужно установить свойству

См. также getProperty

getProperty()

QCA_EXPORT QVariant QCA::getProperty (const QString & name)

Получает глобальное свойство.

Параметры

name Название свойства для поиска

См. также setProperty

setProviderConfig()

QCA_EXPORT void QCA::setProviderConfig (const QString & name, const QVariantMap & config )

Устанавливает конфигурацию криптопровайдера.

Допустимые типы значений: QString, int, bool

Параметры

name Имя криптопровайдера для настройки конфигурации
config Конфигурация

getProviderConfig()

QCA_EXPORT QVariantMap QCA::getProviderConfig (const QString & name)

Получает конфигурацию криптопровайдера.

Параметры

name Имя криптопровайдера, для которого нужно получить конфигурацию

saveProviderConfig()

QCA_EXPORT void QCA::saveProviderConfig (const QString & name)

Сохранить конфигурацию криптопровайдера в постоянном хранилище.

Параметры

name Имя криптопровайдера, конфигурация которого будет сохранена

globalRandomProvider()

QCA_EXPORT QString QCA::globalRandomProvider ()

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

setGlobalRandomProvider()

QCA_EXPORT void QCA::setGlobalRandomProvider (const QString & provider)

Изменить глобального криптопровайдера случайных чисел.

Возможности Random в QCA предоставляются как часть встроенной функциональности, однако при необходимости генератор можно изменить.

Параметры

provider Имя криптопровайдера, который будет использоваться в качестве глобального криптопровайдера случайных чисел

logger()

QCA_EXPORT Logger* QCA::logger ()

Возвращает ссылку на QCA Logger, который используется для диагностики и регистрации ошибок.

Системный Logger создаётся автоматически при запуске.

haveSystemStore()

QCA_EXPORT bool QCA::haveSystemStore ()

Проверка, может ли QCA получить доступ к сертификатам корневого ЦС.

Если корневые сертификаты доступны, эта функция возвращает true, иначе — false.

См. также systemStore

Примеры

certtest.cpp и ssltest.cpp.

systemStore()

QCA_EXPORT CertificateCollection QCA::systemStore ()

Возвращает общесистемные сертификаты корневого центра сертификации (CA).

Многие операционные системы (или дистрибутивы в системах типа Linux) поставляются с некоторыми доверенными сертификатами. Обычно это корневые сертификаты для основных центров сертификации (например, Verisign, Comodo) и некоторые дополнительные сертификаты, которые используются для обновлений системы. Они предоставляются по-разному для разных систем.

Этот метод предоставляет общий способ доступа к системным сертификатам. Есть и другие способы доступа к сертификатам — см. различные методы ввода-вывода (например, fromDER() и fromPEM()) в классах Certificate и CertificateCollection.

Примечание.

Доступность системных сертификатов зависит от того, как был собран QCA. Можно проверить, доступны ли системные сертификаты, используя метод haveSystemStore().

Примеры

certtest.cpp, ssltest.cpp и tlssocket.cpp.

appName()

QCA_EXPORT QString QCA::appName ()

Возвращает имя приложения, которое будет использоваться в режиме сервера SASL.

Имя приложения используется SASL в режиме сервера, так как некоторые системы могут иметь разные политики безопасности в зависимости от приложения. Имя приложения по умолчанию — qca.

setAppName()

QCA_EXPORT void QCA::setAppName (const QString & name)

Устанавливает имя приложения, которое будет использоваться в режиме сервера SASL.

Имя приложения используется SASL в режиме сервера, так как некоторые системы могут иметь разные политики безопасности в зависимости от приложения. Оно должно быть установлено до использования объектов SASL и не может быть изменено позже.

Параметры

name Строка с именем для использования в режиме сервера SASL

Примеры

saslserver.cpp.

arrayToHex()

QCA_EXPORT QString QCA::arrayToHex (const QByteArray & array)

Преобразует массив байтов в шестнадцатеричное представление для печати.

Это удобный метод для преобразования произвольного QByteArray в версию для печати.

QByteArray test(10);
test.fill('a');
// 0x61 — это 'a' в ASCII
if (QString("61616161616161616161") == QCA::arrayToHex(test) )
{
printf ("arrayToHex успешно\n");
}

Параметры

array Массив, который нужно преобразовать

Возвращает версию для печати.

Примеры

aes-cmac.cpp, ciphertest.cpp, hashtest.cpp, mactest.cpp и rsatest.cpp.

hexToArray()

QCA_EXPORT QByteArray QCA::hexToArray (const QString & hexString)

Преобразует QString, содержащую шестнадцатеричное представление массива байтов, в QByteArray.

Это удобный метод для преобразования версии для печати в QByteArray — фактически обратный QCA::arrayToHex.

QCA::init();
QByteArray test(10);
 
test.fill('b'); // 0x62 в hexadecimal
test[7] = 0x00; // может обрабатывать строки с null
 
if (QCA::hexToArray(QString("62626262626262006262") ) == test )
{
printf ("hexToArray успешно\n");
}

Параметры

hexString Строка, содержащая версию для печати, которую нужно преобразовать

Возвращает эквивалентный QByteArray.

Примеры

aes-cmac.cpp.

arrayToBase64()

QCA_EXPORT QString QCA::arrayToBase64 (const QByteArray & array)

Преобразует массив байтов в версию для печати base64.

Это удобный метод для преобразования произвольного QByteArray в версию для печати.

Параметры

array Массив, который нужно преобразовать

Возвращает версию для печати.

base64ToArray()

QCA_EXPORT QByteArray QCA::base64ToArray (const QString & base64String)

Преобразует QString, содержащий представление массива байтов в формате base64, в QByteArray.

Это удобный метод для преобразования версии для печати в QByteArray — фактически обратный QCA::arrayToBase64.

Параметры

base64String Строка, содержащая версию для печати, которую нужно преобразовать

Возвращает эквивалентный QByteArray.

emsa3Encode()

QCA_EXPORT QByteArray QCA::emsa3Encode (const QString & hashName, const QByteArray & digest, int size = -1)

Шифрует результат хеширования в формате EMSA3 (PKCS#1).

Это удобный метод для криптопровайдеров, которые имеют доступ только к необработанной подписи RSA (в основном криптопровайдеры смарт-карт). Этот метод в QCA является встроенным и не использует криптопровайдера. Поддерживаются SHA1, MD5, MD2 и RIPEMD160.

Параметры

hashName Тип хеша, использованный для создания дайджеста
digest Дайджест для кодирования в формате EMSA3
size Желаемый размер вывода кодирования (-1 для автоматического размера)

operator+()

QCA_EXPORT const SecureArray QCA::operator+ (const SecureArray & a, const SecureArray & b )

Возвращает массив, который является результатом объединения a и b.

Параметры

a Строка, которую нужно поместить в начало результата
b Строка, помещаемая в конец результата

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

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