CoAP Secure

Ten moduł zawiera funkcje, które kontrolują komunikację CoAP Secure (CoAP przez DTLS).

Podsumowanie

Funkcje w tym module są dostępne po włączeniu funkcji interfejsu CoAP Secure API (OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE).

Definicja typów

otHandleCoapSecureClientConnect)(bool aConnected, void *aContext) definicja typu
void(*
Wskaźnik jest wywoływany po zmianie stanu połączenia DTLS.

Funkcje

otCoapSecureAddBlockWiseResource(otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
Dodaje zasób zabezpieczony blokiem do serwera CoAP Secure.
otCoapSecureAddResource(otInstance *aInstance, otCoapResource *aResource)
void
Dodaje zasób do serwera CoAP Secure.
otCoapSecureConnect(otInstance *aInstance, const otSockAddr *aSockAddr, otHandleCoapSecureClientConnect aHandler, void *aContext)
Inicjuje sesję DTLS z peerem.
otCoapSecureDisconnect(otInstance *aInstance)
void
Zatrzymuje połączenie DTLS.
otCoapSecureGetPeerCertificateBase64(otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength, size_t aCertBufferSize)
Zwraca certyfikat x509 peera w standardzie base64.
otCoapSecureIsConnected(otInstance *aInstance)
bool
Wskazuje, czy sesja DTLS jest połączona.
otCoapSecureIsConnectionActive(otInstance *aInstance)
bool
Wskazuje, czy sesja DTLS jest aktywna.
otCoapSecureRemoveBlockWiseResource(otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
Usuwa zasób z serwera CoAP Secure.
otCoapSecureRemoveResource(otInstance *aInstance, otCoapResource *aResource)
void
Usuwa zasób z serwera CoAP Secure.
otCoapSecureSendRequest(otInstance *aInstance, otMessage *aMessage, otCoapResponseHandler aHandler, void *aContext)
Wysyła żądanie CoAP przez bezpieczne połączenie DTLS.
otCoapSecureSendRequestBlockWise(otInstance *aInstance, otMessage *aMessage, otCoapResponseHandler aHandler, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook, otCoapBlockwiseReceiveHook aReceiveHook)
Wysyła żądanie CoAP blokowo przez bezpieczne połączenie DTLS.
otCoapSecureSendResponse(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo)
Wysyła odpowiedź CoAP z serwera CoAP Secure.
otCoapSecureSendResponseBlockWise(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook)
Wysyła odpowiedź CoAP blokowo z serwera CoAP Secure.
otCoapSecureSetCaCertificateChain(otInstance *aInstance, const uint8_t *aX509CaCertificateChain, uint32_t aX509CaCertChainLength)
void
Ustawia zaufane urzędy certyfikacji najwyższego poziomu.
otCoapSecureSetCertificate(otInstance *aInstance, const uint8_t *aX509Cert, uint32_t aX509Length, const uint8_t *aPrivateKey, uint32_t aPrivateKeyLength)
void
Ustawia certyfikat X509 urządzenia lokalnego z odpowiednim kluczem prywatnym dla sesji DTLS z DTLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.
otCoapSecureSetClientConnectedCallback(otInstance *aInstance, otHandleCoapSecureClientConnect aHandler, void *aContext)
void
Ustawia wywołanie zwrotne, które wskazuje, kiedy klient łączy się z serwerem CoAP Secure.
otCoapSecureSetDefaultHandler(otInstance *aInstance, otCoapRequestHandler aHandler, void *aContext)
void
Ustawia domyślny moduł obsługi nieobsługiwanych żądań CoAP Secure.
otCoapSecureSetPsk(otInstance *aInstance, const uint8_t *aPsk, uint16_t aPskLength, const uint8_t *aPskIdentity, uint16_t aPskIdLength)
void
Ustawia klucz wstępny (PSK) i mechanizm szyfrowania DTLS_PSK_WITH_AES_128_CCM_8.
otCoapSecureSetSslAuthMode(otInstance *aInstance, bool aVerifyPeerCertificate)
void
Ustawia tryb uwierzytelniania bezpiecznego połączenia scalonego.
otCoapSecureStart(otInstance *aInstance, uint16_t aPort)
Uruchamia usługę CoAP Secure.
otCoapSecureStop(otInstance *aInstance)
void
Zatrzymuje serwer CoAP Secure.

Definicja typów

otHandleCoapSecureClientConnect

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

Wskaźnik jest wywoływany po zmianie stanu połączenia DTLS.

Szczegóły
Parametry
[in] aConnected
true (prawda), jeśli połączenie zostało nawiązane, w przeciwnym razie ma wartość false (fałsz).
[in] aContext
Wskaźnik do dowolnych informacji kontekstowych.

Funkcje

Zasób otCoapSecureAddBlockWise

void otCoapSecureAddBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

Dodaje zasób zabezpieczony blokiem do serwera CoAP Secure.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aResource
Wskaźnik do zasobu.

Zasób OTCoapSecureAddResource

void otCoapSecureAddResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

Dodaje zasób do serwera CoAP Secure.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aResource
Wskaźnik do zasobu.

OTCoapSecureConnect

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

Inicjuje sesję DTLS z peerem.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aSockAddr
Wskaźnik do adresu gniazda zdalnego.
[in] aHandler
Wskaźnik do funkcji, która będzie wywoływana po zmianie stanu połączenia DTLS.
[in] aContext
Wskaźnik do dowolnych informacji kontekstowych.
Wartości zwracane
OT_ERROR_NONE
Połączenie DTLS zostało uruchomione.

OTCoapSecureConnect

void otCoapSecureDisconnect(
  otInstance *aInstance
)

Zatrzymuje połączenie DTLS.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.

otCoapSecureGetPeerCertificateBase64,

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

Zwraca certyfikat x509 peera w standardzie base64.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[out] aPeerCert
Wskaźnik do bufora certyfikatu z kodowaniem base64.
[out] aCertLength
Długość certyfikatu połączenia równorzędnego zakodowanego w base64.
[in] aCertBufferSize
Rozmiar bufora aPeerCert.
Wartości zwracane
OT_ERROR_INVALID_STATE
Jeszcze nie połączono.
OT_ERROR_NONE
Certyfikat peera został pobrany.
OT_ERROR_NO_BUFS
Nie można przydzielić pamięci na certyfikat.

Połączenie otCoapSecure

bool otCoapSecureIsConnected(
  otInstance *aInstance
)

Wskazuje, czy sesja DTLS jest połączona.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
Wartości zwracane
TRUE
Sesja DTLS jest połączona.
FALSE
Sesja DTLS nie jest połączona.

otCoapSecureIsConnectionActive

bool otCoapSecureIsConnectionActive(
  otInstance *aInstance
)

Wskazuje, czy sesja DTLS jest aktywna.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
Wartości zwracane
TRUE
Gdy sesja DTLS jest aktywna.
FALSE
Jeśli sesja DTLS jest nieaktywna.

Zasób zabezpieczeń otCoapSecureRemoveBlockWise

void otCoapSecureRemoveBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

Usuwa zasób z serwera CoAP Secure.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aResource
Wskaźnik do zasobu.

BezpiecznyCoapSecureRemoveResource

void otCoapSecureRemoveResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

Usuwa zasób z serwera CoAP Secure.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aResource
Wskaźnik do zasobu.

Żądanie OTCoapSecureSendRequest

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

Wysyła żądanie CoAP przez bezpieczne połączenie DTLS.

Jeśli oczekujesz odpowiedzi na żądanie, należy podać odpowiednie informacje o funkcji i kontekście. Jeśli nie oczekujesz odpowiedzi, te argumenty powinny być wskaźnikami NULL. Jeśli w nagłówku nie ustawiono identyfikatora wiadomości (równa się 0), ta funkcja przypisze do wiadomości unikalny identyfikator.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aMessage
Odwołanie do wiadomości do wysłania.
[in] aHandler
Wskaźnik funkcji, który powinien być wywoływany po odebraniu odpowiedzi lub po przekroczeniu limitu czasu.
[in] aContext
Wskaźnik do dowolnych informacji kontekstowych.
Wartości zwracane
OT_ERROR_NONE
Wiadomość CoAP została wysłana.
OT_ERROR_NO_BUFS
Nie udało się przydzielić danych dotyczących ponownego przesyłania.
OT_ERROR_INVALID_STATE
Połączenie DTLS nie zostało zainicjowane.

OTCoapSecureSendRequestBlockWise,

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

Wysyła żądanie CoAP blokowo przez bezpieczne połączenie DTLS.

Jest dostępne, gdy konfiguracja OPENThread_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE jest włączona.

Jeśli oczekujesz odpowiedzi na żądanie, należy podać odpowiednie informacje o funkcji i kontekście. Jeśli nie oczekujesz odpowiedzi, te argumenty powinny być wskaźnikami NULL. Jeśli w nagłówku nie ustawiono identyfikatora wiadomości (równa się 0), ta funkcja przypisze do wiadomości unikalny identyfikator.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aMessage
Odwołanie do wiadomości do wysłania.
[in] aHandler
Wskaźnik funkcji, który powinien być wywoływany po odebraniu odpowiedzi lub po przekroczeniu limitu czasu.
[in] aContext
Wskaźnik do dowolnych informacji kontekstowych.
[in] aTransmitHook
Wskaźnik funkcji wywoływany podczas odbierania odpowiedzi Block1.
[in] aReceiveHook
Wskaźnik funkcji wywoływany podczas odbierania odpowiedzi Block2.
Wartości zwracane
OT_ERROR_NONE
Wiadomość CoAP została wysłana.
OT_ERROR_NO_BUFS
Nie udało się przydzielić danych dotyczących ponownego przesyłania.
OT_ERROR_INVALID_STATE
Połączenie DTLS nie zostało zainicjowane.

odpowiedź otCoapSecureSend

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

Wysyła odpowiedź CoAP z serwera CoAP Secure.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aMessage
Wskaźnik odpowiedzi CAP do wysłania.
[in] aMessageInfo
Wskaźnik do informacji o wiadomościach powiązanych z adresem aMessage.
Wartości zwracane
OT_ERROR_NONE
Umieszczono w odpowiedzi kolejkę CoAP.
OT_ERROR_NO_BUFS
Za mało dostępnych buforów, które mogą wysłać odpowiedź CoAP.

otCoapSecureSendResponseBlockWise,

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

Wysyła odpowiedź CoAP blokowo z serwera CoAP Secure.

Jest dostępne, gdy konfiguracja OPENThread_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE jest włączona.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aMessage
Wskaźnik odpowiedzi CAP do wysłania.
[in] aMessageInfo
Wskaźnik do informacji o wiadomościach powiązanych z adresem aMessage.
[in] aContext
Wskaźnik do dowolnych informacji kontekstowych. Jeśli nie jest używany, może mieć wartość NULL.
[in] aTransmitHook
Wskaźnik funkcji wywoływany podczas odbierania żądań Block1.
Wartości zwracane
OT_ERROR_NONE
Umieszczono w odpowiedzi kolejkę CoAP.
OT_ERROR_NO_BUFS
Za mało dostępnych buforów, które mogą wysłać odpowiedź CoAP.

Certyfikat OTCoapSecureSetCaCertificateChain

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

Ustawia zaufane urzędy certyfikacji najwyższego poziomu.

Jest to konieczne do zweryfikowania certyfikatu grupy porównawczej.

Tryb DTLS „ECDHE ECDSA with AES 128 CCM 8” dla aplikacji CoAPS.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aX509CaCertificateChain
Wskaźnik do łańcucha sformatowanego XEM w formacie PEM.
[in] aX509CaCertChainLength
Długość łańcucha.

Certyfikat OTCoapSecureSet

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

Ustawia certyfikat X509 urządzenia lokalnego z odpowiednim kluczem prywatnym dla sesji DTLS z DTLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aX509Cert
Wskaźnik do certyfikatu X509 w formacie PEM.
[in] aX509Length
Długość certyfikatu.
[in] aPrivateKey
Wskaźnik do klucza prywatnego w formacie PEM.
[in] aPrivateKeyLength
Długość klucza prywatnego.

OTCoapSecureSetClientConnectedCallback

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

Ustawia wywołanie zwrotne, które wskazuje, kiedy klient łączy się z serwerem CoAP Secure.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aHandler
Wskaźnik do funkcji, która zostanie wywołana po nawiązaniu połączenia DTLS.
[in] aContext
Wskaźnik do dowolnych informacji kontekstowych. Jeśli nie jest używany, może mieć wartość NULL.

Moduł: otCoapSecureSetDefaultHandler

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

Ustawia domyślny moduł obsługi nieobsługiwanych żądań CoAP Secure.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aHandler
Wskaźnik funkcji, który ma być wywoływany po otrzymaniu nieobsługiwanego żądania.
[in] aContext
Wskaźnik do dowolnych informacji kontekstowych. Jeśli nie jest używany, może mieć wartość NULL.

Pakiet OTCoapSecureSetPsk

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

Ustawia klucz wstępny (PSK) i mechanizm szyfrowania DTLS_PSK_WITH_AES_128_CCM_8.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aPsk
Wskaźnik do klucza publicznego.
[in] aPskLength
Długość klucza publicznego.
[in] aPskIdentity
Nazwa tożsamości klucza publicznego.
[in] aPskIdLength
Długość tożsamości PSK.

Protokół otCoapSecureSetSslAuthMode

void otCoapSecureSetSslAuthMode(
  otInstance *aInstance,
  bool aVerifyPeerCertificate
)

Ustawia tryb uwierzytelniania bezpiecznego połączenia scalonego.

Wyłącz lub włącz weryfikację certyfikatu równorzędnego. Przed wywołaniem należy je wywołać.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aVerifyPeerCertificate
true, aby zweryfikować certyfikat równorzędny.

Pakiet OTCoaSecureSecure

otError otCoapSecureStart(
  otInstance *aInstance,
  uint16_t aPort
)

Uruchamia usługę CoAP Secure.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aPort
Lokalny port UDP do powiązania.
Wartości zwracane
OT_ERROR_NONE
Serwer CoAP Secure został uruchomiony.

OTCoapSecureStop

void otCoapSecureStop(
  otInstance *aInstance
)

Zatrzymuje serwer CoAP Secure.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.

Makra

_port_OT_DEFAULT_COAP_SECURE_PORT

 OT_DEFAULT_COAP_SECURE_PORT 5684

Domyślny port CoAP Secure, zgodnie z RFC 7252.

Zasoby

Tematy referencyjne interfejsu API OpenThread pochodzą z kodu źródłowego dostępnego w GitHub. Aby dowiedzieć się więcej lub dodać treści do naszej dokumentacji, zapoznaj się z materiałami.