Класс TLSContext(абстрактный)
Классы
class | SessionInfo |
Публичные типы
enum | Result { Success , Error , Continue } |
Сигналы
void | dtlsTimeout () |
void | resultsReady () |
Публичные функции
virtual bool | canCompress () const =0 |
virtual bool | canSetHostName () const =0 |
virtual bool | certificateRequested () const =0 |
virtual bool | clientHelloReceived () const =0 |
virtual int | encoded () const =0 |
virtual bool | eof () const =0 |
virtual QString | hostName () const =0 |
virtual QList<CertificateInfoOrdered> | issuerList () const =0 |
virtual int | maxSSF () const =0 |
virtual CertificateChain | peerCertificateChain () const =0 |
virtual Validity | peerCertificateValidity () const =0 |
virtual void | reset ()=0 |
virtual Result | result () const =0 |
virtual bool | serverHelloReceived () const =0 |
virtual SessionInfo | sessionInfo () const =0 |
virtual void | setCertificate (const CertificateChain &cert, const PrivateKey &key)=0 |
virtual void | setConstraints (const QStringList &cipherSuiteList)=0 |
virtual void | setConstraints (int minSSF, int maxSSF)=0 |
virtual void | setIssuerList (const QList<CertificateInfoOrdered> &issuerList)=0 |
virtual void | setMTU (int size) |
virtual void | setSessionId (const TLSSessionContext &id)=0 |
virtual void | setTrustedCertificates (const CertificateCollection &trusted)=0 |
virtual void | setup (bool serverMode, const QString &hostName, bool compress)=0 |
virtual void | shutdown ()=0 |
virtual void | start ()=0 |
virtual QStringList | supportedCipherSuites (const TLS::Version &version) const =0 |
TLSContext (Provider *p, const QString &type) | |
virtual QByteArray | to_app ()=0 |
virtual QByteArray | to_app ()=0 |
virtual QByteArray | to_net ()=0 |
virtual void | unprocessed ()=0 |
virtual bool | waitForResultsReady (int msecs)=0 |
Подробное описание
Криптопровайдер TLS.
Примечание.
Этот класс является частью интерфейса подключаемого модуля криптопровайдера и не должен использоваться приложениями напрямую. Возможно стоит использовать TLS вместо него.
Описание перечислений
Result
enum QCA::TLSContext::Result |
Результат операции TLS.
Success |
Операция завершена |
Error |
Операция провалена |
Continue |
Для завершения операции требуется больше данных |
Описание конструкторов и деструктора
TLSContext()
QCA::TLSContext::TLSContext (Provider * p, const QString & type ) | inline |
Стандартный конструктор.
Параметры
p | Объект Provider, связанный с этим контекстом |
type | Название типа функциональности, которая поддерживается этим контекстом |
Описание методов
reset()
virtual void QCA::TLSContext::reset () | pure virtual |
Сбрасывает объект в исходное состояние.
supportedCipherSuites()
virtual QStringList QCA::TLSContext::supportedCipherSuites (const TLS::Version & version) const | pure virtual |
Возвращает список поддерживаемых наборов шифров для указанной версии SSL/TLS.
Наборы шифров указываются в виде строк, например: «TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA» (без кавычек).
Параметры
version | Версия TLS для поиска |
canCompress()
virtual bool QCA::TLSContext::canCompress () const | pure virtual |
Возвращает true
, если криптопровайдер поддерживает сжатие.
canSetHostName()
virtual bool QCA::TLSContext::canSetHostName () const | pure virtual |
Возвращает true
, если криптопровайдер поддерживает указание имени сервера.
maxSSF()
virtual int QCA::TLSContext::maxSSF () const | pure virtual |
Возвращает максимальный SSF, поддерживаемый этим криптопровайдером.
setup()
virtual void QCA::TLSContext::setup (bool serverMode, const QString & hostName, bool compress ) | pure virtual |
Настраивает новый сеанс.
Эта функция будет вызываться перед любыми другими функциями конфигурации.
Параметры
serverMode | Работает как сервер (true ) или как клиент (false ) |
hostName | Имя хоста для использования |
compress | Следует ли сжимать (true ) или нет (false ) |
setConstraints() [1/2]
virtual void QCA::TLSContext::setConstraints (int minSSF, int maxSSF ) | pure virtual |
Устанавливает ограничения сеанса, используя значения SSF.
Эта функция будет вызываться перед start().
Параметры
minSSF | Минимальный допустимый коэффициент прочности |
maxSSF | Максимальный допустимый коэффициент прочности |
setConstraints() [2/2]
virtual void QCA::TLSContext::setConstraints (const QStringList & cipherSuiteList) | pure virtual |
Это перегруженная функция, предоставленная для удобства. Она отличается от вышеупомянутой функции только тем, какие аргументы она принимает. Устанавливает ограничения сеанса, используя список шифров.
Эта функция будет вызываться перед start().
Параметры
cipherSuiteList | Список комплектов шифров, которые могут использоваться для этого сеанса |
См. также supportedCipherSuites
setTrustedCertificates()
virtual void QCA::TLSContext::setTrustedCertificates (const CertificateCollection & trusted) | pure virtual |
Устанавливает список доверенных сертификатов.
Эта функция может быть вызвана в любое время.
Параметры
trusted | Используемые доверенные сертификаты и CRL |
setIssuerList()
virtual void QCA::TLSContext::setIssuerList (const QList<CertificateInfoOrdered> & issuerList) | pure virtual |
Устанавливает список допустимых издателей.
Эта функция может быть вызвана в любое время.
Эта функция предназначена только для режима сервера.
Параметры
issuerList | Список издателей, которые могут быть использованы |
setCertificate()
virtual void QCA::TLSContext::setCertificate (const CertificateChain & cert, const PrivateKey & key ) | pure virtual |
Устанавливает локальный сертификат.
Эта функция может быть вызвана в любое время.
Параметры
cert | Сертификат и связанная с ним цепочка доверия |
key | Закрытый ключ для локального сертификата |
setSessionId()
virtual void QCA::TLSContext::setSessionId (const TLSSessionContext & id) | pure virtual |
Устанавливает идентификатор сеанса TLS для возобновления сеанса.
Эта функция будет вызываться перед start().
Параметры
id | Идентификатор сеанса |
shutdown()
virtual void QCA::TLSContext::shutdown () | pure virtual |
Устанавливает сеанс в состояние выключения.
Фактическое завершение работы произойдёт при следующем вызове update().
Эта функция предназначена только для обычного
TLS (не для DTLS
).
setMTU()
virtual void QCA::TLSContext::setMTU (int size) | virtual |
Устанавливает максимальный размер блока передачи.
Эта функция предназначена только для DTLS
.
Параметры
size | Максимальное количество байтов в датаграмме |
start()
virtual void QCA::TLSContext::start () | pure virtual |
Начинает сеанс с «рукопожатия».
Эта функция немедленно возвращается, и о завершении сигнализирует resultsReady().
По завершении функция
result()
вернёт Success
, если сеанс TLS может
начаться, или Error
, если не удалось инициализировать подсистему
TLS. В случае успеха сеанс теперь
находится в состоянии рукопожатия, и
update()
будет вызываться повторно, пока сеанс не завершится.
update()
virtual void QCA::TLSContext::update (const QByteArray & from_net, const QByteArray & from_net,) | pure virtual |
Выполняет одну итерацию обработки сеанса TLS.
Эта функция немедленно возвращается, и о завершении сигнализирует resultsReady().
Если сеанс находится в состоянии рукопожатия, будут действительны
result()
и
to_net().
Если
result()
имеет значение Success
, то сеанс теперь находится в подключённом состоянии.
Если сеанс находится в выключенном состоянии, будут действительны
result()
и
to_net().
Если
result()
имеет значение Success
, сеанс завершён.
Если сеанс находится в подключённом состоянии, действительны
result(),
to_net(),
encoded(),
to_app()
и
eof().
Функция
result()
вернёт Success
или Error
. Следует обратить внимание, что
eof()
не применяется к DTLS
.
Для DTLS
эта функция работает с отдельными пакетами. Многие операции
update()
должны выполняться повторно для обмена несколькими пакетами.
Параметры
from_net | Данные с «другой стороны» соединения |
from_app | Данные из приложения протокола |
waitForResultsReady()
virtual bool QCA::TLSContext::waitForResultsReady (int msecs) | pure virtual |
Ожидает операции start() или update() для завершения.
В этом случае сигнал
resultsReady()
не выдаётся. Возвращает true
, если операция завершена, или false
, если время ожидания этой
функции истекло.
Эта функция блокирующая.
Параметры
msecs | Количество миллисекунд ожидания (-1 , чтобы ждать вечно) |
result()
virtual Result QCA::TLSContext::result () const | pure virtual |
Возвращает код результата операции.
to_net()
virtual QByteArray QCA::TLSContext::to_net () | pure virtual |
Возвращает данные, которые должны быть отправлены по сети.
encoded()
virtual int QCA::TLSContext::encoded () const | pure virtual |
Возвращает количество байтов данных открытого текста, закодированных внутри to_net().
to_app()
virtual QByteArray QCA::TLSContext::to_app () | pure virtual |
Возвращает данные, которые декодируются из сети и должны обрабатываться приложением.
eof()
virtual bool QCA::TLSContext::eof () const | pure virtual |
Возвращает true
, если второй участник закрыл поток.
clientHelloReceived()
virtual bool QCA::TLSContext::clientHelloReceived () const | pure virtual |
Возвращает true
, если получено приветствие клиента
TLS.
Результат действителен только в том случае, если рукопожатие выполняется или завершено.
serverHelloReceived()
virtual bool QCA::TLSContext::serverHelloReceived () const | pure virtual |
Возвращает true
, если получено приветствие от
TLS-сервера.
Результат действителен только в том случае, если рукопожатие выполняется или завершено.
hostName()
virtual QString QCA::TLSContext::hostName () const | pure virtual |
Возвращает имя хоста, отправленное клиентом с использованием имени сервера (только в режиме сервера)
Результат действителен только в том случае, если рукопожатие выполняется или завершено.
certificateRequested()
virtual bool QCA::TLSContext::certificateRequested () const | pure virtual |
Возвращает true
, если второй участник запрашивает сертификат.
Результат действителен только в том случае, если рукопожатие выполняется или завершено.
issuerList()
virtual QList<CertificateInfoOrdered> QCA::TLSContext::issuerList () const | pure virtual |
Возвращает список издателей, отправленный сервером (только в клиентском режиме).
Результат действителен только в том случае, если рукопожатие выполняется или завершено.
peerCertificateValidity()
virtual Validity QCA::TLSContext::peerCertificateValidity () const | pure virtual |
Возвращает QCA::Validity однорангового сертификата.
Результат действителен только в том случае, если рукопожатие завершено.
peerCertificateChain()
virtual CertificateChain QCA::TLSContext::peerCertificateChain () const | pure virtual |
Возвращает цепочку одноранговых сертификатов.
Результат действителен только в том случае, если рукопожатие завершено.
sessionInfo()
virtual SessionInfo QCA::TLSContext::sessionInfo () const | pure virtual |
Возвращает информацию об активном сеансе TLS.
Результат действителен только в том случае, если рукопожатие завершено.
unprocessed()
virtual QByteArray QCA::TLSContext::unprocessed () | pure virtual |
Возвращает любые необработанные сетевые входные данные.
Эта функциональность действительна только после успешного завершения работы.
resultsReady
void QCA::TLSContext::resultsReady () | signal |
Сигнал испускается, когда операция start() или update() будет завершена.
dtlsTimeout
void QCA::TLSContext::dtlsTimeout () | signal |
Сигнал испускается, чтобы заставить приложение вызывать update(), даже с пустыми аргументами.