Sicurezza BLE

Questo modulo include funzioni che controllano la comunicazione BLE Secure (TLS su BLE).

Riepilogo

Questo modulo include funzioni che implementano la comunicazione TCAT.

Le funzioni in questo modulo sono disponibili quando è abilitata la funzionalità dell'API BLE Secure (OPENTHREAD_CONFIG_BLE_TCAT_ENABLE).

Le funzioni in questo modulo sono disponibili quando la funzionalità TCAT (OPENTHREAD_CONFIG_BLE_TCAT_ENABLE) è abilitata.

Enumerazioni

otTcatApplicationProtocol{
  OT_TCAT_APPLICATION_PROTOCOL_NONE = 0,
  OT_TCAT_APPLICATION_PROTOCOL_STATUS = 1,
  OT_TCAT_APPLICATION_PROTOCOL_TCP = 2
}
enum
Rappresenta il protocollo dell'applicazione 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
Rappresenta una classe di comando 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
Rappresenta il codice di stato TCAT.

Typedef

otHandleBleSecureConnect)(otInstance *aInstance, bool aConnected, bool aBleConnectionOpen, void *aContext) typedef
void(*
Puntatore da chiamare quando cambia lo stato di connessione sicura.
otHandleBleSecureReceive typedef
Puntatore da chiamare quando i dati sono stati ricevuti tramite una connessione TLS sicura BLE.
otHandleTcatApplicationDataReceive)(otInstance *aInstance, const otMessage *aMessage, int32_t aOffset, otTcatApplicationProtocol aTcatApplicationProtocol, const char *aServiceName, void *aContext) typedef
void(*
Puntatore da chiamare quando i dati dell'applicazione sono stati ricevuti tramite una connessione TLS TCAT.
otHandleTcatJoin)(otError aError, void *aContext) typedef
void(*
Puntatore da chiamare per notificare il completamento di un'operazione di join.
otTcatApplicationProtocol typedef
Rappresenta il protocollo dell'applicazione TCAT.
otTcatCommandClass typedef
Rappresenta una classe di comando TCAT.
otTcatStatusCode typedef
Rappresenta il codice di stato TCAT.
otTcatVendorInfo typedef
Questa struttura rappresenta le informazioni di un fornitore TCAT.

Funzioni

otBleSecureConnect(otInstance *aInstance)
Inizializza la sessione TLS con un peer utilizzando una connessione BLE già aperta.
otBleSecureDisconnect(otInstance *aInstance)
void
Interrompe la connessione BLE e TLS.
otBleSecureFlush(otInstance *aInstance)
Svuota il buffer di invio.
otBleSecureGetPeerCertificateBase64(otInstance *aInstance, unsigned char *aPeerCert, size_t *aCertLength)
Restituisce il certificato x509 del peer con codifica Base64.
otBleSecureGetPeerSubjectAttributeByOid(otInstance *aInstance, const char *aOid, size_t aOidLength, uint8_t *aAttributeBuffer, size_t *aAttributeLength, int *aAsn1Type)
Restituisce un valore dell'attributo identificato dal relativo OID dal soggetto del certificato x509 peer.
otBleSecureGetThreadAttributeFromOwnCertificate(otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength)
Restituisce un valore di attributo per l'OID 1.3.6.1.4.1.44970.x dalle estensioni v3 del proprio certificato x509, dove l'ultima cifra x è impostata su aThreadOidDescriptor.
otBleSecureGetThreadAttributeFromPeerCertificate(otInstance *aInstance, int aThreadOidDescriptor, uint8_t *aAttributeBuffer, size_t *aAttributeLength)
Restituisce un valore di attributo per l'OID 1.3.6.1.4.1.44970.x dalle estensioni v3 del certificato peer x509, dove l'ultima cifra x è impostata su aThreadOidDescriptor.
otBleSecureIsCommandClassAuthorized(otInstance *aInstance, otTcatCommandClass aCommandClass)
bool
Indica se una classe di comando TCAT è autorizzata o meno.
otBleSecureIsConnected(otInstance *aInstance)
bool
Indica se la sessione TLS è connessa o meno.
otBleSecureIsConnectionActive(otInstance *aInstance)
bool
Indica se la sessione TLS è attiva (connessa o connessa).
otBleSecureIsTcatEnabled(otInstance *aInstance)
bool
Indica se l'agente TCAT è abilitato o meno.
otBleSecureSend(otInstance *aInstance, uint8_t *aBuf, uint16_t aLength)
Invia un pacchetto di dati BLE sicuro.
otBleSecureSendApplicationTlv(otInstance *aInstance, uint8_t *aBuf, uint16_t aLength)
Invia un pacchetto di dati BLE sicuro contenente un TCAT Send Application Data TLV.
otBleSecureSendMessage(otInstance *aInstance, otMessage *aMessage)
Invia un messaggio BLE sicuro.
otBleSecureSetCaCertificateChain(otInstance *aInstance, const uint8_t *aX509CaCertificateChain, uint32_t aX509CaCertChainLength)
void
Imposta le CA di primo livello attendibili.
otBleSecureSetCertificate(otInstance *aInstance, const uint8_t *aX509Cert, uint32_t aX509Length, const uint8_t *aPrivateKey, uint32_t aPrivateKeyLength)
void
Imposta il certificato X509 del dispositivo locale con la chiave privata corrispondente per la sessione TLS con 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
Imposta la chiave precondivisa (PSK) e la suite di crittografia TLS_PSK_WITH_AES_128_CCM_8.
otBleSecureSetSslAuthMode(otInstance *aInstance, bool aVerifyPeerCertificate)
void
Imposta la modalità di autenticazione per la connessione sicura BLE.
otBleSecureStart(otInstance *aInstance, otHandleBleSecureConnect aConnectHandler, otHandleBleSecureReceive aReceiveHandler, bool aTlvMode, void *aContext)
Avvia il servizio BLE Secure.
otBleSecureStop(otInstance *aInstance)
void
Interrompe il server sicuro BLE.
otBleSecureTcatStart(otInstance *aInstance, const otTcatVendorInfo *aVendorInfo, otHandleTcatJoin aHandler)
Consente di attivare il protocollo TCAT tramite BLE Secure.

Strutture

otTcatVendorInfo

Questa struttura rappresenta le informazioni di un fornitore TCAT.

Enumerazioni

otTcatApplicationProtocol

 otTcatApplicationProtocol

Rappresenta il protocollo dell'applicazione TCAT.

Proprietà
OT_TCAT_APPLICATION_PROTOCOL_NONE

Messaggio inviato senza attivare l'agente TCAT.

OT_TCAT_APPLICATION_PROTOCOL_STATUS

Messaggio diretto a un servizio UDP.

OT_TCAT_APPLICATION_PROTOCOL_TCP

Messaggio diretto a un servizio TCP.

otTcatCommandClass

 otTcatCommandClass

Rappresenta una classe di comando TCAT.

Proprietà
OT_TCAT_COMMAND_CLASS_APPLICATION

Comandi TCAT relativi al livello dell'applicazione.

OT_TCAT_COMMAND_CLASS_COMMISSIONING

Comandi TCAT relativi alla messa in servizio.

OT_TCAT_COMMAND_CLASS_DECOMMISSIONING

Comandi TCAT relativi al ritiro.

OT_TCAT_COMMAND_CLASS_EXTRACTION

Comandi TCAT relativi all'estrazione delle chiavi.

OT_TCAT_COMMAND_CLASS_GENERAL

Comandi TCAT relativi alle operazioni generali.

otTcatStatusCode

 otTcatStatusCode

Rappresenta il codice di stato TCAT.

Proprietà
OT_TCAT_STATUS_BUSY

Impossibile eseguire il comando perché la risorsa è occupata.

OT_TCAT_STATUS_GENERAL_ERROR

Si è verificato un errore che non corrisponde a nessun'altra categoria.

OT_TCAT_STATUS_HASH_ERROR

Il valore hash presentato dal commissario non era corretto.

OT_TCAT_STATUS_PARSE_ERROR

Impossibile analizzare correttamente la richiesta o il comando.

OT_TCAT_STATUS_SUCCESS

Il comando o la richiesta sono stati elaborati correttamente.

OT_TCAT_STATUS_UNAUTHORIZED

Il mittente non dispone di autorizzazioni sufficienti per il comando fornito.

OT_TCAT_STATUS_UNDEFINED

Il valore, i dati o il servizio richiesti non sono definiti (attualmente) o non sono presenti.

OT_TCAT_STATUS_UNSUPPORTED

Il comando richiesto o il TLV ricevuto non sono supportati.

OT_TCAT_STATUS_VALUE_ERROR

Il valore del TLV trasmesso contiene un errore.

Typedef

otHandleBleSecureConnect

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

Puntatore da chiamare quando cambia lo stato di connessione sicura.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aConnected
TRUE, se è stata stabilita una connessione sicura, FALSE negli altri casi.
[in] aBleConnectionOpen
TRUE se è stata stabilita una connessione BLE per trasferire uno stream di dati TLS, altrimenti FALSE.
[in] aContext
Un puntatore a informazioni di contesto arbitrarie.

otHandleBleSecureReceive

otHandleTcatApplicationDataReceive otHandleBleSecureReceive

Puntatore da chiamare quando i dati sono stati ricevuti tramite una connessione TLS sicura BLE.

otHandleTcatApplicationDataReceive

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

Puntatore da chiamare quando i dati dell'applicazione sono stati ricevuti tramite una connessione TLS TCAT.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aMessage
Un puntatore al messaggio.
[in] aOffset
L'offset dove iniziano i dati dell'applicazione.
[in] aTcatApplicationProtocol
Il tipo di protocollo del messaggio ricevuto.
[in] aServiceName
Il nome del servizio a cui viene reindirizzato il messaggio.
[in] aContext
Un puntatore a informazioni di contesto arbitrarie.

otHandleTcatJoin

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

Puntatore da chiamare per notificare il completamento di un'operazione di join.

Dettagli
Parametri
[in] aError
OT_ERROR_NONE se il processo di unione è riuscito. OT_ERROR_WARNING se il processo di partecipazione non è riuscito a causa di credenziali di sicurezza.
[in] aContext
Un puntatore a informazioni di contesto arbitrarie.

otTcatApplicationProtocol

enum otTcatApplicationProtocol otTcatApplicationProtocol

Rappresenta il protocollo dell'applicazione TCAT.

otTcatCommandClass

enum otTcatCommandClass otTcatCommandClass

Rappresenta una classe di comando TCAT.

otTcatStatusCode

enum otTcatStatusCode otTcatStatusCode

Rappresenta il codice di stato TCAT.

otTcatVendorInfo

struct otTcatVendorInfo otTcatVendorInfo

Questa struttura rappresenta le informazioni di un fornitore TCAT.

I contenuti di questa struttura DEVONO rimanere invariati mentre è in esecuzione una sessione TCAT.

Funzioni

otBleSecureConnect

otError otBleSecureConnect(
  otInstance *aInstance
)

Inizializza la sessione TLS con un peer utilizzando una connessione BLE già aperta.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Valori restituiti
OT_ERROR_NONE
Connessione TLS avviata.

otBleSecureDisconnect

void otBleSecureDisconnect(
  otInstance *aInstance
)

Interrompe la connessione BLE e TLS.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.

otBleSecureFlush

otError otBleSecureFlush(
  otInstance *aInstance
)

Svuota il buffer di invio.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Valori restituiti
OT_ERROR_NONE
Svuotamento del buffer di output riuscito.
OT_ERROR_NO_BUFS
Impossibile allocare la memoria del buffer.
OT_ERROR_INVALID_STATE
La connessione TLS non è stata inizializzata.

otBleSecureGetPeerCertificateBase64

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

Restituisce il certificato x509 del peer con codifica Base64.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[out] aPeerCert
Un puntatore al buffer del certificato codificato in Base64.
[in,out] aCertLength
Al momento dell'input, la dimensione deve corrispondere alla dimensione massima di aPeerCert. Nell'output, la lunghezza del certificato peer codificato in base64.
Valori restituiti
OT_ERROR_NONE
Recupero del certificato peer riuscito.
OT_ERROR_INVALID_ARGS
aInstance o aCertLength non sono validi.
OT_ERROR_INVALID_STATE
Non ancora connesso.
OT_ERROR_NO_BUFS
Impossibile allocare memoria per il certificato.

otBleSecureGetPeerSubjectAttributeByOid

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

Restituisce un valore dell'attributo identificato dal relativo OID dal soggetto del certificato x509 peer.

L'OID peer è fornito in formato binario. La lunghezza dell'attributo viene impostata se l'attributo è stato letto correttamente oppure zero in caso di errore. Il tipo di ASN.1 impostato come definito nello standard ITU-T X.690 se l'attributo è stato letto correttamente.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aOid
Un puntatore all'OID da trovare.
[in] aOidLength
La lunghezza dell'OID.
[out] aAttributeBuffer
Un puntatore al buffer degli attributi.
[in,out] aAttributeLength
Al momento dell'input, la dimensione deve corrispondere alla dimensione massima di aAttributeBuffer. Nell'output, la lunghezza dell'attributo scritto nel buffer.
[out] aAsn1Type
Un puntatore al tipo ASN.1 dell'attributo scritto nel buffer.
Valori restituiti
OT_ERROR_INVALID_STATE
Non ancora connesso.
OT_ERROR_INVALID_ARGS
Lunghezza dell'attributo non valida.
OT_ERROR_NONE
Attributo letto correttamente.
OT_ERROR_NO_BUFS
Memoria insufficiente per memorizzare il valore dell'attributo.

otBleSecureGetThreadAttributeFromOwnCertificate

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

Restituisce un valore di attributo per l'OID 1.3.6.1.4.1.44970.x dalle estensioni v3 del proprio certificato x509, dove l'ultima cifra x è impostata su aThreadOidDescriptor.

La lunghezza dell'attributo viene impostata se l'attributo è stato letto correttamente oppure zero in caso di errore. È necessaria una connessione attiva.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aThreadOidDescriptor
L'ultima cifra dell'OID dell'attributo Thread.
[out] aAttributeBuffer
Un puntatore al buffer degli attributi.
[in,out] aAttributeLength
Al momento dell'input, la dimensione deve corrispondere alla dimensione massima di aAttributeBuffer. Nell'output, la lunghezza dell'attributo scritto nel buffer.
Valori restituiti
OT_ERROR_NONE
Attributo letto correttamente.
OT_ERROR_INVALID_ARGS
Lunghezza dell'attributo non valida.
OT_NOT_FOUND
L'attributo richiesto non è stato trovato.
OT_ERROR_NO_BUFS
Memoria insufficiente per memorizzare il valore dell'attributo.
OT_ERROR_INVALID_STATE
Non ancora connesso.
OT_ERROR_NOT_IMPLEMENTED
Il valore di aThreadOidDescriptor è maggiore di 127.
OT_ERROR_PARSE
Impossibile analizzare le estensioni del certificato.

otBleSecureGetThreadAttributeFromPeerCertificate

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

Restituisce un valore di attributo per l'OID 1.3.6.1.4.1.44970.x dalle estensioni v3 del certificato peer x509, dove l'ultima cifra x è impostata su aThreadOidDescriptor.

La lunghezza dell'attributo viene impostata se l'attributo è stato letto correttamente oppure zero in caso di errore. È necessaria una connessione attiva.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aThreadOidDescriptor
L'ultima cifra dell'OID dell'attributo Thread.
[out] aAttributeBuffer
Un puntatore al buffer degli attributi.
[in,out] aAttributeLength
Al momento dell'input, la dimensione deve corrispondere alla dimensione massima di aAttributeBuffer. Nell'output, la lunghezza dell'attributo scritto nel buffer.
Valori restituiti
OT_ERROR_NONE
Attributo letto correttamente.
OT_ERROR_INVALID_ARGS
Lunghezza dell'attributo non valida.
OT_NOT_FOUND
L'attributo richiesto non è stato trovato.
OT_ERROR_NO_BUFS
Memoria insufficiente per memorizzare il valore dell'attributo.
OT_ERROR_INVALID_STATE
Non ancora connesso.
OT_ERROR_NOT_IMPLEMENTED
Il valore di aThreadOidDescriptor è maggiore di 127.
OT_ERROR_PARSE
Impossibile analizzare le estensioni del certificato.

otBleSecureIsCommandClassAuthorized

bool otBleSecureIsCommandClassAuthorized(
  otInstance *aInstance,
  otTcatCommandClass aCommandClass
)

Indica se una classe di comando TCAT è autorizzata o meno.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aCommandClass
Una classe di comando da verificare.
Valori restituiti
TRUE
La classe comando è autorizzata.
FALSE
La classe comando non è autorizzata.

otBleSecureIsConnected

bool otBleSecureIsConnected(
  otInstance *aInstance
)

Indica se la sessione TLS è connessa o meno.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Valori restituiti
TRUE
La sessione TLS è connessa.
FALSE
La sessione TLS non è connessa.

otBleSecureIsConnectionActive

bool otBleSecureIsConnectionActive(
  otInstance *aInstance
)

Indica se la sessione TLS è attiva (connessa o connessa).

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Valori restituiti
TRUE
Se la sessione TLS è attiva.
FALSE
Se la sessione TLS non è attiva.

otBleSecureIsTcatEnabled

bool otBleSecureIsTcatEnabled(
  otInstance *aInstance
)

Indica se l'agente TCAT è abilitato o meno.

Dettagli
Valori restituiti
TRUE
L'agente TCAT è abilitato.
FALSE
L'agente TCAT non è abilitato.

otBleSecureSend

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

Invia un pacchetto di dati BLE sicuro.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aBuf
Un puntatore ai dati da inviare come valore di TCAT Send Application Data TLV.
[in] aLength
Un numero che indica la lunghezza del buffer di dati.
Valori restituiti
OT_ERROR_NONE
Dati inviati correttamente.
OT_ERROR_NO_BUFS
Impossibile allocare la memoria del buffer.
OT_ERROR_INVALID_STATE
La connessione TLS non è stata inizializzata.

otBleSecureSendApplicationTlv

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

Invia un pacchetto di dati BLE sicuro contenente un TCAT Send Application Data TLV.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aBuf
Un puntatore ai dati da inviare come valore di TCAT Send Application Data TLV.
[in] aLength
Un numero che indica la lunghezza del buffer di dati.
Valori restituiti
OT_ERROR_NONE
Dati inviati correttamente.
OT_ERROR_NO_BUFS
Impossibile allocare la memoria del buffer.
OT_ERROR_INVALID_STATE
La connessione TLS non è stata inizializzata.

otBleSecureSendMessage

otError otBleSecureSendMessage(
  otInstance *aInstance,
  otMessage *aMessage
)

Invia un messaggio BLE sicuro.

Se il valore restituito è OT_ERROR_NONE, OpenThread acquisisce la proprietà di aMessage e il chiamante non deve più fare riferimento a aMessage. Se il valore restituito non è OT_ERROR_NONE, il chiamante mantiene la proprietà di aMessage, liberando aMessage se il buffer dei messaggi non è più necessario.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aMessage
Un puntatore al messaggio da inviare.

Dettagli
Valori restituiti
OT_ERROR_NONE
Messaggio inviato correttamente.
OT_ERROR_NO_BUFS
Impossibile allocare la memoria del buffer.
OT_ERROR_INVALID_STATE
La connessione TLS non è stata inizializzata.

otBleSecureSetCaCertificateChain

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

Imposta le CA di primo livello attendibili.

È necessaria per convalidare il certificato del peer.

Modalità TLS "ECDHE ECDSA con AES 128 CCM 8" per BLE sicuro.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aX509CaCertificateChain
Un puntatore alla catena di CA X509 in formato PEM.
[in] aX509CaCertChainLength
La lunghezza della catena.

otBleSecureSetCertificate

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

Imposta il certificato X509 del dispositivo locale con la chiave privata corrispondente per la sessione TLS con TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aX509Cert
Un puntatore al certificato X509 in formato PEM.
[in] aX509Length
La lunghezza del certificato.
[in] aPrivateKey
Un puntatore alla chiave privata in formato PEM.
[in] aPrivateKeyLength
La lunghezza della chiave privata.

otBleSecureSetPsk

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

Imposta la chiave precondivisa (PSK) e la suite di crittografia TLS_PSK_WITH_AES_128_CCM_8.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aPsk
Un puntatore al PSK.
[in] aPskLength
La lunghezza del PSK.
[in] aPskIdentity
Il nome identità della PSK.
[in] aPskIdLength
La lunghezza dell'identità PSK.

otBleSecureSetSslAuthMode

void otBleSecureSetSslAuthMode(
  otInstance *aInstance,
  bool aVerifyPeerCertificate
)

Imposta la modalità di autenticazione per la connessione sicura BLE.

Disattiva o abilita la verifica del certificato peer. Deve essere chiamato prima dell'inizio.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aVerifyPeerCertificate
true per verificare il certificato peer.

otBleSecureStart

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

Avvia il servizio BLE Secure.

Quando la modalità TLV è attiva, la funzione aReceiveHandler viene chiamata dopo la ricezione di un TLV completo e l'offset del messaggio punta al valore TLV.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aConnectHandler
Un puntatore a una funzione che verrà chiamata quando lo stato della connessione cambia.
[in] aReceiveHandler
Un puntatore a una funzione che verrà chiamata dopo la ricezione dei dati tramite la connessione TLS.
[in] aTlvMode
Un valore booleano che indica se deve essere attivata la modalità a linee.
[in] aContext
Un puntatore a informazioni di contesto arbitrarie. Può essere NULL se non utilizzato.
Valori restituiti
OT_ERROR_NONE
Avvio del server sicuro BLE avviato.
OT_ERROR_ALREADY
Il servizio era già indicato.

otBleSecureStop

void otBleSecureStop(
  otInstance *aInstance
)

Interrompe il server sicuro BLE.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.

otBleSecureTcatStart

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

Consente di attivare il protocollo TCAT tramite BLE Secure.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aVendorInfo
Un puntatore alle informazioni sul fornitore (deve rimanere valido dopo la chiamata al metodo, può essere NULL).
[in] aHandler
Un puntatore a una funzione che viene richiamata al completamento dell'operazione di join.
Valori restituiti
OT_ERROR_NONE
Avvio del ruolo BLE Secure Joiner riuscito.
OT_ERROR_INVALID_ARGS
aElevationPsk o aVendorInfo non sono validi.
OT_ERROR_INVALID_STATE
La funzione BLE non è stata avviata o la modalità linea non è selezionata.

Macro

OT_TCAT_MAX_SERVICE_NAME_LENGTH

 OT_TCAT_MAX_SERVICE_NAME_LENGTH 15

Lunghezza massima della stringa del nome di un servizio UDP o TCP (non include il carattere nullo).

Risorse

Gli argomenti di riferimento dell'API OpenThread provengono dal codice sorgente, disponibile su GitHub. Per saperne di più o per contribuire alla nostra documentazione, consulta la sezione Risorse.