CoAP Secure

Ce module contient des fonctions qui contrôlent la communication CoAP Secure (CoAP via DTLS).

Résumé

Les fonctions de ce module sont disponibles lorsque la fonctionnalité de l'API CoAP Secure (OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE) est activée.

Typedefs

otHandleCoapSecureClientConnect)(bool aConnected, void *aContext) typedef
void(*
Le pointeur est appelé lorsque l'état de connexion DTLS change.

Fonctions

otCoapSecureAddBlockWiseResource(otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
Ajoute une ressource de bloc au serveur CoAP Secure.
otCoapSecureAddResource(otInstance *aInstance, otCoapResource *aResource)
void
Ajoute une ressource au serveur CoAP Secure.
otCoapSecureConnect(otInstance *aInstance, const otSockAddr *aSockAddr, otHandleCoapSecureClientConnect aHandler, void *aContext)
Initialise la session DTLS avec un pair.
otCoapSecureDisconnect(otInstance *aInstance)
void
Arrête la connexion DTLS.
otCoapSecureGetPeerCertificateBase64(otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength, size_t aCertBufferSize)
Renvoie le certificat x509 pair base64 encodé.
otCoapSecureIsConnected(otInstance *aInstance)
bool
Indique si la session DTLS est connectée ou non.
otCoapSecureIsConnectionActive(otInstance *aInstance)
bool
Indique si la session DTLS est active.
otCoapSecureRemoveBlockWiseResource(otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
Suppression d'une ressource de bloc du serveur CoAP Secure.
otCoapSecureRemoveResource(otInstance *aInstance, otCoapResource *aResource)
void
Supprime une ressource du serveur CoAP Secure.
otCoapSecureSendRequest(otInstance *aInstance, otMessage *aMessage, otCoapResponseHandler aHandler, void *aContext)
Envoie une requête CoAP via une connexion DTLS sécurisée.
otCoapSecureSendRequestBlockWise(otInstance *aInstance, otMessage *aMessage, otCoapResponseHandler aHandler, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook, otCoapBlockwiseReceiveHook aReceiveHook)
Envoie une requête CoAP au niveau du bloc via une connexion DTLS sécurisée.
otCoapSecureSendResponse(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo)
Envoie une réponse CoAP au serveur CoAP Secure.
otCoapSecureSendResponseBlockWise(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook)
Envoie une réponse CoAP au niveau du bloc du serveur sécurisé CoAP.
otCoapSecureSetCaCertificateChain(otInstance *aInstance, const uint8_t *aX509CaCertificateChain, uint32_t aX509CaCertChainLength)
void
Définit les autorités de certification de premier niveau approuvées.
otCoapSecureSetCertificate(otInstance *aInstance, const uint8_t *aX509Cert, uint32_t aX509Length, const uint8_t *aPrivateKey, uint32_t aPrivateKeyLength)
void
Définit le certificat X509 de l'appareil local avec la clé privée correspondante pour la session DTLS avec DTLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.
otCoapSecureSetClientConnectedCallback(otInstance *aInstance, otHandleCoapSecureClientConnect aHandler, void *aContext)
void
Définit le rappel connecté à indiquer lorsqu'un client se connecte au serveur sécurisé CoAP Secure.
otCoapSecureSetDefaultHandler(otInstance *aInstance, otCoapRequestHandler aHandler, void *aContext)
void
Définit le gestionnaire par défaut pour les requêtes CoAP Secure non gérées.
otCoapSecureSetPsk(otInstance *aInstance, const uint8_t *aPsk, uint16_t aPskLength, const uint8_t *aPskIdentity, uint16_t aPskIdLength)
void
Définit la clé pré-partagée (PSK) et la suite de chiffrement DTLS_PSK_WITH_AES_128_CCM_8.
otCoapSecureSetSslAuthMode(otInstance *aInstance, bool aVerifyPeerCertificate)
void
Définit le mode d'authentification pour la connexion sécurisée coap.
otCoapSecureStart(otInstance *aInstance, uint16_t aPort)
Démarre le service CoAP Secure.
otCoapSecureStop(otInstance *aInstance)
void
Arrête le serveur CoAP Secure.

Typedefs

otHandleCoapSecureClientConnect

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

Le pointeur est appelé lorsque l'état de connexion DTLS change.

Détails
Paramètres
[in] aConnected
"true", si une connexion a été établie, "false" dans le cas contraire.
[in] aContext
Un pointeur vers des informations contextuelles arbitraires.

Fonctions

OTCoapSecureAddBlockWiseResource

void otCoapSecureAddBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

Ajoute une ressource de bloc au serveur CoAP Secure.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aResource
Un pointeur vers la ressource.

OTCoapSecureAddResource

void otCoapSecureAddResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

Ajoute une ressource au serveur CoAP Secure.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aResource
Un pointeur vers la ressource.

OTCoapSecureConnect

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

Initialise la session DTLS avec un pair.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aSockAddr
Un pointeur vers l'adresse du socket distant.
[in] aHandler
Un pointeur vers une fonction appelée lorsque l'état de connexion DTLS change.
[in] aContext
Un pointeur vers des informations contextuelles arbitraires.
Valeurs renvoyées
OT_ERROR_NONE
La connexion DTLS a bien été établie.

OTCoapSecureDisconnect

void otCoapSecureDisconnect(
  otInstance *aInstance
)

Arrête la connexion DTLS.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.

otCoapSecureGetPeerCertificateBase64

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

Renvoie le certificat x509 pair base64 encodé.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[out] aPeerCert
Un pointeur vers le tampon du certificat encodé en base64
[out] aCertLength
Longueur du certificat de pair encodé en base64.
[in] aCertBufferSize
Taille de la mémoire tampon d'aPeerCert.
Valeurs renvoyées
OT_ERROR_INVALID_STATE
Pas encore connecté.
OT_ERROR_NONE
Le certificat de pair a bien été obtenu.
OT_ERROR_NO_BUFS
Impossible d'allouer de la mémoire pour le certificat.

OTCoapSecureIsConnected

bool otCoapSecureIsConnected(
  otInstance *aInstance
)

Indique si la session DTLS est connectée ou non.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
Valeurs renvoyées
TRUE
La session DTLS est connectée.
FALSE
La session DTLS n'est pas connectée.

OTCoapSecureIsConnectionActive

bool otCoapSecureIsConnectionActive(
  otInstance *aInstance
)

Indique si la session DTLS est active.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
Valeurs renvoyées
TRUE
Si la session DTLS est active.
FALSE
Si la session DTLS n'est pas active.

OTCoapSecureRemoveBlockWiseResource

void otCoapSecureRemoveBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

Suppression d'une ressource de bloc du serveur CoAP Secure.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aResource
Un pointeur vers la ressource.

OTCoapSecureRemoveResource

void otCoapSecureRemoveResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

Supprime une ressource du serveur CoAP Secure.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aResource
Un pointeur vers la ressource.

OTCoapSecureSendRequest

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

Envoie une requête CoAP via une connexion DTLS sécurisée.

Si une réponse à une requête est attendue, les informations de fonction et de contexte correspondantes doivent être fournies. Si aucune réponse n'est attendue, ces arguments doivent être des pointeurs NULL. Si l'ID du message n'est pas défini dans l'en-tête (égal à 0), cette fonction attribue un ID de message unique au message.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aMessage
Référence au message à envoyer.
[in] aHandler
Un pointeur de fonction à appeler en cas de réception ou de dépassement de délai de réponse.
[in] aContext
Un pointeur vers des informations contextuelles arbitraires.
Valeurs renvoyées
OT_ERROR_NONE
Le message CoAP a bien été envoyé.
OT_ERROR_NO_BUFS
Échec de l'allocation des données de retransmission.
OT_ERROR_INVALID_STATE
La connexion DTLS n'a pas été initialisée.

otCoapSecureSendRequestBlockWise

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

Envoie une requête CoAP au niveau du bloc via une connexion DTLS sécurisée.

Disponible lorsque la configuration OPENThread_CONFIG_COAP_blockWISE_TRANSFER_ENABLE est activée.

Si une réponse à une requête est attendue, les informations de fonction et de contexte correspondantes doivent être fournies. Si aucune réponse n'est attendue, ces arguments doivent être des pointeurs NULL. Si l'ID du message n'est pas défini dans l'en-tête (égal à 0), cette fonction attribue un ID de message unique au message.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aMessage
Référence au message à envoyer.
[in] aHandler
Un pointeur de fonction à appeler en cas de réception ou de dépassement de délai de réponse.
[in] aContext
Un pointeur vers des informations contextuelles arbitraires.
[in] aTransmitHook
Pointeur de fonction appelé lors de la réception de la réponse Block1.
[in] aReceiveHook
Pointeur de fonction appelé lors de la réception de la réponse Block2.
Valeurs renvoyées
OT_ERROR_NONE
Le message CoAP a bien été envoyé.
OT_ERROR_NO_BUFS
Échec de l'allocation des données de retransmission.
OT_ERROR_INVALID_STATE
La connexion DTLS n'a pas été initialisée.

otCoapSecureSendResponse

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

Envoie une réponse CoAP au serveur CoAP Secure.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aMessage
Un pointeur vers la réponse CoAP à envoyer.
[in] aMessageInfo
Un pointeur vers les informations sur le message associé à aMessage.
Valeurs renvoyées
OT_ERROR_NONE
Le message de réponse CoAP a été placé dans la file d'attente.
OT_ERROR_NO_BUFS
Tampons insuffisants pour envoyer la réponse CoAP.

otCoapSecureSendResponseBlockWise

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

Envoie une réponse CoAP au niveau du bloc du serveur sécurisé CoAP.

Disponible lorsque la configuration OPENThread_CONFIG_COAP_blockWISE_TRANSFER_ENABLE est activée.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aMessage
Un pointeur vers la réponse CoAP à envoyer.
[in] aMessageInfo
Un pointeur vers les informations sur le message associé à aMessage.
[in] aContext
Un pointeur vers des informations contextuelles arbitraires. Peut être NULL si elle n'est pas utilisée.
[in] aTransmitHook
Pointeur de fonction appelé lors de la réception d'une requête Block1.
Valeurs renvoyées
OT_ERROR_NONE
Le message de réponse CoAP a été placé dans la file d'attente.
OT_ERROR_NO_BUFS
Tampons insuffisants pour envoyer la réponse CoAP.

otCoapSecureSetCaCertificateChain

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

Définit les autorités de certification de premier niveau approuvées.

Il est nécessaire pour valider le certificat du pair.

Mode DTLS "ECDHE ECDSA avec AES 128 CCM 8" pour le protocole CoaPS des applications.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aX509CaCertificateChain
Un pointeur vers la chaîne d'autorités de certification X509 au format PEM.
[in] aX509CaCertChainLength
Longueur de la chaîne.

otCoapSecureSetCertificate

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

Définit le certificat X509 de l'appareil local avec la clé privée correspondante pour la session DTLS avec DTLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aX509Cert
Un pointeur vers le certificat X509 au format PEM.
[in] aX509Length
Durée du certificat.
[in] aPrivateKey
Un pointeur vers la clé privée au format PEM.
[in] aPrivateKeyLength
Longueur de la clé privée.

otCoapSecureSetClientConnectedCallback

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

Définit le rappel connecté à indiquer lorsqu'un client se connecte au serveur sécurisé CoAP Secure.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aHandler
Un pointeur vers une fonction qui sera appelée une fois la connexion DTLS établie.
[in] aContext
Un pointeur vers des informations contextuelles arbitraires. Peut être NULL si elle n'est pas utilisée.

otCoapSecureSetDefaultHandler

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

Définit le gestionnaire par défaut pour les requêtes CoAP Secure non gérées.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aHandler
Pointeur de fonction qui est appelé lorsqu'une requête non gérée arrive.
[in] aContext
Un pointeur vers des informations contextuelles arbitraires. Peut être NULL si elle n'est pas utilisée.

OTCoapSecureSetPsk

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

Définit la clé pré-partagée (PSK) et la suite de chiffrement DTLS_PSK_WITH_AES_128_CCM_8.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aPsk
Un pointeur vers la clé pré-partagée.
[in] aPskLength
Longueur de la clé pré-partagée.
[in] aPskIdentity
Nom d'identité de la clé pré-partagée.
[in] aPskIdLength
Longueur de l'identité de la clé pré-partagée.

otCoapSecureSetSslAuthMode

void otCoapSecureSetSslAuthMode(
  otInstance *aInstance,
  bool aVerifyPeerCertificate
)

Définit le mode d'authentification pour la connexion sécurisée coap.

Désactivez ou activez la validation des certificats de pairs. Doit être appelé avant le début.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aVerifyPeerCertificate
"true" pour valider le certificat de pair.

OTCoapSecureStart

otError otCoapSecureStart(
  otInstance *aInstance,
  uint16_t aPort
)

Démarre le service CoAP Secure.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aPort
Port UDP local auquel se lier.
Valeurs renvoyées
OT_ERROR_NONE
Le serveur CoAP Secure a démarré.

OTCoapSecureStop

void otCoapSecureStop(
  otInstance *aInstance
)

Arrête le serveur CoAP Secure.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.

Macros

OT_DEFAULT_COAP_SECURE_PORT

 OT_DEFAULT_COAP_SECURE_PORT 5684

Port CoAP Secure par défaut, comme spécifié dans la RFC 7252.

Ressources

Les sujets de référence de l'API OpenThread proviennent du code source, disponible sur GitHub. Pour en savoir plus ou pour contribuer à notre documentation, consultez Ressources.