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{
|
enum | typ wyliczeniowy Reprezentuje protokół aplikacji TCAT. |
otTcatCommandClass{
|
enum | typ wyliczeniowy Reprezentuje klasę poleceń TCAT. |
otTcatStatusCode{
|
enum | typ wyliczeniowy Reprezentuje kod stanu TCAT. |
Definicje typów |
|
---|---|
otHandleBleSecureConnect)(otInstance *aInstance, bool aConnected, bool aBleConnectionOpen, void *aContext)
|
typedefvoid(*
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)
|
typedefvoid(*
Wskaźnik do wywołania, gdy dane aplikacji zostały odebrane przez połączenie TLS TCAT. |
otHandleTcatJoin)(otError aError, void *aContext)
|
typedefvoid(*
Wskaźnik wywołujący, aby powiadomić o zakończeniu operacji złączenia. |
otTcatApplicationProtocol
|
typedef Reprezentuje protokół aplikacji TCAT. |
otTcatCommandClass
|
typedefenum otTcatCommandClass
Reprezentuje klasę poleceń TCAT. |
otTcatStatusCode
|
typedefenum otTcatStatusCode
Reprezentuje kod stanu TCAT. |
otTcatVendorInfo
|
typedefstruct otTcatVendorInfo
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 |
|
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 |
|
otHandleTcatJoin
void(* otHandleTcatJoin)(otError aError, void *aContext)
Wskaźnik wywołujący, aby powiadomić o zakończeniu operacji złączenia.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
otTcatApplicationProtocol
enum otTcatApplicationProtocol otTcatApplicationProtocol
Reprezentuje protokół aplikacji 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 |
|
||
Zwracane wartości |
|
otBleSecureDisconnect
void otBleSecureDisconnect( otInstance *aInstance )
Zatrzymuje połączenia BLE i TLS.
Szczegóły | |||
---|---|---|---|
Parametry |
|
otBleSecureFlush
otError otBleSecureFlush( otInstance *aInstance )
Opróżni bufor wysyłania.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwracane wartości |
|
otBleSecureGetPeerCertificateBase64
otError otBleSecureGetPeerCertificateBase64( otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength )
Zwraca certyfikat peer-x509 zakodowany w standardzie base64.
Szczegóły | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||
Zwracane wartości |
|
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 |
|
||||||||||||
Zwracane wartości |
|
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 |
|
||||||||||||||
Zwracane wartości |
|
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 |
|
||||||||||||||
Zwracane wartości |
|
otBleSecureIsCommandClassAuthorized
bool otBleSecureIsCommandClassAuthorized( otInstance *aInstance, otTcatCommandClass aCommandClass )
Wskazuje, czy klasa polecenia TCAT jest autoryzowana.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwracane wartości |
|
otBleSecureIsConnected
bool otBleSecureIsConnected( otInstance *aInstance )
Wskazuje, czy sesja TLS jest połączona.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwracane wartości |
|
otBleSecureIsConnectionActive
bool otBleSecureIsConnectionActive( otInstance *aInstance )
Wskazuje, czy sesja TLS jest aktywna (nawiązano połączenie).
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwracane wartości |
|
otBleSecureIsTcatEnabled
bool otBleSecureIsTcatEnabled( otInstance *aInstance )
Wskazuje, czy agent TCAT jest włączony.
Szczegóły | |||||
---|---|---|---|---|---|
Zwracane wartości |
|
otBleSecureSend
otError otBleSecureSend( otInstance *aInstance, uint8_t *aBuf, uint16_t aLength )
Wysyła bezpieczny pakiet danych BLE.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwracane wartości |
|
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 |
|
||||||
Zwracane wartości |
|
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 |
|
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Zwracane wartości |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
||||||||||
Zwracane wartości |
|
otBleSecureStop
void otBleSecureStop( otInstance *aInstance )
Zatrzymuje bezpieczny serwer BLE.
Szczegóły | |||
---|---|---|---|
Parametry |
|
otBleSecureTcatStart
otError otBleSecureTcatStart( otInstance *aInstance, const otTcatVendorInfo *aVendorInfo, otHandleTcatJoin aHandler )
Włącza protokół TCAT przez BLE Secure.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwracane wartości |
|
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.