CoAP Secure

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

Резюме

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

Typedefs

otHandleCoapSecureClientConnect )(bool aConnected, void *aContext) typedef
void(*
Этот указатель на функцию вызывается при изменении состояния подключения DTLS.

Функции

otCoapSecureAddBlockWiseResource ( otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
Эта функция добавляет блочный ресурс к серверу CoAP Secure.
otCoapSecureAddResource ( otInstance *aInstance, otCoapResource *aResource)
void
Эта функция добавляет ресурс к серверу CoAP Secure.
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.

Typedefs

otHandleCoapSecureClientConnect

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 Secure.

Подробности
Параметры
[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
Указатель на цепочку CA 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
истина, чтобы проверить сертификат узла.

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.