COAP-sicher

Dieses Modul enthält Funktionen, die die Kommunikation über CoAP Secure (CoAP über DTLS) steuern.

Zusammenfassung

Die Funktionen in diesem Modul sind verfügbar, wenn die Funktion „CoAP Secure API“ (OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE) aktiviert ist.

Typdef1

otHandleCoapSecureClientConnect)(bool aConnected, void *aContext) Typdef
void(*
Der Zeiger wird aufgerufen, wenn sich der DTLS-Verbindungsstatus ändert.

Functions

otCoapSecureAddBlockWiseResource(otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
Fügt dem CoAP Secure-Server eine blockweise Ressource hinzu.
otCoapSecureAddResource(otInstance *aInstance, otCoapResource *aResource)
void
Fügt dem CoAP Secure-Server eine Ressource hinzu.
otCoapSecureConnect(otInstance *aInstance, const otSockAddr *aSockAddr, otHandleCoapSecureClientConnect aHandler, void *aContext)
Initialisiert eine DTLS-Sitzung mit einem Peer.
otCoapSecureDisconnect(otInstance *aInstance)
void
Stoppt die DTLS-Verbindung.
otCoapSecureGetPeerCertificateBase64(otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength, size_t aCertBufferSize)
Gibt das Peer-x509-Zertifikat mit Base64-Codierung zurück.
otCoapSecureIsConnected(otInstance *aInstance)
bool
Gibt an, ob die DTLS-Sitzung verbunden ist.
otCoapSecureIsConnectionActive(otInstance *aInstance)
bool
Gibt an, ob die DTLS-Sitzung aktiv ist.
otCoapSecureRemoveBlockWiseResource(otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
Entfernt eine blockweise Ressource vom CoAP Secure-Server.
otCoapSecureRemoveResource(otInstance *aInstance, otCoapResource *aResource)
void
Entfernt eine Ressource vom CoAP Secure-Server.
otCoapSecureSendRequest(otInstance *aInstance, otMessage *aMessage, otCoapResponseHandler aHandler, void *aContext)
Sendet eine CoAP-Anfrage über eine sichere DTLS-Verbindung.
otCoapSecureSendRequestBlockWise(otInstance *aInstance, otMessage *aMessage, otCoapResponseHandler aHandler, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook, otCoapBlockwiseReceiveHook aReceiveHook)
Sendet eine CoAP-Anfrage blockweise über eine sichere DTLS-Verbindung.
otCoapSecureSendResponse(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo)
Sendet eine CoAP-Antwort vom CoAP Secure-Server.
otCoapSecureSendResponseBlockWise(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook)
Sendet eine CoAP-Antwort blockweise vom CoAP Secure-Server.
otCoapSecureSetCaCertificateChain(otInstance *aInstance, const uint8_t *aX509CaCertificateChain, uint32_t aX509CaCertChainLength)
void
Legt die vertrauenswürdigen CAs der obersten Ebene fest.
otCoapSecureSetCertificate(otInstance *aInstance, const uint8_t *aX509Cert, uint32_t aX509Length, const uint8_t *aPrivateKey, uint32_t aPrivateKeyLength)
void
Legt das X509-Zertifikat des lokalen Geräts mit dem entsprechenden privaten Schlüssel für die DTLS-Sitzung mit DTLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 fest.
otCoapSecureSetClientConnectedCallback(otInstance *aInstance, otHandleCoapSecureClientConnect aHandler, void *aContext)
void
Legt den verbundenen Callback fest, der angibt, wann ein Client eine Verbindung zum CoAP Secure-Server herstellt.
otCoapSecureSetDefaultHandler(otInstance *aInstance, otCoapRequestHandler aHandler, void *aContext)
void
Legt den Standard-Handler für nicht verarbeitete sichere CoAP-Anfragen fest.
otCoapSecureSetPsk(otInstance *aInstance, const uint8_t *aPsk, uint16_t aPskLength, const uint8_t *aPskIdentity, uint16_t aPskIdLength)
void
Legt den vorinstallierten Schlüssel (Pre-Shared Key, PSK) und die Cipher Suite DTLS_PSK_WITH_AES_128_CCM_8 fest.
otCoapSecureSetSslAuthMode(otInstance *aInstance, bool aVerifyPeerCertificate)
void
Legt den Authentifizierungsmodus für die sichere Koap-Verbindung fest.
otCoapSecureStart(otInstance *aInstance, uint16_t aPort)
Startet den CoAP Secure-Dienst.
otCoapSecureStop(otInstance *aInstance)
void
Stoppt den CoAP Secure-Server.

Typdef1

otHandleCoapSecureClientConnect

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

Der Zeiger wird aufgerufen, wenn sich der DTLS-Verbindungsstatus ändert.

Details
Parameter
[in] aConnected
„true“, wenn eine Verbindung hergestellt wurde, andernfalls „false“.
[in] aContext
Ein Zeiger auf beliebige Kontextinformationen.

Functions

OTCoapSecureAddBlockWiseResource

void otCoapSecureAddBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

Fügt dem CoAP Secure-Server eine blockweise Ressource hinzu.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aResource
Ein Zeiger auf die Ressource.

OTCoapSecureAddResource

void otCoapSecureAddResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

Fügt dem CoAP Secure-Server eine Ressource hinzu.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aResource
Ein Zeiger auf die Ressource.

OTCoapSecureConnect

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

Initialisiert eine DTLS-Sitzung mit einem Peer.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aSockAddr
Ein Zeiger auf die Adresse des Remote-Sockets.
[in] aHandler
Ein Zeiger auf eine Funktion, die aufgerufen wird, wenn sich der DTLS-Verbindungsstatus ändert.
[in] aContext
Ein Zeiger auf beliebige Kontextinformationen.
Rückgabewerte
OT_ERROR_NONE
DTLS-Verbindung wurde gestartet.

oder sichere Verbindung trennen

void otCoapSecureDisconnect(
  otInstance *aInstance
)

Stoppt die DTLS-Verbindung.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.

otCoapSecureGetPeerCertificateBase64

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

Gibt das Peer-x509-Zertifikat mit Base64-Codierung zurück.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[out] aPeerCert
Ein Zeiger auf den base64-codierten Zertifikatzwischenspeicher.
[out] aCertLength
Die Länge des base64-codierten Peer-Zertifikats.
[in] aCertBufferSize
Die Puffergröße von aPeerCert.
Rückgabewerte
OT_ERROR_INVALID_STATE
Noch nicht verbunden.
OT_ERROR_NONE
Peer-Zertifikat wurde abgerufen.
OT_ERROR_NO_BUFS
Speicher für Zertifikat kann nicht zugewiesen werden.

Nicht sicher

bool otCoapSecureIsConnected(
  otInstance *aInstance
)

Gibt an, ob die DTLS-Sitzung verbunden ist.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabewerte
TRUE
Die DTLS-Sitzung ist verbunden.
FALSE
Die DTLS-Sitzung ist nicht verbunden.

OTCoapSecureIsConnectionActive

bool otCoapSecureIsConnectionActive(
  otInstance *aInstance
)

Gibt an, ob die DTLS-Sitzung aktiv ist.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabewerte
TRUE
Wenn die DTLS-Sitzung aktiv ist.
FALSE
Wenn die DTLS-Sitzung nicht aktiv ist.

OTCoapSecureRemoveBlockWiseResource

void otCoapSecureRemoveBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

Entfernt eine blockweise Ressource vom CoAP Secure-Server.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aResource
Ein Zeiger auf die Ressource.

Entfernte sichere sichere Ressource

void otCoapSecureRemoveResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

Entfernt eine Ressource vom CoAP Secure-Server.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aResource
Ein Zeiger auf die Ressource.

SichererSenden

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

Sendet eine CoAP-Anfrage über eine sichere DTLS-Verbindung.

Wenn eine Antwort für eine Anfrage erwartet wird, sollten entsprechende Funktions- und Kontextinformationen angegeben werden. Wenn keine Antwort erwartet wird, sollten diese Argumente NULL-Zeiger sein. Wenn die Nachrichten-ID nicht im Header festgelegt wurde (gleich 0), weist diese Funktion der Nachricht eine eindeutige Nachrichten-ID zu.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aMessage
Eine Referenz zur zu sendenden Nachricht.
[in] aHandler
Ein Funktionszeiger, der beim Empfang oder einer Zeitüberschreitung aufgerufen wird.
[in] aContext
Ein Zeiger auf beliebige Kontextinformationen.
Rückgabewerte
OT_ERROR_NONE
CoAP-Nachricht wurde gesendet.
OT_ERROR_NO_BUFS
Übertragungsdaten konnten nicht zugewiesen werden.
OT_ERROR_INVALID_STATE
Die DTLS-Verbindung wurde nicht initialisiert.

otCoapSecureSendRequestBlockWise

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

Sendet eine CoAP-Anfrage blockweise über eine sichere DTLS-Verbindung.

Ist verfügbar, wenn die Konfiguration OPENHOUR_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE aktiviert ist.

Wenn eine Antwort für eine Anfrage erwartet wird, sollten entsprechende Funktions- und Kontextinformationen angegeben werden. Wenn keine Antwort erwartet wird, sollten diese Argumente NULL-Zeiger sein. Wenn die Nachrichten-ID nicht im Header festgelegt wurde (gleich 0), weist diese Funktion der Nachricht eine eindeutige Nachrichten-ID zu.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aMessage
Eine Referenz zur zu sendenden Nachricht.
[in] aHandler
Ein Funktionszeiger, der beim Empfang oder einer Zeitüberschreitung aufgerufen wird.
[in] aContext
Ein Zeiger auf beliebige Kontextinformationen.
[in] aTransmitHook
Ein Funktionszeiger, der beim Empfang der Block1-Antwort aufgerufen wird.
[in] aReceiveHook
Ein Funktionszeiger, der beim Empfang der Block2-Antwort aufgerufen wird.
Rückgabewerte
OT_ERROR_NONE
CoAP-Nachricht wurde gesendet.
OT_ERROR_NO_BUFS
Übertragungsdaten konnten nicht zugewiesen werden.
OT_ERROR_INVALID_STATE
Die DTLS-Verbindung wurde nicht initialisiert.

BeyondCorpCoapSecureSendResponse

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

Sendet eine CoAP-Antwort vom CoAP Secure-Server.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aMessage
Ein Zeiger auf die CoAP-Antwort, die gesendet werden soll.
[in] aMessageInfo
Ein Zeiger auf die mit aMessage verknüpften Nachrichteninformationen.
Rückgabewerte
OT_ERROR_NONE
Die CoAP-Antwortnachricht wurde in die Warteschlange gestellt.
OT_ERROR_NO_BUFS
Nicht genügend Puffer zum Senden der CoAP-Antwort verfügbar.

otCoapSecureSendResponseBlockWise

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

Sendet eine CoAP-Antwort blockweise vom CoAP Secure-Server.

Ist verfügbar, wenn die Konfiguration OPENHOUR_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE aktiviert ist.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aMessage
Ein Zeiger auf die CoAP-Antwort, die gesendet werden soll.
[in] aMessageInfo
Ein Zeiger auf die mit aMessage verknüpften Nachrichteninformationen.
[in] aContext
Ein Zeiger auf beliebige Kontextinformationen. Kann NULL sein, wenn es nicht verwendet wird.
[in] aTransmitHook
Ein Funktionspointer, der beim Empfang der Block1-Anfrage aufgerufen wird.
Rückgabewerte
OT_ERROR_NONE
Die CoAP-Antwortnachricht wurde in die Warteschlange gestellt.
OT_ERROR_NO_BUFS
Nicht genügend Puffer zum Senden der CoAP-Antwort verfügbar.

otCoapSecureSetCaCertificateChain

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

Legt die vertrauenswürdigen CAs der obersten Ebene fest.

Sie ist erforderlich, um das Zertifikat des Peers zu validieren.

DTLS-Modus „ECDHE ECDSA mit AES 128 CCM 8“ für Application CoAPS

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aX509CaCertificateChain
Ein Zeiger auf die PEM-formatierte X509-CA-Kette.
[in] aX509CaCertChainLength
Die Länge der Kette.

OTCoapSecureSetCertificate

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

Legt das X509-Zertifikat des lokalen Geräts mit dem entsprechenden privaten Schlüssel für die DTLS-Sitzung mit DTLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 fest.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aX509Cert
Hinweis auf das PEM-formatierte X509-Zertifikat
[in] aX509Length
Die Länge des Zertifikats.
[in] aPrivateKey
Zeige auf einen PEM-formatierten privaten Schlüssel.
[in] aPrivateKeyLength
Die Länge des privaten Schlüssels.

otCoapSecureSetClientConnectedCallback

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

Legt den verbundenen Callback fest, der angibt, wann ein Client eine Verbindung zum CoAP Secure-Server herstellt.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aHandler
Ein Zeiger auf eine Funktion, die aufgerufen wird, sobald eine DTLS-Verbindung hergestellt wurde.
[in] aContext
Ein Zeiger auf beliebige Kontextinformationen. Kann NULL sein, wenn es nicht verwendet wird.

otCoapSecureSetDefaultHandler

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

Legt den Standard-Handler für nicht verarbeitete sichere CoAP-Anfragen fest.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aHandler
Ein Funktionspointr, der aufgerufen werden soll, wenn eine nicht verarbeitete Anfrage eingeht.
[in] aContext
Ein Zeiger auf beliebige Kontextinformationen. Kann NULL sein, wenn es nicht verwendet wird.

OTCoapSecureSetPsk

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

Legt den vorinstallierten Schlüssel (Pre-Shared Key, PSK) und die Cipher Suite DTLS_PSK_WITH_AES_128_CCM_8 fest.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aPsk
Zeige auf den PSK.
[in] aPskLength
Die PSK-Länge.
[in] aPskIdentity
Der Name der PSK.
[in] aPskIdLength
Die PSK-Identitätslänge.

otCoapSecureSetSslAuthMode

void otCoapSecureSetSslAuthMode(
  otInstance *aInstance,
  bool aVerifyPeerCertificate
)

Legt den Authentifizierungsmodus für die sichere Koap-Verbindung fest.

Deaktivieren oder aktivieren der Überprüfung eines Peer-Zertifikats. Muss vor dem Start aufgerufen werden

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aVerifyPeerCertificate
„true“, um das Peer-Zertifikat zu überprüfen.

Sicherer Start

otError otCoapSecureStart(
  otInstance *aInstance,
  uint16_t aPort
)

Startet den CoAP Secure-Dienst.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aPort
Der lokale UDP-Port, an den gebunden werden soll.
Rückgabewerte
OT_ERROR_NONE
CoAP Secure-Server wurde gestartet.

OTCoapSecureStop

void otCoapSecureStop(
  otInstance *aInstance
)

Stoppt den CoAP Secure-Server.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.

Makros

OT_DEFAULT_COAP_SECURE_PORT

 OT_DEFAULT_COAP_SECURE_PORT 5684

Standardmäßiger CoAP-Sicherheitsport, wie in RFC 7252 angegeben.

Ressourcen

Die Themen der OpenThread API-Referenz stammen aus dem Quellcode, der auf GitHub verfügbar ist. Weitere Informationen oder als Ergänzung zu unserer Dokumentation finden Sie unter Ressourcen.