Безопасный CoAP

Этот модуль включает в себя функции, которые управляют связью CoAP Secure (CoAP через DTLS).

Краткое содержание

Функции в этом модуле доступны, когда функция CoAP Secure API ( OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE ) включена.

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

otHandleCoapSecureClientConnect )(bool aConnected, void *aContext) определение типа
void(*
Указатель вызывается при изменении состояния соединения DTLS.

Функции

otCoapSecureAddBlockWiseResource ( otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
Добавляет блочный ресурс на сервер CoAP Secure.
otCoapSecureAddResource ( otInstance *aInstance, otCoapResource *aResource)
void
Добавляет ресурс на защищенный сервер CoAP.
otCoapSecureConnect ( otInstance *aInstance, const otSockAddr *aSockAddr, otHandleCoapSecureClientConnect aHandler, void *aContext)
Инициализирует сеанс DTLS с узлом.
otCoapSecureDisconnect ( otInstance *aInstance)
void
Останавливает соединение DTLS.
otCoapSecureGetPeerCertificateBase64 ( otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength, size_t aCertBufferSize)
Возвращает одноранговый сертификат x509 в кодировке base64.
otCoapSecureIsConnected ( otInstance *aInstance)
bool
Указывает, подключен ли сеанс DTLS.
otCoapSecureIsConnectionActive ( otInstance *aInstance)
bool
Указывает, активен ли сеанс DTLS.
otCoapSecureRemoveBlockWiseResource ( otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
Удаляет блочный ресурс с сервера CoAP Secure.
otCoapSecureRemoveResource ( otInstance *aInstance, otCoapResource *aResource)
void
Удаляет ресурс с сервера CoAP Secure.
otCoapSecureSendRequest ( otInstance *aInstance, otMessage *aMessage, otCoapResponseHandler aHandler, void *aContext)
Отправляет запрос CoAP через безопасное соединение DTLS.
otCoapSecureSendRequestBlockWise ( otInstance *aInstance, otMessage *aMessage, otCoapResponseHandler aHandler, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook, otCoapBlockwiseReceiveHook aReceiveHook)
Отправляет запрос CoAP по блокам через безопасное соединение DTLS.
otCoapSecureSendResponse ( otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo)
Отправляет ответ CoAP с сервера CoAP Secure.
otCoapSecureSendResponseBlockWise ( otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook)
Отправляет ответ CoAP поблочно с сервера CoAP Secure.
otCoapSecureSetCaCertificateChain ( otInstance *aInstance, const uint8_t *aX509CaCertificateChain, uint32_t aX509CaCertChainLength)
void
Устанавливает доверенные центры сертификации верхнего уровня.
otCoapSecureSetCertificate ( otInstance *aInstance, const uint8_t *aX509Cert, uint32_t aX509Length, const uint8_t *aPrivateKey, uint32_t aPrivateKeyLength)
void
Задает сертификат X509 локального устройства с соответствующим закрытым ключом для сеанса DTLS с DTLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.
otCoapSecureSetClientConnectedCallback ( otInstance *aInstance, otHandleCoapSecureClientConnect aHandler, void *aContext)
void
Устанавливает подключенный обратный вызов, чтобы указать, когда клиент подключается к серверу CoAP Secure.
otCoapSecureSetDefaultHandler ( otInstance *aInstance, otCoapRequestHandler aHandler, void *aContext)
void
Задает обработчик по умолчанию для необработанных запросов CoAP Secure.
otCoapSecureSetPsk ( otInstance *aInstance, const uint8_t *aPsk, uint16_t aPskLength, const uint8_t *aPskIdentity, uint16_t aPskIdLength)
void
Задает предварительный общий ключ (PSK) и набор шифров DTLS_PSK_WITH_AES_128_CCM_8.
otCoapSecureSetSslAuthMode ( otInstance *aInstance, bool aVerifyPeerCertificate)
void
Устанавливает режим аутентификации для защищенного соединения coap.
otCoapSecureStart ( otInstance *aInstance, uint16_t aPort)
Запускает службу CoAP Secure.
otCoapSecureStop ( otInstance *aInstance)
void
Останавливает сервер CoAP Secure.

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

отхандлекоапсекуреклиентконнект

void(* otHandleCoapSecureClientConnect)(bool aConnected, void *aContext)

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

Подробности
Параметры
[in] aConnected
true, если соединение было установлено, false в противном случае.
[in] aContext
Указатель на произвольную контекстную информацию.

Функции

otCoapSecureAddBlockWiseResource

void otCoapSecureAddBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

Добавляет блочный ресурс на сервер CoAP Secure.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aResource
Указатель на ресурс.

otCoapSecureAddResource

void otCoapSecureAddResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

Добавляет ресурс на защищенный сервер CoAP.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aResource
Указатель на ресурс.

otCoapSecureConnect

otError otCoapSecureConnect(
  otInstance *aInstance,
  const otSockAddr *aSockAddr,
  otHandleCoapSecureClientConnect aHandler,
  void *aContext
)

Инициализирует сеанс DTLS с узлом.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aSockAddr
Указатель на адрес удаленного сокета.
[in] aHandler
Указатель на функцию, которая будет вызываться при изменении состояния соединения DTLS.
[in] aContext
Указатель на произвольную контекстную информацию.
Возвращаемые значения
OT_ERROR_NONE
Успешно запущено DTLS-соединение.

otCoapSecureDisconnect

void otCoapSecureDisconnect(
  otInstance *aInstance
)

Останавливает соединение DTLS.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.

otCoapSecureGetPeerCertificateBase64

otError otCoapSecureGetPeerCertificateBase64(
  otInstance *aInstance,
  unsigned char *aPeerCert,
  size_t *aCertLength,
  size_t aCertBufferSize
)

Возвращает одноранговый сертификат x509 в кодировке base64.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[out] aPeerCert
Указатель на буфер сертификата в кодировке base64.
[out] aCertLength
Длина сертификата однорангового узла в кодировке base64.
[in] aCertBufferSize
Размер буфера aPeerCert.
Возвращаемые значения
OT_ERROR_INVALID_STATE
Еще не подключен.
OT_ERROR_NONE
Успешно получить сертификат коллеги.
OT_ERROR_NO_BUFS
Не удается выделить память для сертификата.

otCoapSecureIsConnected

bool otCoapSecureIsConnected(
  otInstance *aInstance
)

Указывает, подключен ли сеанс DTLS.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
Возвращаемые значения
TRUE
Сеанс DTLS подключен.
FALSE
Сеанс DTLS не подключен.

otCoapSecureIsConnectionActive

bool otCoapSecureIsConnectionActive(
  otInstance *aInstance
)

Указывает, активен ли сеанс DTLS.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
Возвращаемые значения
TRUE
Если сеанс DTLS активен.
FALSE
Если сеанс DTLS не активен.

otCoapSecureRemoveBlockWiseResource

void otCoapSecureRemoveBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

Удаляет блочный ресурс с сервера CoAP Secure.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aResource
Указатель на ресурс.

otCoapSecureRemoveResource

void otCoapSecureRemoveResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

Удаляет ресурс с сервера CoAP Secure.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aResource
Указатель на ресурс.

otCoapSecureSendRequest

otError otCoapSecureSendRequest(
  otInstance *aInstance,
  otMessage *aMessage,
  otCoapResponseHandler aHandler,
  void *aContext
)

Отправляет запрос CoAP через безопасное соединение DTLS.

Если ожидается ответ на запрос, должна быть предоставлена ​​соответствующая информация о функции и контексте. Если ответа не ожидается, эти аргументы должны быть указателями NULL. Если идентификатор сообщения не был установлен в заголовке (равен 0), эта функция присвоит сообщению уникальный идентификатор сообщения.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aMessage
Ссылка на сообщение для отправки.
[in] aHandler
Указатель функции, который должен вызываться при получении ответа или по истечении времени ожидания.
[in] aContext
Указатель на произвольную контекстную информацию.
Возвращаемые значения
OT_ERROR_NONE
Сообщение CoAP успешно отправлено.
OT_ERROR_NO_BUFS
Не удалось выделить данные повторной передачи.
OT_ERROR_INVALID_STATE
DTLS-соединение не было инициализировано.

otCoapSecureSendRequestBlockWise

otError otCoapSecureSendRequestBlockWise(
  otInstance *aInstance,
  otMessage *aMessage,
  otCoapResponseHandler aHandler,
  void *aContext,
  otCoapBlockwiseTransmitHook aTransmitHook,
  otCoapBlockwiseReceiveHook aReceiveHook
)

Отправляет запрос CoAP по блокам через безопасное соединение DTLS.

Доступно, когда включена конфигурация OPENTHREAD_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE.

Если ожидается ответ на запрос, должна быть предоставлена ​​соответствующая информация о функции и контексте. Если ответа не ожидается, эти аргументы должны быть указателями NULL. Если идентификатор сообщения не был установлен в заголовке (равен 0), эта функция присвоит сообщению уникальный идентификатор сообщения.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aMessage
Ссылка на сообщение для отправки.
[in] aHandler
Указатель функции, который должен вызываться при получении ответа или по истечении времени ожидания.
[in] aContext
Указатель на произвольную контекстную информацию.
[in] aTransmitHook
Указатель функции, который вызывается при получении ответа Block1.
[in] aReceiveHook
Указатель функции, который вызывается при получении ответа Block2.
Возвращаемые значения
OT_ERROR_NONE
Сообщение CoAP успешно отправлено.
OT_ERROR_NO_BUFS
Не удалось выделить данные повторной передачи.
OT_ERROR_INVALID_STATE
DTLS-соединение не было инициализировано.

otCoapSecureSendResponse

otError otCoapSecureSendResponse(
  otInstance *aInstance,
  otMessage *aMessage,
  const otMessageInfo *aMessageInfo
)

Отправляет ответ CoAP с сервера CoAP Secure.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aMessage
Указатель на ответ CoAP для отправки.
[in] aMessageInfo
Указатель на информацию о сообщении, связанную с aMessage .
Возвращаемые значения
OT_ERROR_NONE
Успешно добавлено в очередь ответное сообщение CoAP.
OT_ERROR_NO_BUFS
Недостаточно доступных буферов для отправки ответа CoAP.

otCoapSecureSendResponseBlockWise

otError otCoapSecureSendResponseBlockWise(
  otInstance *aInstance,
  otMessage *aMessage,
  const otMessageInfo *aMessageInfo,
  void *aContext,
  otCoapBlockwiseTransmitHook aTransmitHook
)

Отправляет ответ CoAP поблочно с сервера CoAP Secure.

Доступно, когда включена конфигурация OPENTHREAD_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aMessage
Указатель на ответ CoAP для отправки.
[in] aMessageInfo
Указатель на информацию о сообщении, связанную с aMessage .
[in] aContext
Указатель на произвольную контекстную информацию. Может быть NULL, если не используется.
[in] aTransmitHook
Указатель функции, который вызывается при приеме запроса Block1.
Возвращаемые значения
OT_ERROR_NONE
Успешно добавлено в очередь ответное сообщение CoAP.
OT_ERROR_NO_BUFS
Недостаточно доступных буферов для отправки ответа CoAP.

otCoapSecureSetCaCertificateChain

void otCoapSecureSetCaCertificateChain(
  otInstance *aInstance,
  const uint8_t *aX509CaCertificateChain,
  uint32_t aX509CaCertChainLength
)

Устанавливает доверенные центры сертификации верхнего уровня.

Это необходимо для проверки сертификата узла.

Режим DTLS «ECDHE ECDSA с AES 128 CCM 8» для приложения CoAPS.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aX509CaCertificateChain
Указатель на цепочку ЦС X509 в формате PEM.
[in] aX509CaCertChainLength
Длина цепи.

otCoapSecureSetCertificate

void otCoapSecureSetCertificate(
  otInstance *aInstance,
  const uint8_t *aX509Cert,
  uint32_t aX509Length,
  const uint8_t *aPrivateKey,
  uint32_t aPrivateKeyLength
)

Задает сертификат X509 локального устройства с соответствующим закрытым ключом для сеанса DTLS с DTLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aX509Cert
Указатель на сертификат X509 в формате PEM.
[in] aX509Length
Длина сертификата.
[in] aPrivateKey
Указатель на закрытый ключ в формате PEM.
[in] aPrivateKeyLength
Длина закрытого ключа.

otCoapSecureSetClientConnectedCallback

void otCoapSecureSetClientConnectedCallback(
  otInstance *aInstance,
  otHandleCoapSecureClientConnect aHandler,
  void *aContext
)

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

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aHandler
Указатель на функцию, которая будет вызываться после установления соединения DTLS.
[in] aContext
Указатель на произвольную контекстную информацию. Может быть NULL, если не используется.

otCoapSecureSetDefaultHandler

void otCoapSecureSetDefaultHandler(
  otInstance *aInstance,
  otCoapRequestHandler aHandler,
  void *aContext
)

Задает обработчик по умолчанию для необработанных запросов CoAP Secure.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aHandler
Указатель функции, который должен вызываться при поступлении необработанного запроса.
[in] aContext
Указатель на произвольную контекстную информацию. Может быть NULL, если не используется.

otCoapSecureSetPsk

void otCoapSecureSetPsk(
  otInstance *aInstance,
  const uint8_t *aPsk,
  uint16_t aPskLength,
  const uint8_t *aPskIdentity,
  uint16_t aPskIdLength
)

Задает предварительный общий ключ (PSK) и набор шифров DTLS_PSK_WITH_AES_128_CCM_8.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aPsk
Указатель на PSK.
[in] aPskLength
Длина PSK.
[in] aPskIdentity
Идентификационное имя для PSK.
[in] aPskIdLength
Длина идентификатора PSK.

otCoapSecureSetSslAuthMode

void otCoapSecureSetSslAuthMode(
  otInstance *aInstance,
  bool aVerifyPeerCertificate
)

Устанавливает режим аутентификации для защищенного соединения coap.

Отключите или включите проверку однорангового сертификата. Должен вызываться перед стартом.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aVerifyPeerCertificate
true, чтобы проверить сертификат узла.

otCoapSecureStart

otError otCoapSecureStart(
  otInstance *aInstance,
  uint16_t aPort
)

Запускает службу CoAP Secure.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aPort
Локальный порт UDP для привязки.
Возвращаемые значения
OT_ERROR_NONE
Успешно запущен сервер CoAP Secure.

otCoapSecureStop

void otCoapSecureStop(
  otInstance *aInstance
)

Останавливает сервер CoAP Secure.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.

Макросы

OT_DEFAULT_COAP_SECURE_PORT

 OT_DEFAULT_COAP_SECURE_PORT 5684

Безопасный порт CoAP по умолчанию, как указано в RFC 7252.

Ресурсы

Разделы справочника по API OpenThread взяты из исходного кода, доступного на GitHub . Чтобы получить дополнительную информацию или внести свой вклад в нашу документацию, обратитесь к разделу Ресурсы .