Bezpieczne BLE

Ten moduł zawiera funkcje sterujące komunikacją BLE (TLS przez BLE).

Podsumowanie

Ten moduł zawiera funkcje, które wdrażają komunikację TCAT.

Funkcje w tym module są dostępne, gdy włączona jest funkcja BLE Secure API (OPENTHREAD_CONFIG_BLE_TCAT_ENABLE).

Funkcje z tego modułu są dostępne, gdy włączona jest funkcja TCAT (OPENTHREAD_CONFIG_BLE_TCAT_ENABLE).

Wyliczenia

otTcatApplicationProtocol{
  OT_TCAT_APPLICATION_PROTOCOL_NONE = 0,
  OT_TCAT_APPLICATION_PROTOCOL_STATUS = 1,
  OT_TCAT_APPLICATION_PROTOCOL_TCP = 2
}
enum | typ wyliczeniowy
Reprezentuje protokół aplikacji TCAT.
otTcatCommandClass{
  OT_TCAT_COMMAND_CLASS_GENERAL = 0,
  OT_TCAT_COMMAND_CLASS_COMMISSIONING = 1,
  OT_TCAT_COMMAND_CLASS_EXTRACTION = 2,
  OT_TCAT_COMMAND_CLASS_DECOMMISSIONING = 3,
  OT_TCAT_COMMAND_CLASS_APPLICATION = 4
}
enum | typ wyliczeniowy
Reprezentuje klasę poleceń TCAT.
otTcatStatusCode{
  OT_TCAT_STATUS_SUCCESS = 0,
  OT_TCAT_STATUS_UNSUPPORTED = 1,
  OT_TCAT_STATUS_PARSE_ERROR = 2,
  OT_TCAT_STATUS_VALUE_ERROR = 3,
  OT_TCAT_STATUS_GENERAL_ERROR = 4,
  OT_TCAT_STATUS_BUSY = 5,
  OT_TCAT_STATUS_UNDEFINED = 6,
  OT_TCAT_STATUS_HASH_ERROR = 7,
  OT_TCAT_STATUS_UNAUTHORIZED = 16
}
enum | typ wyliczeniowy
Reprezentuje kod stanu TCAT.

Definicje typów

