Класс SASLContext(абстрактный)
Классы
class | HostPort |
Публичные типы
enum | Result { Success , Error , Params , AuthCheck , Continue } |
Сигналы
void | resultsReady () |
Публичные функции
virtual SASL::AuthCondition | authCondition () const =0 |
virtual QString | authzid () const =0 |
virtual SASL::Params | clientParams () const =0 |
virtual int | encoded () const =0 |
virtual bool | haveClientInit () const =0 |
virtual QString | mech () const =0 |
virtual QStringList | mechlist () const =0 |
virtual void | nextStep (const QByteArray &from_net)=0 |
virtual QStringList | realmlist () const =0 |
virtual void | reset ()=0 |
virtual Result | result () const =0 |
SASLContext (Provider *p) | |
virtual void | serverFirstStep (const QString &mech, const QByteArray *clientInit)=0 |
virtual void | setClientParams (const QString *user, const QString *authzid, const SecureArray *pass, const QString *realm)=0 |
virtual void | setConstraints (SASL::AuthFlags f, int minSSF, int maxSSF)=0 |
virtual void | setup (const QString &service, const QString &host, const HostPort *local, const HostPort *remote, const QString &ext_id, int ext_ssf)=0 |
virtual int | ssf () const =0 |
virtual void | startClient (const QStringList &mechlist, bool allowClientSendFirst)=0 |
virtual void | startServer (const QString &realm, bool disableServerSendLast)=0 |
virtual QByteArray | stepData () const =0 |
virtual QByteArray | to_app ()=0 |
virtual QByteArray | to_app ()=0 |
virtual void | tryAgain ()=0 |
virtual void | unprocessed ()=0 |
virtual QString | username () const =0 |
virtual bool | waitForResultsReady (int msecs)=0 |
Подробное описание
Криптопровайдер SASL.
Примечание.
Этот класс является частью интерфейса подключаемого модуля криптопровайдера и не должен использоваться приложениями напрямую. Возможно стоит использовать SASL вместо него.
Описание перечислений
Result
enum QCA::SASLContext::Result |
Результат операции SASL.
Success |
Операция завершена |
Error |
Операция провалена |
Params |
Для завершения аутентификации необходимы параметры |
AuthCheck |
Можно проверить логин клиента (только для сервера) |
Continue |
Для завершения аутентификации необходимы дополнительные шаги |
Описание конструкторов и деструктора
SASLContext()
QCA::SASLContext::SASLContext (Provider * p) | inline |
Стандартный конструктор.
Параметры
p | Объект Provider, связанный с этим контекстом |
Описание методов
reset()
virtual void QCA::SASLContext::reset () | pure virtual |
Сбрасывает объект в исходное состояние.
setup()
virtual void QCA::SASLContext::setup (const QString & service, const QString & host, const HostPort * local, const HostPort * remote, const QString & ext_id, int ext_ssf ) | pure virtual |
Настраивает новый сеанс.
Эта функция будет вызываться перед любыми другими функциями конфигурации.
Параметры
service | Имя сетевой службы, предоставляемой этим приложением, которая может использоваться системой SASL для управления политиками. Примеры: "imap", "xmpp" |
host | Имя хоста, с которым приложение взаимодействует или которое использует |
local | Указатель на HostPort, представляющий локальный конец сетевого сокета, или 0 , если эта информация неизвестна или недоступна |
remote | Указатель на HostPort, представляющий одноранговый узел сетевого сокета, или 0 , если эта информация неизвестна или недоступна |
ext_id | Идентификатор, который будет использоваться для SASL EXTERNAL (только для клиента) |
ext_ssf | SSF внешнего канала аутентификации (только для клиента) |
setConstraints()
virtual void QCA::SASLContext::setConstraints (SASL::AuthFlags f, int minSSF, int maxSSF ) | pure virtual |
Устанавливает ограничения сеанса, используя значения SSF.
Этот метод будет вызываться перед startClient() или startServer().
Параметры
f | Флаги для использования |
minSSF | Минимальный допустимый коэффициент прочности |
maxSSF | Максимальный допустимый коэффициент прочности |
startClient()
virtual void QCA::SASLContext::startClient (const QStringList & mechlist, bool allowClientSendFirst ) | pure virtual |
Начинает сеанс в клиентском режиме с аутентификации.
Эта функция немедленно возвращается, и о завершении сигнализирует resultsReady().
По завершении будут действительны
result(),
mech(),
haveClientInit()
и
stepData().
Если
result()
имеет значение Success
, то сеанс теперь находится в подключённом состоянии.
Параметры
mechlist | Список механизмов |
allowClientSendFirst | Отправляет ли первое сообщение клиент (true ) или сервер (false ) |
startServer()
virtual void QCA::SASLContext::startServer (const QString & realm, bool disableServerSendLast ) | pure virtual |
Начинает сеанс в серверном режиме с аутентификации.
Эта функция немедленно возвращается, и о завершении сигнализирует resultsReady().
По завершении будут действительны
result()
и
mechlist().
Функция
result()
вернёт Success
или Error
. Если результат — Success
, то следующим будет вызван
serverFirstStep().
Параметры
realm | Область для аутентификации |
disableServerSendLast | Отправляет ли первое сообщение клиент (true ) или сервер (false ) |
serverFirstStep()
virtual void QCA::SASLContext::serverFirstStep (const QString & mech, const QByteArray * clientInit ) | pure virtual |
Завершает запуск сервера.
Эта функция немедленно возвращается, и о завершении сигнализирует resultsReady().
По завершении будут действительны
result()
и
stepData().
Если
result()
имеет значение Success
, то сеанс теперь находится в подключённом состоянии.
Параметры
mech | Механизм для использования |
clientInit | Исходные данные от клиента, или 0 , если таких данных нет |
nextStep()
virtual void QCA::SASLContext::nextStep (const QByteArray & from_net) | pure virtual |
Выполняет еще один шаг аутентификации SASL.
Эта функция немедленно возвращается, и о завершении сигнализирует resultsReady().
По завершении будут действительны result() и stepData().
Параметры
from_net | Данные с «другой стороны» протокола, которые будут использоваться для следующего шага |
tryAgain()
virtual void QCA::SASLContext::tryAgain () | pure virtual |
Повторяет попытку последней операции.
Метод используется, если результатом операции, полученным с помощью
result(),
является Params
или AuthCheck
.
Эта функция немедленно возвращается, и о завершении сигнализирует resultsReady().
По завершении будут действительны result() и stepData().
update()
virtual void QCA::SASLContext::update (const QByteArray & from_net, const QByteArray & from_net,) | pure virtual |
Выполняет одну итерацию обработки уровня безопасности SASL.
Эта функция немедленно возвращается, и о завершении сигнализирует resultsReady().
По завершении будут действительны
result(),
to_net(),
encoded()
и
to_app().
Функция
result()
вернёт Success
или Error
.
Параметры
from_net | Данные с «другой стороны» протокола |
from_app | Данные из приложения протокола |
waitForResultsReady()
virtual bool QCA::SASLContext::waitForResultsReady (int msecs) | pure virtual |
Ждёт завершения операции startClient(), startServer(), serverFirstStep(), nextStep(), tryAgain() или update().
В этом случае сигнал
resultsReady()
не выдаётся. Возвращает true
, если операция завершена, или false
, если время ожидания этой
функции истекло.
Эта функция блокирующая.
Параметры
msecs | Количество миллисекунд ожидания (-1 , чтобы ждать вечно) |
result()
virtual Result QCA::SASLContext::result () const | pure virtual |
Возвращает код результата операции.
mechlist()
virtual QStringList QCA::SASLContext::mechlist () const | pure virtual |
Возвращает список механизмов (только в серверном режиме).
mech()
virtual QString QCA::SASLContext::mech () const | pure virtual |
Возвращает выбранный механизм.
haveClientInit()
virtual bool QCA::SASLContext::haveClientInit () const | pure virtual |
Возвращает true
, если у клиента имеются данные для инициализации.
stepData()
virtual QByteArray QCA::SASLContext::stepData () const | pure virtual |
Возвращает данные аутентификации для передачи по сети.
to_net()
virtual QByteArray QCA::SASLContext::to_net () | pure virtual |
Возвращает данные, которые должны быть отправлены по сети (для уровня безопасности).
encoded()
virtual int QCA::SASLContext::encoded () const | pure virtual |
Возвращает количество байтов данных открытого текста, закодированных внутри to_net().
to_app()
virtual QByteArray QCA::SASLContext::to_app () | pure virtual |
Возвращает данные, которые декодируются из сети и должны обрабатываться приложением.
ssf()
virtual int QCA::SASLContext::ssf () const | pure virtual |
Возвращает SSF активного сеанса SASL.
Эта функциональность действительна только после успешной аутентификации.
authCondition()
virtual SASL::AuthCondition QCA::SASLContext::authCondition () const | pure virtual |
Возвращает причину сбоя, если аутентификация не удалась.
Эта функциональность действительна только после неудачной аутентификации.
clientParams()
virtual SASL::Params QCA::SASLContext::clientParams () const | pure virtual |
Возвращает необходимые/необязательные параметры клиента.
Эта функциональность действительна только после получения кода результата Params
.
setClientParams()
virtual void QCA::SASLContext::setClientParams (const QString * user, const QString * authzid, const SecureArray * pass, const QString * realm ) | pure virtual |
Устанавливает некоторые параметры клиента (нужно ввести 0
, чтобы не устанавливать поле).
Параметры
user | Имя пользователя |
authzid | Имя/роль авторизации |
pass | Пароль |
realm | Область для аутентификации |
realmlist()
virtual QStringList QCA::SASLContext::realmlist () const | pure virtual |
Возвращает список областей (только в клиентском режиме).
Результат действителен только после получения кода результата Params
, и когда
SASL::Params::canSendRealm
равно true
.
username()
virtual QString QCA::SASLContext::username () const | pure virtual |
Возвращает имя пользователя, пытающегося пройти аутентификацию (только в режиме сервера).
Эта функциональность действительна только после получения кода результата AuthCheck
.
authzid()
virtual QString QCA::SASLContext::authzid () const | pure virtual |
Возвращает authzid
пользователя, пытающегося авторизоваться (только в режиме сервера).
Эта функциональность действительна только после получения кода результата AuthCheck
.
resultsReady
void QCA::SASLContext::resultsReady () | signal |
Сигнал испускается, когда операция startClient(), startServer(), serverFirstStep(), nextStep(), tryAgain() или update() завершилась.