BLE Secure

Dieses Modul enthält Funktionen zur Steuerung der BLE Secure-Kommunikation (TLS über BLE).

Zusammenfassung

Dieses Modul enthält Funktionen zur Implementierung der TCAT-Kommunikation.

Die Funktionen in diesem Modul sind verfügbar, wenn die BLE Secure API-Funktion (OPENTHREAD_CONFIG_BLE_TCAT_ENABLE) aktiviert ist.

Die Funktionen in diesem Modul sind verfügbar, wenn die TCAT-Funktion (OPENTHREAD_CONFIG_BLE_TCAT_ENABLE) aktiviert ist.

Aufzählungen

otTcatApplicationProtocol{
  OT_TCAT_APPLICATION_PROTOCOL_NONE = 0,
  OT_TCAT_APPLICATION_PROTOCOL_STATUS = 1,
  OT_TCAT_APPLICATION_PROTOCOL_TCP = 2
}
enum
Stellt das TCAT-Anwendungsprotokoll dar.
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
Stellt eine TCAT-Befehlsklasse dar.
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
Stellt den TCAT-Statuscode dar.

Typedefs

otHandleBleSecureConnect)(otInstance *aInstance, bool aConnected, bool aBleConnectionOpen, void *aContext) typedef
void(*
Zeiger, der aufgerufen wird, wenn sich der Status der sicheren Verbindung ändert.
otHandleBleSecureReceive typedef
Zeiger zum Aufrufen, wenn Daten über eine BLE Secure-TLS-Verbindung empfangen wurden.
otHandleTcatApplicationDataReceive)(otInstance *aInstance, const otMessage *aMessage, int32_t aOffset, otTcatApplicationProtocol aTcatApplicationProtocol, const char *aServiceName, void *aContext) typedef
void(*
Zeiger zum Aufrufen, wenn Anwendungsdaten über eine TCAT-TLS-Verbindung empfangen wurden.
otHandleTcatJoin)(otError aError, void *aContext) typedef
void(*
Zeiger, der aufgerufen werden soll, um den Abschluss eines Join-Vorgangs zu benachrichtigen.
otTcatApplicationProtocol typedef
Stellt das TCAT-Anwendungsprotokoll dar.
otTcatCommandClass typedef
Stellt eine TCAT-Befehlsklasse dar.
otTcatStatusCode typedef
Stellt den TCAT-Statuscode dar.
otTcatVendorInfo typedef
Diese Struktur stellt Informationen zu TCAT-Anbietern dar.

Funktionen

otBleSecureConnect(otInstance *aInstance)
Initialisiert die TLS-Sitzung mit einem Peer mithilfe einer bereits offenen BLE-Verbindung.
otBleSecureDisconnect(otInstance *aInstance)
void
Beendet die BLE- und TLS-Verbindung.
otBleSecureFlush(otInstance *aInstance)
Löscht den Sendepuffer.
otBleSecureGetPeerCertificateBase64(otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength)
Gibt das base64-codierte Peer-x509-Zertifikat zurück.
otBleSecureGetPeerSubjectAttributeByOid(otInstance *aInstance, const char *aOid, size_t aOidLength, uint8_t *aAttributeBuffer, size_t *aAttributeLength, int *aAsn1Type)
Gibt einen Attributwert zurück, der anhand seiner OID aus dem Betreff des Peer-x509-Zertifikats identifiziert wird.
otBleSecureGetThreadAttributeFromOwnCertificate(otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength)
Gibt einen Attributwert für die OID 1.3.6.1.4.1.44970.x aus den v3-Erweiterungen des eigenen x509-Zertifikats zurück, wobei die letzte Ziffer x auf aThreadOidDescriptor festgelegt ist.
otBleSecureGetThreadAttributeFromPeerCertificate(otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength)
Gibt einen Attributwert für die OID 1.3.6.1.4.1.44970.x aus den v3-Erweiterungen des Peer-x509-Zertifikats zurück, wobei die letzte Ziffer x auf aThreadOidDescriptor festgelegt ist.
otBleSecureIsCommandClassAuthorized(otInstance *aInstance, otTcatCommandClass aCommandClass)
bool
Gibt an, ob eine TCAT-Befehlsklasse autorisiert ist.
otBleSecureIsConnected(otInstance *aInstance)
bool
Gibt an, ob die TLS-Sitzung verbunden ist.
otBleSecureIsConnectionActive(otInstance *aInstance)
bool
Gibt an, ob die TLS-Sitzung aktiv ist (verbunden oder Verbindung hergestellt).
otBleSecureIsTcatEnabled(otInstance *aInstance)
bool
Gibt an, ob der TCAT-Agent aktiviert ist.
otBleSecureSend(otInstance *aInstance, uint8_t *aBuf, uint16_t aLength)
Sendet ein sicheres BLE-Datenpaket.
otBleSecureSendApplicationTlv(otInstance *aInstance, uint8_t *aBuf, uint16_t aLength)
Es wird ein sicheres BLE-Datenpaket gesendet, das eine TCAT-TLV enthält.
otBleSecureSendMessage(otInstance *aInstance, otMessage *aMessage)
Sendet eine sichere BLE-Nachricht.
otBleSecureSetCaCertificateChain(otInstance *aInstance, const uint8_t *aX509CaCertificateChain, uint32_t aX509CaCertChainLength)
void
Legt die vertrauenswürdigen Top-Level-Zertifizierungsstellen fest.
otBleSecureSetCertificate(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 TLS-Sitzung mit TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 fest.
otBleSecureSetPsk(otInstance *aInstance, const uint8_t *aPsk, uint16_t aPskLength, const uint8_t *aPskIdentity, uint16_t aPskIdLength)
void
Legt den vorab freigegebenen Schlüssel (Pre-Shared Key, PSK) und die Cipher Suite TLS_PSK_WITH_AES_128_CCM_8 fest.
otBleSecureSetSslAuthMode(otInstance *aInstance, bool aVerifyPeerCertificate)
void
Legt den Authentifizierungsmodus für die sichere BLE-Verbindung fest.
otBleSecureStart(otInstance *aInstance, otHandleBleSecureConnect aConnectHandler, otHandleBleSecureReceive aReceiveHandler, bool aTlvMode, void *aContext)
Startet den BLE Secure-Dienst.
otBleSecureStop(otInstance *aInstance)
void
Stoppt den BLE Secure-Server.
otBleSecureTcatStart(otInstance *aInstance, const otTcatVendorInfo *aVendorInfo, otHandleTcatJoin aHandler)
Aktiviert das TCAT-Protokoll über BLE Secure.

Strukturen

otTcatVendorInfo

Diese Struktur stellt Informationen zu TCAT-Anbietern dar.

Aufzählungen

otTcatApplicationProtocol

 otTcatApplicationProtocol

Stellt das TCAT-Anwendungsprotokoll dar.

Attribute
OT_TCAT_APPLICATION_PROTOCOL_NONE

Nachricht, die gesendet wurde, ohne den TCAT-Agent zu aktivieren.

OT_TCAT_APPLICATION_PROTOCOL_STATUS

An einen UDP-Dienst weitergeleitete Nachricht.

OT_TCAT_APPLICATION_PROTOCOL_TCP

An einen TCP-Dienst gerichtete Nachricht.

otTcatCommandClass

 otTcatCommandClass

Stellt eine TCAT-Befehlsklasse dar.

Attribute
OT_TCAT_COMMAND_CLASS_APPLICATION

TCAT-Befehle für die Anwendungsebene.

OT_TCAT_COMMAND_CLASS_COMMISSIONING

TCAT-Befehle für die Inbetriebnahme

OT_TCAT_COMMAND_CLASS_DECOMMISSIONING

TCAT-Befehle zur Außerbetriebnahme

OT_TCAT_COMMAND_CLASS_EXTRACTION

TCAT-Befehle im Zusammenhang mit der Schlüsselextraktion.

OT_TCAT_COMMAND_CLASS_GENERAL

TCAT-Befehle für den allgemeinen Betrieb.

otTcatStatusCode

 otTcatStatusCode

Stellt den TCAT-Statuscode dar.

Attribute
OT_TCAT_STATUS_BUSY

Der Befehl kann nicht ausgeführt werden, da die Ressource ausgelastet ist.

OT_TCAT_STATUS_GENERAL_ERROR

Es ist ein Fehler aufgetreten, der mit keiner anderen Kategorie übereinstimmt.

OT_TCAT_STATUS_HASH_ERROR

Der vom Kommissar vorgelegte Hash-Wert war falsch.

OT_TCAT_STATUS_PARSE_ERROR

Anfrage / Befehl konnte nicht richtig geparst werden.

OT_TCAT_STATUS_SUCCESS

Befehl oder Anfrage wurde erfolgreich verarbeitet.

OT_TCAT_STATUS_UNAUTHORIZED

Der Absender verfügt nicht über eine ausreichende Autorisierung für den angegebenen Befehl.

OT_TCAT_STATUS_UNDEFINED

Der angeforderte Wert, die angeforderten Daten oder der angeforderte Dienst ist (aktuell) nicht definiert oder nicht vorhanden.

OT_TCAT_STATUS_UNSUPPORTED

Der angeforderte Befehl oder die empfangene TLV wird nicht unterstützt.

OT_TCAT_STATUS_VALUE_ERROR

Der Wert der übertragenen TLV weist einen Fehler auf.

Typedefs

otHandleBleSecureConnect

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

Zeiger, der aufgerufen wird, wenn sich der Status der sicheren Verbindung ändert.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aConnected
TRUE, wenn eine sichere Verbindung hergestellt wurde, andernfalls FALSE.
[in] aBleConnectionOpen
TRUE, wenn eine BLE-Verbindung zur Übertragung eines TLS-Datenstreams hergestellt wurde, andernfalls FALSE.
[in] aContext
Ein Zeiger auf beliebige Kontextinformationen.

otHandleBleSecureReceive

otHandleTcatApplicationDataReceive otHandleBleSecureReceive

Zeiger zum Aufrufen, wenn Daten über eine BLE Secure-TLS-Verbindung empfangen wurden.

otHandleTcatApplicationDataReceive

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

Zeiger zum Aufrufen, wenn Anwendungsdaten über eine TCAT-TLS-Verbindung empfangen wurden.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aMessage
Ein Zeiger auf die Nachricht.
[in] aOffset
Der Offset, an dem die Anwendungsdaten beginnen.
[in] aTcatApplicationProtocol
Der Protokolltyp der empfangenen Nachricht.
[in] aServiceName
Der Name des Dienstes, dem die Nachricht zugeordnet ist.
[in] aContext
Ein Zeiger auf beliebige Kontextinformationen.

otHandleTcatJoin

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

Zeiger, der aufgerufen werden soll, um den Abschluss eines Join-Vorgangs zu benachrichtigen.

Details
Parameter
[in] aError
OT_ERROR_NONE, wenn der Join-Prozess erfolgreich war. OT_ERROR_SECURITY, wenn der Beitritt aufgrund von Sicherheitsanmeldedaten fehlgeschlagen ist.
[in] aContext
Ein Zeiger auf beliebige Kontextinformationen.

otTcatApplicationProtocol

enum otTcatApplicationProtocol otTcatApplicationProtocol

Stellt das TCAT-Anwendungsprotokoll dar.

otTcatCommandClass

enum otTcatCommandClass otTcatCommandClass

Stellt eine TCAT-Befehlsklasse dar.

otTcatStatusCode

enum otTcatStatusCode otTcatStatusCode

Stellt den TCAT-Statuscode dar.

otTcatVendorInfo

struct otTcatVendorInfo otTcatVendorInfo

Diese Struktur stellt Informationen zu TCAT-Anbietern dar.

Der Inhalt dieser Struktur MUSS bestehen bleiben und unverändert bleiben, während eine TCAT-Sitzung läuft.

Funktionen

otBleSecureConnect

otError otBleSecureConnect(
  otInstance *aInstance
)

Initialisiert die TLS-Sitzung mit einem Peer mithilfe einer bereits offenen BLE-Verbindung.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabewerte
OT_ERROR_NONE
TLS-Verbindung wurde hergestellt.

otBleSecureDisconnect

void otBleSecureDisconnect(
  otInstance *aInstance
)

Beendet die BLE- und TLS-Verbindung.

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

otBleSecureFlush

otError otBleSecureFlush(
  otInstance *aInstance
)

Löscht den Sendepuffer.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabewerte
OT_ERROR_NONE
Der Ausgabepuffer wurde geleert.
OT_ERROR_NO_BUFS
Pufferspeicher konnte nicht zugewiesen werden.
OT_ERROR_INVALID_STATE
Die TLS-Verbindung wurde nicht initialisiert.

otBleSecureGetPeerCertificateBase64

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

Gibt das base64-codierte Peer-x509-Zertifikat zurück.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[out] aPeerCert
Ein Zeiger auf den base64-codierten Zertifikatpuffer.
[in,out] aCertLength
Bei der Eingabe die maximale Größe von aPeerCert. Bei der Ausgabe die Länge des base64-codierten Peer-Zertifikats.
Rückgabewerte
OT_ERROR_NONE
Peer-Zertifikat erfolgreich abrufen.
OT_ERROR_INVALID_ARGS
aInstance oder aCertLength ist ungültig.
OT_ERROR_INVALID_STATE
Noch nicht verbunden.
OT_ERROR_NO_BUFS
Arbeitsspeicher für Zertifikat kann nicht zugewiesen werden.

otBleSecureGetPeerSubjectAttributeByOid

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

Gibt einen Attributwert zurück, der anhand seiner OID aus dem Betreff des Peer-x509-Zertifikats identifiziert wird.

Die Peer-OID wird im Binärformat bereitgestellt. Die Attributlänge wird festgelegt, wenn das Attribut erfolgreich gelesen wurde, oder null, wenn das Attribut nicht erfolgreich war. Der ASN.1-Typ ist entsprechend der Definition im ITU-T X.690-Standard festgelegt, wenn das Attribut erfolgreich gelesen wurde.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aOid
Ein Zeiger auf die OID, die ermittelt werden soll.
[in] aOidLength
Die Länge der OID.
[out] aAttributeBuffer
Ein Zeiger auf den Attributpuffer.
[in,out] aAttributeLength
Bei der Eingabe die maximale Größe von aAttributeBuffer. Bei der Ausgabe die Länge des in den Puffer geschriebenen Attributs.
[out] aAsn1Type
Ein Zeiger auf den ASN.1-Typ des in den Puffer geschriebenen Attributs.
Rückgabewerte
OT_ERROR_INVALID_STATE
Noch nicht verbunden.
OT_ERROR_INVALID_ARGS
Ungültige Attributlänge.
OT_ERROR_NONE
Attribut wurde gelesen.
OT_ERROR_NO_BUFS
Nicht genügend Arbeitsspeicher zum Speichern des Attributwerts.

otBleSecureGetThreadAttributeFromOwnCertificate

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

Gibt einen Attributwert für die OID 1.3.6.1.4.1.44970.x aus den v3-Erweiterungen des eigenen x509-Zertifikats zurück, wobei die letzte Ziffer x auf aThreadOidDescriptor festgelegt ist.

Die Attributlänge wird festgelegt, wenn das Attribut erfolgreich gelesen wurde, oder null, wenn das Attribut nicht erfolgreich war. Es ist eine aktive Verbindung erforderlich.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aThreadOidDescriptor
Die letzte Ziffer der Thread-Attribut-OID.
[out] aAttributeBuffer
Ein Zeiger auf den Attributpuffer.
[in,out] aAttributeLength
Bei der Eingabe die maximale Größe von aAttributeBuffer. Bei der Ausgabe die Länge des in den Puffer geschriebenen Attributs.
Rückgabewerte
OT_ERROR_NONE
Attribut wurde gelesen.
OT_ERROR_INVALID_ARGS
Ungültige Attributlänge.
OT_NOT_FOUND
Das angeforderte Attribut wurde nicht gefunden.
OT_ERROR_NO_BUFS
Nicht genügend Arbeitsspeicher zum Speichern des Attributwerts.
OT_ERROR_INVALID_STATE
Noch nicht verbunden.
OT_ERROR_NOT_IMPLEMENTED
Der Wert von aThreadOidDescriptor ist >127.
OT_ERROR_PARSE
Die Zertifikaterweiterungen konnten nicht geparst werden.

otBleSecureGetThreadAttributeFromPeerCertificate

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

Gibt einen Attributwert für die OID 1.3.6.1.4.1.44970.x aus den v3-Erweiterungen des Peer-x509-Zertifikats zurück, wobei die letzte Ziffer x auf aThreadOidDescriptor festgelegt ist.

Die Attributlänge wird festgelegt, wenn das Attribut erfolgreich gelesen wurde, oder null, wenn das Attribut nicht erfolgreich war. Es ist eine aktive Verbindung erforderlich.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aThreadOidDescriptor
Die letzte Ziffer der Thread-Attribut-OID.
[out] aAttributeBuffer
Ein Zeiger auf den Attributpuffer.
[in,out] aAttributeLength
Bei der Eingabe die maximale Größe von aAttributeBuffer. Bei der Ausgabe die Länge des in den Puffer geschriebenen Attributs.
Rückgabewerte
OT_ERROR_NONE
Attribut wurde gelesen.
OT_ERROR_INVALID_ARGS
Ungültige Attributlänge.
OT_NOT_FOUND
Das angeforderte Attribut wurde nicht gefunden.
OT_ERROR_NO_BUFS
Nicht genügend Arbeitsspeicher zum Speichern des Attributwerts.
OT_ERROR_INVALID_STATE
Noch nicht verbunden.
OT_ERROR_NOT_IMPLEMENTED
Der Wert von aThreadOidDescriptor ist >127.
OT_ERROR_PARSE
Die Zertifikaterweiterungen konnten nicht geparst werden.

otBleSecureIsCommandClassAuthorized

bool otBleSecureIsCommandClassAuthorized(
  otInstance *aInstance,
  otTcatCommandClass aCommandClass
)

Gibt an, ob eine TCAT-Befehlsklasse autorisiert ist.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aCommandClass
Eine zu prüfende Befehlsklasse.
Rückgabewerte
TRUE
Die Befehlsklasse ist autorisiert.
FALSE
Die Befehlsklasse ist nicht autorisiert.

otBleSecureIsConnected

bool otBleSecureIsConnected(
  otInstance *aInstance
)

Gibt an, ob die TLS-Sitzung verbunden ist.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabewerte
TRUE
Die TLS-Sitzung ist verbunden.
FALSE
Es besteht keine Verbindung zur TLS-Sitzung.

otBleSecureIsConnectionActive

bool otBleSecureIsConnectionActive(
  otInstance *aInstance
)

Gibt an, ob die TLS-Sitzung aktiv ist (verbunden oder Verbindung hergestellt).

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

otBleSecureIsTcatEnabled

bool otBleSecureIsTcatEnabled(
  otInstance *aInstance
)

Gibt an, ob der TCAT-Agent aktiviert ist.

Details
Rückgabewerte
TRUE
Der TCAT-Agent ist aktiviert.
FALSE
Der TCAT-Agent ist nicht aktiviert.

otBleSecureSend

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

Sendet ein sicheres BLE-Datenpaket.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aBuf
Ein Zeiger auf die Daten, die als Wert des TCAT-TLV senden sollen.
[in] aLength
Zahl, die die Länge des Datenpuffers angibt.
Rückgabewerte
OT_ERROR_NONE
Daten wurden gesendet.
OT_ERROR_NO_BUFS
Pufferspeicher konnte nicht zugewiesen werden.
OT_ERROR_INVALID_STATE
Die TLS-Verbindung wurde nicht initialisiert.

otBleSecureSendApplicationTlv

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

Es wird ein sicheres BLE-Datenpaket gesendet, das eine TCAT-TLV enthält.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aBuf
Ein Zeiger auf die Daten, die als Wert des TCAT-TLV senden sollen.
[in] aLength
Zahl, die die Länge des Datenpuffers angibt.
Rückgabewerte
OT_ERROR_NONE
Daten wurden gesendet.
OT_ERROR_NO_BUFS
Pufferspeicher konnte nicht zugewiesen werden.
OT_ERROR_INVALID_STATE
Die TLS-Verbindung wurde nicht initialisiert.

otBleSecureSendMessage

otError otBleSecureSendMessage(
  otInstance *aInstance,
  otMessage *aMessage
)

Sendet eine sichere BLE-Nachricht.

Wenn der Rückgabewert OT_ERROR_NONE lautet, übernimmt OpenThread die Inhaberschaft von aMessage und der Aufrufer sollte nicht mehr auf aMessage verweisen. Wenn der Rückgabewert nicht OT_ERROR_NONE ist, behält der Aufrufer die Inhaberschaft von aMessage und gibt aMessage frei, wenn der Nachrichtenpuffer nicht mehr benötigt wird.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aMessage
Ein Zeiger auf die zu sendende Nachricht.

Details
Rückgabewerte
OT_ERROR_NONE
Nachricht wurde gesendet.
OT_ERROR_NO_BUFS
Pufferspeicher konnte nicht zugewiesen werden.
OT_ERROR_INVALID_STATE
Die TLS-Verbindung wurde nicht initialisiert.

otBleSecureSetCaCertificateChain

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

Legt die vertrauenswürdigen Top-Level-Zertifizierungsstellen fest.

Wird zum Validieren des Zertifikats des Peers benötigt.

TLS-Modus „ECDHE ECDSA mit AES 128 CCM 8“ für sicheres BLE.

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

otBleSecureSetCertificate

void otBleSecureSetCertificate(
  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 TLS-Sitzung mit TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 fest.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aX509Cert
Ein Verweis auf das X509-Zertifikat im PEM-Format.
[in] aX509Length
Die Länge des Zertifikats.
[in] aPrivateKey
Ein Zeiger auf den privaten Schlüssel im PEM-Format.
[in] aPrivateKeyLength
Die Länge des privaten Schlüssels.

otBleSecureSetPsk

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

Legt den vorab freigegebenen Schlüssel (Pre-Shared Key, PSK) und die Cipher Suite TLS_PSK_WITH_AES_128_CCM_8 fest.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aPsk
Ein Zeiger auf den PSK.
[in] aPskLength
Die PSK-Länge.
[in] aPskIdentity
Der Identitätsname für den PSK.
[in] aPskIdLength
Die PSK-Identitätslänge.

otBleSecureSetSslAuthMode

void otBleSecureSetSslAuthMode(
  otInstance *aInstance,
  bool aVerifyPeerCertificate
)

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

Deaktivieren oder aktivieren Sie die Verifizierung des 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.

otBleSecureStart

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

Startet den BLE Secure-Dienst.

Wenn der TLV-Modus aktiviert ist, wird die Funktion aReceiveHandler aufgerufen, sobald eine vollständige TLV empfangen wurde und der Nachrichtenversatz auf den TLV-Wert verweist.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aConnectHandler
Ein Zeiger auf eine Funktion, die aufgerufen wird, wenn sich der Verbindungsstatus ändert.
[in] aReceiveHandler
Ein Zeiger auf eine Funktion, die aufgerufen wird, sobald Daten über die TLS-Verbindung empfangen wurden.
[in] aTlvMode
Boolescher Wert, der angibt, ob der Linienmodus aktiviert werden soll
[in] aContext
Ein Zeiger auf beliebige Kontextinformationen. Kann bei Nichtverwendung NULL sein.
Rückgabewerte
OT_ERROR_NONE
BLE Secure-Server wurde gestartet.
OT_ERROR_ALREADY
Der Service wurde bereits genannt.

otBleSecureStop

void otBleSecureStop(
  otInstance *aInstance
)

Stoppt den BLE Secure-Server.

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

otBleSecureTcatStart

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

Aktiviert das TCAT-Protokoll über BLE Secure.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aVendorInfo
Ein Zeiger auf die Anbieterinformationen (muss nach dem Methodenaufruf gültig bleiben, kann NULL sein).
[in] aHandler
Ein Zeiger auf eine Funktion, die nach Abschluss des Join-Vorgangs aufgerufen wird.
Rückgabewerte
OT_ERROR_NONE
Rolle „BLE Secure Joiner“ wurde gestartet.
OT_ERROR_INVALID_ARGS
aElevationPsk oder aVendorInfo ist ungültig.
OT_ERROR_INVALID_STATE
Die BLE-Funktion wurde nicht gestartet oder der Linienmodus ist nicht ausgewählt.

Makros

OT_TCAT_MAX_SERVICE_NAME_LENGTH

 OT_TCAT_MAX_SERVICE_NAME_LENGTH 15

Maximale Stringlänge eines UDP- oder TCP-Dienstnamens (ohne Nullzeichen).

Ressourcen

OpenThread API-Referenzthemen stammen aus dem Quellcode, der auf GitHub verfügbar ist. Weitere Informationen finden Sie unter Ressourcen. Dort können Sie auch einen Beitrag zu unserer Dokumentation leisten.