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

Класс SecureLayer(абстрактный)

Сигналы

void closed ()
void error ()
void readyRead ()
void readyRead ()

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

virtual int bytesAvailable () const =0
virtual int bytesOutgoingAvailable () const =0
virtual void close ()
virtual int convertBytesWritten (qint64 encryptedBytes)=0
virtual bool isClosable () const
virtual QByteArray read ()=0
virtual QByteArray readOutgoing (int *plainBytes=nullptr)=0
virtual QByteArray readUnprocessed ()
SecureLayer (QObject *parent=nullptr)
virtual void write (const QByteArray &a)=0
virtual void writeIncoming (const QByteArray &a)=0

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

Абстрактный интерфейс к слою безопасности.

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

Концепция использования класса состоит в том, что после некоторой начальной настройки, приложение может передать данные объекту, реализующему интерфейс SecureLayer, путём вызова метода write() для шифрования (или защиты любым другим способом в зависимости от настроек). Объект, реализующий интерфейс SecureLayer, затем испускает сигнал readyReadOutgoing(), а приложение использует метод readOutgoing() для получения зашифрованных данных. Зашифрованные данные затем высылаются по сети.

Кода зашифрованные данные приходят из сети, приложение вызывает метод writeIncoming() на объекте, реализующем интерфейс SecureLayer. Некоторое время спустя объект, реализующий интерфейс SecureLayer, может испустить сигналreadyRead(). При получении данного сигнала приложение использует метод read(), чтобы получить расшифрованные данные.

Стоит обратить внимание, что иногда реализации SecureLayer могут отправлять данные между собой через сетевой интерфейс, даже если не происходит обмена данными между приложением и объектом, реализующем интерфейс SecureLayer. Этот происходит из-за первончальных переговоров, которые расходуют сетевой трафик для достижения согласия по конфигурации шифрования, а также для других накладных расходов, связанных с поддержанием безопасного соединения.

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

SecureLayer()

QCA::SecureLayer::SecureLayer (QObject * parent = nullptr)

Конструктор для абстрактного безопасного слоя взаимодействия.

Параметры

parent Родительский объект для этого экземпляра

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

isClosable()

virtual bool QCA::SecureLayer::isClosable () const virtual

Возвращает true, если слой предоставляет значимую реализацию метода «close».

Реализовано в QCA::TLS.

bytesAvailable()

virtual int QCA::SecureLayer::bytesAvailable () const pure virtual

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

Реализовано в QCA::SASL и QCA::TLS.

bytesOutgoingAvailable()

virtual int QCA::SecureLayer::bytesOutgoingAvailable () const pure virtual

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

Реализовано в QCA::SASL и QCA::TLS.

close()

virtual void QCA::SecureLayer::close () virtual

Закрывает сетевое соединение.

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

См. также Метод isClosable() может быть использован для проверки возможности закрытия сетевого соединения.

Реализовано в QCA::TLS.

write()

virtual void QCA::SecureLayer::write (const QByteArray & a) pure virtual

Метод записывает незашифрованные данные в объект, реализующий интерфейс SecureLayer.

Обычно данный метод вызывается на стороне приложения.

Параметры

a Источник данных со стороны приложения

Реализовано в QCA::SASL и QCA::TLS.

read()

virtual QByteArray QCA::SecureLayer::read () pure virtual

Метод считывает расшифрованные данные из объекта, реализующего интерфейс SecureLayer.

Обычно данный метод вызывается на стороне приложения после получения сигнала readyRead().

Реализовано в QCA::SASL и QCA::TLS.

writeIncoming()

virtual void QCA::SecureLayer::writeIncoming (const QByteArray & a) pure virtual

Метод принимает закодированные (обычно зашифрованные) данные для обработки.

Обычно данный метод вызывается после получения информации из сетевого сокета, например, через использование метода QTcpSocket::readAll(). Чтение из сокета осуществляется после получения сигнала о том, что в нём доступны данные для чтения.

Параметры

a Массив ByteArray, из которого получаются данные со стороны сетевого взаимодействия

Реализовано в QCA::SASL и QCA::TLS.

readOutgoing()

virtual QByteArray QCA::SecureLayer::readOutgoing (int * plainBytes = nullptr) pure virtual

Метод предоставляет закодированные (обычно зашифрованные) данные.

Обычно данный метод вызывается, чтобы получить данные для записи в сетевой сокет, например для передачи в QTcepSocker::write(). Данный метод обычно вызывается после получения сигнала readyReadOutgoing().

Параметры

plainBytes Количество прочитанных байтов

Реализовано в QCA::SASL и QCA::TLS.

readUnprocessed()

virtual QByteArray QCA::SecureLayer::readUnprocessed () virtual

Метод позволяет считывать данные без выполнения дешифрования.

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

Реализовано в QCA::TLS.

convertBytesWritten()

virtual int QCA::SecureLayer::convertBytesWritten (qint64encryptedBytes) pure virtual

Преобразует уже записанные зашифрованные байты в байты простого текста.

Параметры

encryptedBytes Количество байтов для преобразования

Реализовано в QCA::SASL и QCA::TLS.

readyRead

void QCA::SecureLayer::readyRead () signal

Сигнал испускается, когда SecureLayer расшифровал данные на стороне приложения, и они доступны для чтения.

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

Примеры

saslclient.cpp, saslserver.cpp, sslservtest.cpp, ssltest.cpp и tlssocket.cpp.

readyReadOutgoing

void QCA::SecureLayer::readyReadOutgoing () signal

Сигнал испускается, когда SecureLayer зашифровал данные на стороне сетевого взаимодействия, и данные готовы для чтения.

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

Примеры

saslclient.cpp, saslserver.cpp, sslservtest.cpp, ssltest.cpp и tlssocket.cpp.

closed

void QCA::SecureLayer::closed () signal

Сигнал испускается, когда SecureLayer закрывает сетевое соединение.

Примеры

sslservtest.cpp, ssltest.cpp и tlssocket.cpp.

error

void QCA::SecureLayer::error () signal

Сигнал испускается при обнаружении ошибки.

Можно определить тип ошибки с помощью метода errorCode().

Примеры

saslclient.cpp, saslserver.cpp, sslservtest.cpp, ssltest.cpp и tlssocket.cpp.

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

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