Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

CoAP Secure

Questo modulo include funzioni che controllano la comunicazione CoAP Secure (CoAP over DTLS).

Riepilogo

Le funzioni di questo modulo sono disponibili quando è abilitata la funzionalità API CoAP Secure (OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE).

Typedef

otHandleCoapSecureClientConnect)(bool aConnected, void *aContext) typedef
void(*
Questo puntatore di funzione viene chiamato quando cambia lo stato della connessione DTLS.

Functions

otCoapSecureAddBlockWiseResource(otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
Questa funzione aggiunge una risorsa a blocchi al server CoAP Secure.
otCoapSecureAddResource(otInstance *aInstance, otCoapResource *aResource)
void
Questa funzione aggiunge una risorsa al server CoAP Secure.
otCoapSecureConnect(otInstance *aInstance, const otSockAddr *aSockAddr, otHandleCoapSecureClientConnect aHandler, void *aContext)
Questo metodo inizializza la sessione DTLS con un peer.
otCoapSecureDisconnect(otInstance *aInstance)
void
Questo metodo interrompe la connessione DTLS.
otCoapSecureGetPeerCertificateBase64(otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength, size_t aCertBufferSize)
Questo metodo restituisce il certificato x509 peer con codifica Base64.
otCoapSecureIsConnected(otInstance *aInstance)
bool
Questo metodo indica se la sessione DTLS è connessa o meno.
otCoapSecureIsConnectionActive(otInstance *aInstance)
bool
Questo metodo indica se la sessione DTLS è attiva o meno.
otCoapSecureRemoveBlockWiseResource(otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
Questa funzione rimuove una risorsa a blocchi dal server CoAP Secure.
otCoapSecureRemoveResource(otInstance *aInstance, otCoapResource *aResource)
void
Questa funzione rimuove una risorsa dal server CoAP Secure.
otCoapSecureSendRequest(otInstance *aInstance, otMessage *aMessage, otCoapResponseHandler aHandler, void *aContext)
Questo metodo invia una richiesta CoAP tramite connessione DTLS con protezione.
otCoapSecureSendRequestBlockWise(otInstance *aInstance, otMessage *aMessage, otCoapResponseHandler aHandler, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook, otCoapBlockwiseReceiveHook aReceiveHook)
Questo metodo invia una richiesta CoAP a blocchi tramite una connessione DTLS sicura.
otCoapSecureSendResponse(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo)
Questa funzione invia una risposta CoAP dal server CoAP Secure.
otCoapSecureSendResponseBlockWise(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook)
Questa funzione invia una risposta CoAP in modalità di blocco dal server CoAP Secure.
otCoapSecureSetCaCertificateChain(otInstance *aInstance, const uint8_t *aX509CaCertificateChain, uint32_t aX509CaCertChainLength)
void
Questo metodo imposta le autorità di certificazione di primo livello attendibili.
otCoapSecureSetCertificate(otInstance *aInstance, const uint8_t *aX509Cert, uint32_t aX509Length, const uint8_t *aPrivateKey, uint32_t aPrivateKeyLength)
void
Questo metodo imposta il certificato X509 del dispositivo locale con la chiave privata corrispondente per la sessione DTLS con DTLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.
otCoapSecureSetClientConnectedCallback(otInstance *aInstance, otHandleCoapSecureClientConnect aHandler, void *aContext)
void
Questo metodo imposta il callback connesso per indicare quando un client si connette al server CoAP Secure.
otCoapSecureSetDefaultHandler(otInstance *aInstance, otCoapRequestHandler aHandler, void *aContext)
void
Questa funzione imposta il gestore predefinito per le richieste CoAP Secure non gestite.
otCoapSecureSetPsk(otInstance *aInstance, const uint8_t *aPsk, uint16_t aPskLength, const uint8_t *aPskIdentity, uint16_t aPskIdLength)
void
Questo metodo imposta la chiave precondivisa (PSK) e il pacchetto di crittografia DTLS_PSK_WITH_AES_128_CCM_8.
otCoapSecureSetSslAuthMode(otInstance *aInstance, bool aVerifyPeerCertificate)
void
Questo metodo imposta la modalità di autenticazione per la connessione sicura coap.
otCoapSecureStart(otInstance *aInstance, uint16_t aPort)
Questa funzione avvia il servizio CoAP Secure.
otCoapSecureStop(otInstance *aInstance)
void
Questa funzione arresta il server CoAP Secure.

Typedef

otHandleCoapSecureClientConnect

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

Questo puntatore di funzione viene chiamato quando cambia lo stato della connessione DTLS.

Dettagli
Parametri
[in] aConnected
vero, se è stata stabilita una connessione, falso in caso contrario.
[in] aContext
Un riferimento a informazioni di contesto arbitrarie.

Functions

otCoapSecureAddBlockWiseResource

void otCoapSecureAddBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

Questa funzione aggiunge una risorsa a blocchi al server CoAP Secure.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aResource
Un puntatore alla risorsa.

otCoapSecureAddResource

void otCoapSecureAddResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

Questa funzione aggiunge una risorsa al server CoAP Secure.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aResource
Un puntatore alla risorsa.

otCoapSecureConnect

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

Questo metodo inizializza la sessione DTLS con un peer.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aSockAddr
Un puntatore all'indirizzo del socket remoto.
[in] aHandler
Un puntatore a una funzione che viene richiamata quando lo stato della connessione DTLS cambia.
[in] aContext
Un riferimento a informazioni di contesto arbitrarie.
Valori restituiti
OT_ERROR_NONE
Avvio della connessione DTLS avviata.

otCoapSecureScollega

void otCoapSecureDisconnect(
  otInstance *aInstance
)

Questo metodo interrompe la connessione DTLS.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.

otCoapSecureGetPeerCertificateBase64

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

Questo metodo restituisce il certificato x509 peer con codifica Base64.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[out] aPeerCert
Un puntatore al buffer dei certificati codificati in Base64.
[out] aCertLength
La lunghezza del certificato peer con codifica Base64.
[in] aCertBufferSize
Le dimensioni del buffer di un peerCert.
Valori restituiti
OT_ERROR_INVALID_STATE
Non ancora connesso.
OT_ERROR_NONE
Recupero del certificato peer riuscito.
OT_ERROR_NO_BUFS
Impossibile allocare memoria per il certificato.

otCoapSecureIsConnected

bool otCoapSecureIsConnected(
  otInstance *aInstance
)

Questo metodo indica se la sessione DTLS è connessa o meno.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Valori restituiti
TRUE
La sessione DTLS è connessa.
FALSE
La sessione DTLS non è connessa.

otCoapSecureIsConnectionActive

bool otCoapSecureIsConnectionActive(
  otInstance *aInstance
)

Questo metodo indica se la sessione DTLS è attiva o meno.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Valori restituiti
TRUE
Se la sessione DTLS è attiva.
FALSE
Se la sessione DTLS non è attiva.

otCoapSecureRemoveBlockWiseResource

void otCoapSecureRemoveBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

Questa funzione rimuove una risorsa a blocchi dal server CoAP Secure.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aResource
Un puntatore alla risorsa.

otCoapSecureRemoveResource

void otCoapSecureRemoveResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

Questa funzione rimuove una risorsa dal server CoAP Secure.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aResource
Un puntatore alla risorsa.

otCoapSecureSendRequest

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

Questo metodo invia una richiesta CoAP tramite connessione DTLS con protezione.

Se è prevista una risposta per una richiesta, è necessario fornire le rispettive informazioni su funzione e contesto. Se non è prevista alcuna risposta, questi argomenti devono essere puntatori NULL. Se l'ID del messaggio non è impostato nell'intestazione (uguale a 0), questa funzione assegna al messaggio un ID messaggio univoco.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aMessage
Un riferimento al messaggio da inviare.
[in] aHandler
Un puntatore funzione che deve essere chiamato in caso di risposta o di timeout.
[in] aContext
Un riferimento a informazioni di contesto arbitrarie.
Valori restituiti
OT_ERROR_NONE
Messaggio CoAP inviato correttamente.
OT_ERROR_NO_BUFS
Impossibile allocare i dati di ritrasmissione.
OT_ERROR_INVALID_STATE
Connessione DTLS non inizializzata.

otCoapSecureSendRequestBlockWise

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

Questo metodo invia una richiesta CoAP a blocchi tramite una connessione DTLS sicura.

Questa funzione è disponibile quando è abilitata la configurazione OPENOPEN_CONFIG_COAP_BLOCKWISE_Transfer_ENABLE.

Se è prevista una risposta per una richiesta, è necessario fornire le rispettive informazioni su funzione e contesto. Se non è prevista alcuna risposta, questi argomenti devono essere puntatori NULL. Se l'ID del messaggio non è impostato nell'intestazione (uguale a 0), questa funzione assegna al messaggio un ID messaggio univoco.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aMessage
Un riferimento al messaggio da inviare.
[in] aHandler
Un puntatore funzione che deve essere chiamato in caso di risposta o di timeout.
[in] aContext
Un riferimento a informazioni di contesto arbitrarie.
[in] aTransmitHook
Puntatore di funzione chiamato in risposta alla risposta di Block1.
[in] aReceiveHook
Puntatore di funzione chiamato in caso di ricezione della risposta Block2.
Valori restituiti
OT_ERROR_NONE
Messaggio CoAP inviato correttamente.
OT_ERROR_NO_BUFS
Impossibile allocare i dati di ritrasmissione.
OT_ERROR_INVALID_STATE
Connessione DTLS non inizializzata.

otCoapSecureSendResponse

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

Questa funzione invia una risposta CoAP dal server CoAP Secure.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aMessage
Un puntatore alla risposta CoAP da inviare.
[in] aMessageInfo
Un puntatore alle informazioni del messaggio associate a aMessage.
Valori restituiti
OT_ERROR_NONE
Il messaggio di risposta CoAP è stato aggiunto in coda correttamente.
OT_ERROR_NO_BUFS
Buffer disponibili insufficienti per inviare la risposta CoAP.

otCoapSecureSendResponseBlockWise

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

Questa funzione invia una risposta CoAP in modalità di blocco dal server CoAP Secure.

Questa funzione è disponibile quando è abilitata la configurazione OPENOPEN_CONFIG_COAP_BLOCKWISE_Transfer_ENABLE.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aMessage
Un puntatore alla risposta CoAP da inviare.
[in] aMessageInfo
Un puntatore alle informazioni del messaggio associate a aMessage.
[in] aContext
Un riferimento a informazioni di contesto arbitrarie. Può essere NULL se non usato.
[in] aTransmitHook
Puntatore di funzione chiamato in risposta alla richiesta Block1.
Valori restituiti
OT_ERROR_NONE
Il messaggio di risposta CoAP è stato aggiunto in coda correttamente.
OT_ERROR_NO_BUFS
Buffer disponibili insufficienti per inviare la risposta CoAP.

otCoapSecureSetCaCertificateChain

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

Questo metodo imposta le autorità di certificazione di primo livello attendibili.

È necessario per convalidare il certificato del peer.

Modalità DTLS "ECDHE ECDSA con AES 128 CCM 8" per Application CoAPS.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aX509CaCertificateChain
Un puntatore alla catena X509 CA formattata PEM.
[in] aX509CaCertChainLength
La lunghezza della catena.

otCoapSecureSetCertificate

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

Questo metodo imposta il certificato X509 del dispositivo locale con la chiave privata corrispondente per la sessione DTLS con DTLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aX509Cert
Un puntatore al certificato X509 in formato PEM.
[in] aX509Length
La lunghezza del certificato.
[in] aPrivateKey
Un puntatore alla chiave privata in formato PEM.
[in] aPrivateKeyLength
La lunghezza della chiave privata.

otCoapSecureSetClientConnectedCallback

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

Questo metodo imposta il callback connesso per indicare quando un client si connette al server CoAP Secure.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aHandler
Puntatore a una funzione che viene richiamata una volta stabilita la connessione DTLS.
[in] aContext
Un riferimento a informazioni di contesto arbitrarie. Può essere NULL se non usato.

otCoapSecureSetDefaultHandler

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

Questa funzione imposta il gestore predefinito per le richieste CoAP Secure non gestite.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aHandler
Un puntatore a funzione che deve essere chiamato quando arriva una richiesta non gestita.
[in] aContext
Un riferimento a informazioni di contesto arbitrarie. Può essere NULL se non usato.

otCoapSecureSetPsk

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

Questo metodo imposta la chiave precondivisa (PSK) e il pacchetto di crittografia DTLS_PSK_WITH_AES_128_CCM_8.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aPsk
Un puntatore al PSK.
[in] aPskLength
La lunghezza del file PSK.
[in] aPskIdentity
Nome dell'identità per PSK.
[in] aPskIdLength
La lunghezza dell'identità PSK.

otCoapSecureSetSslAuthMode

void otCoapSecureSetSslAuthMode(
  otInstance *aInstance,
  bool aVerifyPeerCertificate
)

Questo metodo imposta la modalità di autenticazione per la connessione sicura coap.

Disattiva o abilita la verifica del certificato peer. Deve essere chiamato prima dell'inizio.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aVerifyPeerCertificate
true per verificare il certificato peer.

otCoapSecureStart

otError otCoapSecureStart(
  otInstance *aInstance,
  uint16_t aPort
)

Questa funzione avvia il servizio CoAP Secure.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aPort
La porta UDP locale su cui eseguire l'associazione.
Valori restituiti
OT_ERROR_NONE
Avvio del server CoAP Secure riuscito.

otCoapSecureStop

void otCoapSecureStop(
  otInstance *aInstance
)

Questa funzione arresta il server CoAP Secure.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.

Macro

OT_DEFAULT_COAP_SECURE_PORT

 OT_DEFAULT_COAP_SECURE_PORT 5684

Porta CoAP Secure predefinita, come specificato nel documento RFC 7252.

Risorse

Gli argomenti di riferimento dell'API OpenThread provengono dal codice sorgente, disponibile su GitHub. Per ulteriori informazioni, o per contribuire alla nostra documentazione, consulta la pagina Risorse.