otHandleBleSecureConnect)(otInstance *aInstance, bool aConnected, bool aBleConnectionOpen, void *aContext) typedef
void(*
Wskaźnik do wywołania po zmianie stanu bezpiecznego połączenia.
otHandleBleSecureReceive typedef
Wskaźnik wywoływany po odebraniu danych przez bezpieczne połączenie TLS BLE.
otHandleTcatApplicationDataReceive)(otInstance *aInstance, const otMessage *aMessage, int32_t aOffset, otTcatApplicationProtocol aTcatApplicationProtocol, const char *aServiceName, void *aContext) typedef
void(*
Wskaźnik do wywołania, gdy dane aplikacji zostały odebrane przez połączenie TLS TCAT.
otHandleTcatJoin)(otError aError, void *aContext) typedef
void(*
Wskaźnik wywołujący, aby powiadomić o zakończeniu operacji złączenia.
otTcatApplicationProtocol typedef
Reprezentuje protokół aplikacji TCAT.
otTcatCommandClass typedef
Reprezentuje klasę poleceń TCAT.
otTcatStatusCode typedef
Reprezentuje kod stanu TCAT.
otTcatVendorInfo typedef
Ta struktura zawiera informacje o dostawcy TCAT.

Funkcje

otBleSecureConnect(otInstance *aInstance)
Inicjuje sesję TLS z peerem przy użyciu otwartego połączenia BLE.
otBleSecureDisconnect(otInstance *aInstance)
void
Zatrzymuje połączenia BLE i TLS.
otBleSecureFlush(otInstance *aInstance)
Opróżni bufor wysyłania.
otBleSecureGetPeerCertificateBase64(otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength)
Zwraca certyfikat peer-x509 zakodowany w standardzie base64.
otBleSecureGetPeerSubjectAttributeByOid(otInstance *aInstance, const char *aOid, size_t aOidLength, uint8_t *aAttributeBuffer, size_t *aAttributeLength, int *aAsn1Type)
Zwraca wartość atrybutu identyfikowaną przez jego OID od podmiotu certyfikatu x509 dla peera.
otBleSecureGetThreadAttributeFromOwnCertificate(otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength)
Zwraca wartość atrybutu OID 1.3.6.1.4.1.44970.x z rozszerzeń wersji v3 własnego certyfikatu x509, gdzie ostatnia cyfra x jest ustawiona na aThreadOidDescriptor.
otBleSecureGetThreadAttributeFromPeerCertificate(otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength)
Zwraca wartość atrybutu OID 1.3.6.1.4.1.44970.x z rozszerzeń wersji 3 certyfikatu x509 dla peera, gdzie ostatnia cyfra x jest ustawiona na aThreadOidDescriptor.
otBleSecureIsCommandClassAuthorized(otInstance *aInstance, otTcatCommandClass aCommandClass)
bool
Wskazuje, czy klasa polecenia TCAT jest autoryzowana.
otBleSecureIsConnected(otInstance *aInstance)
bool
Wskazuje, czy sesja TLS jest połączona.
otBleSecureIsConnectionActive(otInstance *aInstance)
bool
Wskazuje, czy sesja TLS jest aktywna (nawiązano połączenie).
otBleSecureIsTcatEnabled(otInstance *aInstance)
bool
Wskazuje, czy agent TCAT jest włączony.
otBleSecureSend(otInstance *aInstance, uint8_t *aBuf, uint16_t aLength)
Wysyła bezpieczny pakiet danych BLE.
otBleSecureSendApplicationTlv(otInstance *aInstance, uint8_t *aBuf, uint16_t aLength)
Wysyła bezpieczny pakiet danych BLE zawierający TLV danych aplikacji wysyłanych przez TCAT.
otBleSecureSendMessage(otInstance *aInstance, otMessage *aMessage)
Wysyła zabezpieczoną wiadomość BLE.
otBleSecureSetCaCertificateChain(otInstance *aInstance, const uint8_t *aX509CaCertificateChain, uint32_t aX509CaCertChainLength)
void
Ustawia zaufane urzędy certyfikacji najwyższego poziomu.
otBleSecureSetCertificate(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 na potrzeby sesji TLS z TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.
otBleSecureSetPsk(otInstance *aInstance, const uint8_t *aPsk, uint16_t aPskLength, const uint8_t *aPskIdentity, uint16_t aPskIdLength)
void
Ustawia klucz PSK i mechanizm szyfrowania TLS_PSK_WITH_AES_128_CCM_8.
otBleSecureSetSslAuthMode(otInstance *aInstance, bool aVerifyPeerCertificate)
void
Ustawia tryb uwierzytelniania dla bezpiecznego połączenia BLE.
otBleSecureStart(otInstance *aInstance, otHandleBleSecureConnect aConnectHandler, otHandleBleSecureReceive aReceiveHandler, bool aTlvMode, void *aContext)
Uruchamia usługę BLE Secure.
otBleSecureStop(otInstance *aInstance)
void
Zatrzymuje bezpieczny serwer BLE.
otBleSecureTcatStart(otInstance *aInstance, const otTcatVendorInfo *aVendorInfo, otHandleTcatJoin aHandler)
Włącza protokół TCAT przez BLE Secure.

Konstrukcja

otTcatVendorInfo

Ta struktura zawiera informacje o dostawcy TCAT.

Wyliczenia

otTcatApplicationProtocol

 otTcatApplicationProtocol

Reprezentuje protokół aplikacji TCAT.

Właściwości
OT_TCAT_APPLICATION_PROTOCOL_NONE

Wiadomość wysłana bez aktywacji agenta TCAT.

OT_TCAT_APPLICATION_PROTOCOL_STATUS

Wiadomość kierowana do usługi UDP.

OT_TCAT_APPLICATION_PROTOCOL_TCP

Wiadomość kierowana do usługi TCP.

otTcatCommandClass

 otTcatCommandClass

Reprezentuje klasę poleceń TCAT.

Właściwości
OT_TCAT_COMMAND_CLASS_APPLICATION

Polecenia TCAT związane z warstwą aplikacji.

OT_TCAT_COMMAND_CLASS_COMMISSIONING

Polecenia TCAT związane z przekazywaniem zamówień.

OT_TCAT_COMMAND_CLASS_DECOMMISSIONING

Polecenia TCAT związane z wycofaniem.

OT_TCAT_COMMAND_CLASS_EXTRACTION

Polecenia TCAT związane z wyodrębnianiem kluczy.

OT_TCAT_COMMAND_CLASS_GENERAL

Polecenia TCAT związane z działaniami ogólnymi.

otTcatStatusCode

 otTcatStatusCode

Reprezentuje kod stanu TCAT.

Właściwości
OT_TCAT_STATUS_BUSY

Nie można wykonać polecenia, ponieważ zasób jest zajęty.

OT_TCAT_STATUS_GENERAL_ERROR

Wystąpił błąd niepasujący do żadnej innej kategorii.

OT_TCAT_STATUS_HASH_ERROR

Wartość skrótu przedstawiona przez komisarza była nieprawidłowa.

OT_TCAT_STATUS_PARSE_ERROR

Nie udało się poprawnie przeanalizować żądania / polecenia.

OT_TCAT_STATUS_SUCCESS

Polecenie lub żądanie zostało przetworzone.

OT_TCAT_STATUS_UNAUTHORIZED

Nadawca nie ma wystarczających uprawnień do wykonania danego polecenia.

OT_TCAT_STATUS_UNDEFINED

Żądana wartość, dane lub usługa nie są (obecnie) zdefiniowane albo niedostępne.

OT_TCAT_STATUS_UNSUPPORTED

Żądane polecenie lub odebrane TLV nie jest obsługiwane.

OT_TCAT_STATUS_VALUE_ERROR

Wartość przesyłanego TLV zawiera błąd.

Definicje typów

otHandleBleSecureConnect

void(* otHandleBleSecureConnect)(otInstance *aInstance, bool aConnected, bool aBleConnectionOpen, void *aContext)

Wskaźnik do wywołania po zmianie stanu bezpiecznego połączenia.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aConnected
TRUE, jeśli ustanowiono bezpieczne połączenie, lub FALSE w przeciwnym razie.
[in] aBleConnectionOpen
Wartość TRUE, jeśli ustanowiono połączenie BLE, aby przesyłać strumień danych TLS, w przeciwnym razie ma wartość FALSE.
[in] aContext
Wskaźnik do dowolnych informacji kontekstowych.

otHandleBleSecureReceive

otHandleTcatApplicationDataReceive otHandleBleSecureReceive

Wskaźnik wywoływany po odebraniu danych przez bezpieczne połączenie TLS BLE.

otHandleTcatApplicationDataReceive

void(* otHandleTcatApplicationDataReceive)(otInstance *aInstance, const otMessage *aMessage, int32_t aOffset, otTcatApplicationProtocol aTcatApplicationProtocol, const char *aServiceName, void *aContext)

Wskaźnik do wywołania, gdy dane aplikacji zostały odebrane przez połączenie TLS TCAT.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aMessage
Wskaźnik wiadomości.
[in] aOffset
Przesunięcie, od którego zaczynają się dane aplikacji.
[in] aTcatApplicationProtocol
Typ protokołu odebranej wiadomości.
[in] aServiceName
Nazwa usługi, do której jest przekazywana wiadomość.
[in] aContext
Wskaźnik do dowolnych informacji kontekstowych.

otHandleTcatJoin

void(* otHandleTcatJoin)(otError aError, void *aContext)

Wskaźnik wywołujący, aby powiadomić o zakończeniu operacji złączenia.

Szczegóły
Parametry
[in] aError
OT_ERROR_NONE, jeśli proces dołączania się powiódł. OT_ERROR_Security, jeśli proces dołączania nie powiedzie się z powodu bezpieczeństwa danych uwierzytelniających.
[in] aContext
Wskaźnik do dowolnych informacji kontekstowych.

otTcatApplicationProtocol

enum otTcatApplicationProtocol otTcatApplicationProtocol

Reprezentuje protokół aplikacji TCAT.

otTcatCommandClass

enum otTcatCommandClass otTcatCommandClass

Reprezentuje klasę poleceń TCAT.

otTcatStatusCode

enum otTcatStatusCode otTcatStatusCode

Reprezentuje kod stanu TCAT.

otTcatVendorInfo

struct otTcatVendorInfo otTcatVendorInfo

Ta struktura zawiera informacje o dostawcy TCAT.

Zawartość tej struktury MUSI być niezmieniona podczas trwania sesji TCAT.

Funkcje

otBleSecureConnect

otError otBleSecureConnect(
  otInstance *aInstance
)

Inicjuje sesję TLS z peerem przy użyciu otwartego połączenia BLE.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
Zwracane wartości
OT_ERROR_NONE
Połączenie TLS zostało rozpoczęte.

otBleSecureDisconnect

void otBleSecureDisconnect(
  otInstance *aInstance
)

Zatrzymuje połączenia BLE i TLS.

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

otBleSecureFlush

otError otBleSecureFlush(
  otInstance *aInstance
)

Opróżni bufor wysyłania.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
Zwracane wartości
OT_ERROR_NONE
Bufor danych wyjściowych został opróżniony.
OT_ERROR_NO_BUFS
Nie udało się przydzielić pamięci buforowej.
OT_ERROR_INVALID_STATE
Połączenie TLS nie zostało zainicjowane.

otBleSecureGetPeerCertificateBase64

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

Zwraca certyfikat peer-x509 zakodowany w standardzie base64.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[out] aPeerCert
Wskaźnik do bufora certyfikatów zakodowanego w base64.
[in,out] aCertLength
W przypadku danych wejściowych maksymalny rozmiar to aPeerCert. Na wyjściu: długość certyfikatu równorzędnego zakodowanego w base64.
Zwracane wartości
OT_ERROR_NONE
Pobrano certyfikat peera.
OT_ERROR_INVALID_ARGS
Wartość aInstance lub aCertLength jest nieprawidłowa.
OT_ERROR_INVALID_STATE
Jeszcze nie połączono.
OT_ERROR_NO_BUFS
Nie można przydzielić pamięci dla certyfikatu.

otBleSecureGetPeerSubjectAttributeByOid

otError otBleSecureGetPeerSubjectAttributeByOid(
  otInstance *aInstance,
  const char *aOid,
  size_t aOidLength,
  uint8_t *aAttributeBuffer,
  size_t *aAttributeLength,
  int *aAsn1Type
)

Zwraca wartość atrybutu identyfikowaną przez jego OID od podmiotu certyfikatu x509 dla peera.

Identyfikator OID peera jest dostarczany w formacie binarnym. Jeśli atrybut został odczytany, długość atrybutu jest ustawiana, lub zero, jeśli nie udało się go odczytać. Typ ASN.1 ustawiony zgodnie z definicją w standardzie ITU-T X.690, jeśli atrybut został odczytany.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aOid
Wskaźnik do znalezionego identyfikatora OID.
[in] aOidLength
Długość identyfikatora OID.
[out] aAttributeBuffer
Wskaźnik do bufora atrybutu.
[in,out] aAttributeLength
W przypadku danych wejściowych maksymalny rozmiar to aAttributeBuffer. W przypadku danych wyjściowych długość atrybutu zapisanego w buforze.
[out] aAsn1Type
Wskaźnik typu ASN.1 atrybutu zapisanego w buforze.
Zwracane wartości
OT_ERROR_INVALID_STATE
Jeszcze nie połączono.
OT_ERROR_INVALID_ARGS
Nieprawidłowa długość atrybutu.
OT_ERROR_NONE
Atrybut został odczytany.
OT_ERROR_NO_BUFS
Niewystarczająca ilość pamięci do przechowywania wartości atrybutu.

otBleSecureGetThreadAttributeFromOwnCertificate

otError otBleSecureGetThreadAttributeFromOwnCertificate(
  otInstance *aInstance,
  int aThreadOidDescriptor,
  uint8_t *aAttributeBuffer,
  size_t *aAttributeLength
)

Zwraca wartość atrybutu OID 1.3.6.1.4.1.44970.x z rozszerzeń wersji v3 własnego certyfikatu x509, gdzie ostatnia cyfra x jest ustawiona na aThreadOidDescriptor.

Jeśli atrybut został odczytany, długość atrybutu jest ustawiana, lub zero, jeśli nie udało się go odczytać. Aby było aktywne, wymagane jest połączenie.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aThreadOidDescriptor
Ostatnia cyfra identyfikatora OID atrybutu wątku.
[out] aAttributeBuffer
Wskaźnik do bufora atrybutu.
[in,out] aAttributeLength
W przypadku danych wejściowych maksymalny rozmiar to aAttributeBuffer. W przypadku danych wyjściowych długość atrybutu zapisanego w buforze.
Zwracane wartości
OT_ERROR_NONE
Atrybut został odczytany.
OT_ERROR_INVALID_ARGS
Nieprawidłowa długość atrybutu.
OT_NOT_FOUND
Nie znaleziono żądanego atrybutu.
OT_ERROR_NO_BUFS
Niewystarczająca ilość pamięci do przechowywania wartości atrybutu.
OT_ERROR_INVALID_STATE
Jeszcze nie połączono.
OT_ERROR_NOT_IMPLEMENTED
Wartość aThreadOidDescriptor wynosi >127.
OT_ERROR_PARSE
Nie udało się przeanalizować rozszerzeń certyfikatów.

otBleSecureGetThreadAttributeFromPeerCertificate

otError otBleSecureGetThreadAttributeFromPeerCertificate(
  otInstance *aInstance,
  int aThreadOidDescriptor,
  uint8_t *aAttributeBuffer,
  size_t *aAttributeLength
)

Zwraca wartość atrybutu OID 1.3.6.1.4.1.44970.x z rozszerzeń wersji 3 certyfikatu x509 dla peera, gdzie ostatnia cyfra x jest ustawiona na aThreadOidDescriptor.

Jeśli atrybut został odczytany, długość atrybutu jest ustawiana, lub zero, jeśli nie udało się go odczytać. Aby było aktywne, wymagane jest połączenie.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aThreadOidDescriptor
Ostatnia cyfra identyfikatora OID atrybutu wątku.
[out] aAttributeBuffer
Wskaźnik do bufora atrybutu.
[in,out] aAttributeLength
W przypadku danych wejściowych maksymalny rozmiar to aAttributeBuffer. W przypadku danych wyjściowych długość atrybutu zapisanego w buforze.
Zwracane wartości
OT_ERROR_NONE
Atrybut został odczytany.
OT_ERROR_INVALID_ARGS
Nieprawidłowa długość atrybutu.
OT_NOT_FOUND
Nie znaleziono żądanego atrybutu.
OT_ERROR_NO_BUFS
Niewystarczająca ilość pamięci do przechowywania wartości atrybutu.
OT_ERROR_INVALID_STATE
Jeszcze nie połączono.
OT_ERROR_NOT_IMPLEMENTED
Wartość aThreadOidDescriptor wynosi >127.
OT_ERROR_PARSE
Nie udało się przeanalizować rozszerzeń certyfikatów.

otBleSecureIsCommandClassAuthorized

bool otBleSecureIsCommandClassAuthorized(
  otInstance *aInstance,
  otTcatCommandClass aCommandClass
)

Wskazuje, czy klasa polecenia TCAT jest autoryzowana.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aCommandClass
Klasa poleceń do sprawdzenia.
Zwracane wartości
TRUE
Klasa polecenia jest autoryzowana.
FALSE
Klasa polecenia nie jest autoryzowana.

otBleSecureIsConnected

bool otBleSecureIsConnected(
  otInstance *aInstance
)

Wskazuje, czy sesja TLS jest połączona.

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

otBleSecureIsConnectionActive

bool otBleSecureIsConnectionActive(
  otInstance *aInstance
)

Wskazuje, czy sesja TLS jest aktywna (nawiązano połączenie).

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
Zwracane wartości
TRUE
Jeśli sesja TLS jest aktywna.
FALSE
Jeśli sesja TLS jest nieaktywna.

otBleSecureIsTcatEnabled

bool otBleSecureIsTcatEnabled(
  otInstance *aInstance
)

Wskazuje, czy agent TCAT jest włączony.

Szczegóły
Zwracane wartości
TRUE
Agent TCAT jest włączony.
FALSE
Agent TCAT nie jest włączony.

otBleSecureSend

otError otBleSecureSend(
  otInstance *aInstance,
  uint8_t *aBuf,
  uint16_t aLength
)

Wysyła bezpieczny pakiet danych BLE.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aBuf
Wskaźnik do danych, które mają być wysyłane jako wartość TLV raportu TCAT dotyczącego wysyłania danych aplikacji.
[in] aLength
Liczba określająca długość bufora danych.
Zwracane wartości
OT_ERROR_NONE
Dane zostały wysłane.
OT_ERROR_NO_BUFS
Nie udało się przydzielić pamięci buforowej.
OT_ERROR_INVALID_STATE
Połączenie TLS nie zostało zainicjowane.

otBleSecureSendApplicationTlv

otError otBleSecureSendApplicationTlv(
  otInstance *aInstance,
  uint8_t *aBuf,
  uint16_t aLength
)

Wysyła bezpieczny pakiet danych BLE zawierający TLV danych aplikacji wysyłanych przez TCAT.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aBuf
Wskaźnik do danych, które mają być wysyłane jako wartość TLV raportu TCAT dotyczącego wysyłania danych aplikacji.
[in] aLength
Liczba określająca długość bufora danych.
Zwracane wartości
OT_ERROR_NONE
Dane zostały wysłane.
OT_ERROR_NO_BUFS
Nie udało się przydzielić pamięci buforowej.
OT_ERROR_INVALID_STATE
Połączenie TLS nie zostało zainicjowane.

otBleSecureSendMessage

otError otBleSecureSendMessage(
  otInstance *aInstance,
  otMessage *aMessage
)

Wysyła zabezpieczoną wiadomość BLE.

Jeśli zwracana wartość to OT_ERROR_NONE, OpenThread przejmuje własność elementu aMessage, a wywołujący nie powinien już odwoływać się do elementu aMessage. Jeśli zwracana wartość nie ma wartości OT_ERROR_NONE, element wywołujący zachowuje prawo własności do elementu aMessage, w tym zwolnienie aMessage, jeśli bufor wiadomości nie jest już potrzebny.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aMessage
Wskaźnik wiadomości do wysłania.

Szczegóły
Zwracane wartości
OT_ERROR_NONE
Wiadomość została wysłana.
OT_ERROR_NO_BUFS
Nie udało się przydzielić pamięci buforowej.
OT_ERROR_INVALID_STATE
Połączenie TLS nie zostało zainicjowane.

otBleSecureSetCaCertificateChain

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

Ustawia zaufane urzędy certyfikacji najwyższego poziomu.

Jest potrzebny do weryfikacji certyfikatu peera.

Tryb TLS „ECDHE ECDSA with AES 128 CCM 8” dla bezpiecznego BLE.

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

otBleSecureSetCertificate

void otBleSecureSetCertificate(
  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 na potrzeby sesji TLS z TLS_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.

otBleSecureSetPsk

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

Ustawia klucz PSK i mechanizm szyfrowania TLS_PSK_WITH_AES_128_CCM_8.

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

otBleSecureSetSslAuthMode

void otBleSecureSetSslAuthMode(
  otInstance *aInstance,
  bool aVerifyPeerCertificate
)

Ustawia tryb uwierzytelniania dla bezpiecznego połączenia BLE.

Wyłącz lub włącz weryfikację certyfikatu peera. Musi zostać wywołana przed rozpoczęciem.

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

otBleSecureStart

otError otBleSecureStart(
  otInstance *aInstance,
  otHandleBleSecureConnect aConnectHandler,
  otHandleBleSecureReceive aReceiveHandler,
  bool aTlvMode,
  void *aContext
)

Uruchamia usługę BLE Secure.

Gdy włączony jest tryb TLV, funkcja aReceiveHandler zostanie wywołana po odebraniu pełnego TLV, a przesunięcie komunikatu wskazuje wartość TLV.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aConnectHandler
Wskaźnik do funkcji, która zostanie wywołana po zmianie stanu połączenia.
[in] aReceiveHandler
Wskaźnik do funkcji, która zostanie wywołana po odebraniu danych przez połączenie TLS.
[in] aTlvMode
Wartość logiczna wskazująca, czy ma być włączony tryb liniowy.
[in] aContext
Wskaźnik do dowolnych informacji kontekstowych. Jeśli nie jest używana, może zawierać wartość NULL.
Zwracane wartości
OT_ERROR_NONE
Bezpieczny serwer BLE został uruchomiony.
OT_ERROR_ALREADY
Usługa jest już wskazana.

otBleSecureStop

void otBleSecureStop(
  otInstance *aInstance
)

Zatrzymuje bezpieczny serwer BLE.

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

otBleSecureTcatStart

otError otBleSecureTcatStart(
  otInstance *aInstance,
  const otTcatVendorInfo *aVendorInfo,
  otHandleTcatJoin aHandler
)

Włącza protokół TCAT przez BLE Secure.

Szczegóły
Parametry
[in] aInstance
Wskaźnik do instancji OpenThread.
[in] aVendorInfo
Wskaźnik do informacji o dostawcy (musi pozostać prawidłowy po wywołaniu metody, może mieć wartość NULL).
[in] aHandler
Wskaźnik do funkcji, która jest wywoływana po zakończeniu operacji łączenia.
Zwracane wartości
OT_ERROR_NONE
Rola bezpiecznego łącznika BLE została włączona.
OT_ERROR_INVALID_ARGS
Wartość aElevationPsk lub aVendorInfo jest nieprawidłowa.
OT_ERROR_INVALID_STATE
Funkcja BLE nie została uruchomiona lub tryb liniowy nie jest wybrany.

Makra

OT_TCAT_MAX_SERVICE_NAME_LENGTH

 OT_TCAT_MAX_SERVICE_NAME_LENGTH 15

Maksymalna długość ciągu znaków nazwy usługi UDP lub TCP (nie obejmuje znaków null).

Zasoby

Tematy referencyjne interfejsu OpenThread API pochodzą z kodu źródłowego dostępnego w GitHub. Aby dowiedzieć się więcej lub dołączyć do naszej dokumentacji, skorzystaj z sekcji Zasoby.