nl:: Weave
Riepilogo
Typedef |
|
---|---|
FabricSecretRotationScheme
|
typedefuint8_t
|
FabricSecretScope
|
nl::Weave::FabricSecretScopeuint8_t
Identifica la categoria di dispositivi che possono possedere e utilizzare il fabric secret. |
WeaveAuthMode
|
typedefuint16_t
Identifica come viene autenticato un nodo peer. |
WeaveEncryptionKey
|
typedef |
WeaveEncryptionType
|
typedefenum nl::Weave::WeaveEncryptionType
I tipi di crittografia per il messaggio Weave. |
WeaveExchangeFlags
|
typedefenum nl::Weave::WeaveExchangeFlags
I bit dei flag dell'intestazione Weave Exchange. |
WeaveExchangeVersion
|
typedefenum nl::Weave::WeaveExchangeVersion
La versione dell'intestazione Weave Exchange. |
WeaveMessageFlags
|
typedefenum nl::Weave::WeaveMessageFlags
Flag associati a un messaggio Weave in entrata o in uscita. |
WeaveMessageHeader
|
typedefstruct WeaveMessageInfo
|
WeaveMessageVersion
|
typedefenum nl::Weave::WeaveMessageVersion
La versione del formato del messaggio Weave. |
WeaveSubnetId
|
typedefenum nl::Weave::WeaveSubnetId
Weave ha alcuni numeri di subnet riservati per interfacce di rete distinte sui dispositivi tipici. |
Variabili |
|
---|---|
ExchangeMgr
|
NL_DLL_EXPORT WeaveExchangeManager
|
FabricState
|
NL_DLL_EXPORT WeaveFabricState
|
MessageLayer
|
NL_DLL_EXPORT WeaveMessageLayer
|
SecurityMgr
|
NL_DLL_EXPORT WeaveSecurityManager
|
WeaveConnection
|
class NL_DLL_EXPORT
|
WeaveExchangeManager
|
class NL_DLL_EXPORT
|
WeaveMessageLayer
|
class NL_DLL_EXPORT
|
gDefaultWRMPConfig = { WEAVE_CONFIG_WRMP_DEFAULT_INITIAL_RETRANS_TIMEOUT,
WEAVE_CONFIG_WRMP_DEFAULT_ACTIVE_RETRANS_TIMEOUT,
WEAVE_CONFIG_WRMP_DEFAULT_ACK_TIMEOUT,
WEAVE_CONFIG_WRMP_DEFAULT_MAX_RETRANS }
|
const WRMPConfig
|
kWeaveMsgEncAppKeyDiversifier = { 0xB1, 0x1D, 0xAE, 0x5B }[]
|
const uint8_t
Diversificatore di chiavi utilizzato per la derivazione della chiave di crittografia dei messaggi Weave.
|
Funzioni |
|
---|---|
AppGroupMasterKeyIdFromAuthMode(WeaveAuthMode authMode)
|
uint8_t
Restituisce l'ID della chiave principale del gruppo di applicazioni associato alla modalità di autenticazione.
|
CASEAuthMode(uint8_t certType)
|
WeaveAuthMode
Restituisce una modalità di autenticazione CASE corrispondente per un determinato tipo di certificato.
|
CertTypeFromAuthMode(WeaveAuthMode authMode)
|
uint8_t
Restituisce l'origine della password per la modalità di autenticazione specificata.
|
DecodeHeaderField(const uint16_t headerField, WeaveMessageInfo *msgInfo)
|
void
|
DefaultOnMessageReceived(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
|
void
|
EncodeHeaderField(const WeaveMessageInfo *msgInfo)
|
uint16_t
|
FindMessageName(uint32_t inProfileId, uint8_t inMsgType)
|
const char *
|
FindProfileName(uint32_t inProfileId)
|
const char *
|
FormatWeaveError(char *buf, uint16_t bufSize, int32_t err)
|
bool
Dato un errore Weave, restituisce una stringa C con terminazione NULL leggibile che descrive l'errore.
|
GenerateWeaveNodeId(uint64_t & nodeId)
|
NL_DLL_EXPORT WEAVE_ERROR
Genera l'ID del nodo Weave casuale.
|
GetFibonacciForIndex(uint32_t index)
|
uint32_t
Questa funzione genera un numero di Fibonacci a 32 bit per un determinato indice di 32 bit.
|
GetMessageName(uint32_t profileId, uint8_t msgType)
|
const char *
|
GetProfileName(uint32_t profileId)
|
const char *
|
GetRandU16(void)
|
uint16_t
Questa funzione genera un numero casuale senza segno a 16 bit.
|
GetRandU32(void)
|
uint32_t
Questa funzione genera un numero casuale senza segno a 32 bit.
|
GetRandU64(void)
|
uint64_t
Questa funzione genera un numero casuale senza segno a 64 bit.
|
GetRandU8(void)
|
uint8_t
Questa funzione genera un numero casuale senza segno a 8 bit.
|
GetVendorName(uint16_t vendorId)
|
const char *
|
GroupKeyAuthMode(uint32_t keyId)
|
WeaveAuthMode
Restituisce la modalità di autenticazione della chiave di gruppo corrispondente per un determinato ID chiave.
|
IPv6InterfaceIdToWeaveNodeId(uint64_t interfaceId)
|
uint64_t
Converti un identificatore dell'interfaccia dell'indirizzo IPv6 in un identificatore del nodo Weave.
|
IsCASEAuthMode(WeaveAuthMode authMode)
|
bool
True se la modalità di autenticazione si basa sul protocollo Weave CASE.
|
IsCertAuthMode(WeaveAuthMode authMode)
|
bool
True se la modalità di autenticazione si basa sul possesso di una chiave privata associata a un certificato.
|
IsGroupKeyAuthMode(WeaveAuthMode authMode)
|
bool
True se la modalità di autenticazione si basa sul possesso di una chiave di gruppo condivisa.
|
IsPASEAuthMode(WeaveAuthMode authMode)
|
bool
True se la modalità di autenticazione si basa sul protocollo Weave PASE.
|
IsPasswordAuthMode(WeaveAuthMode authMode)
|
bool
True se la modalità di autenticazione si basa sul possesso di una password condivisa.
|
IsTAKEAuthMode(WeaveAuthMode authMode)
|
bool
True se la modalità di autenticazione si basa sul protocollo Weave Take.
|
IsWRMPControlMessage(uint32_t profileId, uint8_t msgType)
|
bool
|
J2N_ByteArray(JNIEnv *env, jbyteArray inArray, uint8_t *& outArray, uint32_t & outArrayLen)
|
|
J2N_ByteArrayFieldVal(JNIEnv *env, jobject obj, const char *fieldName, uint8_t *& outArray, uint32_t & outArrayLen)
|
|
J2N_ByteArrayInPlace(JNIEnv *env, jbyteArray inArray, uint8_t *outArray, uint32_t maxArrayLen)
|
|
J2N_EnumFieldVal(JNIEnv *env, jobject obj, const char *fieldName, const char *fieldType, int & outVal)
|
|
J2N_EnumVal(JNIEnv *env, jobject enumObj, int & outVal)
|
|
J2N_IntFieldVal(JNIEnv *env, jobject obj, const char *fieldName, jint & outVal)
|
|
J2N_LongFieldVal(JNIEnv *env, jobject obj, const char *fieldName, jlong & outVal)
|
|
J2N_ShortFieldVal(JNIEnv *env, jobject obj, const char *fieldName, jshort & outVal)
|
|
J2N_StringFieldVal(JNIEnv *env, jobject obj, const char *fieldName, char *& outVal)
|
|
MakeClassName(const char *basePackageName, const char *relativeClassName, char *& classNameBuf)
|
|
PASEAuthMode(uint8_t pwSource)
|
WeaveAuthMode
Restituisce una modalità di autenticazione PASE corrispondente per una determinata origine della password.
|
PasswordSourceFromAuthMode(WeaveAuthMode authMode)
|
uint8_t
Restituisce l'origine della password per la modalità di autenticazione specificata.
|
PrintTunnelInfo(const WeaveConnectionTunnel & tun, const TCPEndPoint & fromEndPoint, const TCPEndPoint & toEndPoint, const PacketBuffer & data)
|
void
|
ToHex(const uint8_t data)
|
char
|
ToHexString(const uint8_t *data, size_t dataLen, char *& outBuf, size_t & outBufSize)
|
void
|
WeaveEncryptionKeyToString(uint8_t encType, const WeaveEncryptionKey & key, char *buf, size_t bufSize)
|
void
|
WeaveFabricIdToIPv6GlobalId(uint64_t fabricId)
|
uint64_t
Converti un identificatore di fabric Weave in un identificatore globale ULA IPv6.
|
WeaveMessageSourceToStr(char *buf, uint32_t bufSize, const WeaveMessageInfo *msgInfo)
|
void
OBSOLETO Utilizza invece WeaveMessageLayer::GetPeerDescription().
|
WeaveNodeAddrToStr(char *buf, uint32_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, WeaveConnection *con)
|
void
OBSOLETO Utilizza invece WeaveMessageLayer::GetPeerDescription().
|
WeaveNodeIdToIPv6InterfaceId(uint64_t nodeId)
|
uint64_t
Converti un identificatore del nodo Weave in un identificatore di interfaccia dell'indirizzo IPv6.
|
max(const _T & a, const _T & b)
|
const _T &
|
min(const _T & a, const _T & b)
|
const _T &
|
Corsi |
|
---|---|
nl:: |
Acquisisce il target previsto di una comunicazione Weave e le informazioni di configurazione associate. |
nl:: |
Interfaccia per la gestione di un contatore come valore intero. |
nl:: |
Questa classe rappresenta una conversazione in corso (ExchangeContext) tra due o più nodi. |
nl:: |
Questa classe delegata astratta comunica i cambiamenti di stato del fabric. |
nl:: |
Per gestire e manipolare un elenco di porte host, una raccolta compatta con codifica binaria di tuple di identificatori di host e porte associate a Weave Service Directory. |
nl:: |
|
nl:: |
Una classe per la gestione di un contatore con aumento monotonico come valore intero. |
nl:: |
Una classe per la gestione di un contatore come valore intero che deve rimanere persistente tra i riavvii. |
nl:: |
La definizione della classe di connessione Weave. |
nl:: |
La definizione della classe WeaveConnectionTunnel, che gestisce una coppia di TCPEndPoints le cui WeaveConnection originali sono state accoppiate e tra i quali WeaveMessageLayer inoltra tutti i dati e le chiusure delle connessioni. |
nl:: |
|
nl:: |
Consente di specificare il profilo e il tipo di messaggio Weave di un determinato messaggio Weave all'interno di ExchangeContext. |
nl:: |
Questa classe viene utilizzata per gestire ExchangeContext con altri nodi Weave. |
nl:: |
Dichiarazione di WeaveFabricState. |
nl:: |
La definizione dell'identificatore della chiave Weave. |
nl:: |
La definizione della classe WeaveMessageLayer, che gestisce la comunicazione con gli altri nodi Weave. |
nl:: |
Contiene informazioni sulla chiave di crittografia dei messaggi Weave. |
nl:: |
Cache delle chiavi per le chiavi di crittografia dei messaggi Weave. |
nl:: |
|
nl:: |
Oggetto comune di base per l'implementazione di risponditori non richiesti (server) del profilo Weave che incapsula la convalida di richieste autenticate e l'invio di report sullo stato, oltre a fornire spazio di archiviazione comune dei membri dei dati per lo stato della fabric e di un gestore di Exchange. |
nl:: |
Una classe di base comune per l'implementazione di oggetti delegati del server Weave. |
nl:: |
Contiene informazioni su una chiave di sessione Weave. |
nl:: |
Trasmette lo stato di comunicazione necessario per inviare/ricevere messaggi con un altro nodo. |
Strutture |
|
---|---|
nl:: |
|
nl:: |
La configurazione WRMP. |
nl:: |
Informazioni su un messaggio Weave in fase di invio o ricezione. |
Unione |
|
---|---|
nl:: |
Spazi dei nomi |
|
---|---|
nl:: |
Questo spazio dei nomi include tutte le interfacce all'interno di Weave per lavorare con Abstract Syntax Notation One (ASN.1). |
nl:: |
Questo spazio dei nomi include tutte le interfacce di Weave per il supporto crittografico condiviso. |
nl:: |
|
nl:: |
|
nl:: |
Questo spazio dei nomi fornisce funzioni per: |
nl:: |
Questo spazio dei nomi include tutte le interfacce all'interno di Weave per il supporto del logging condiviso. |
nl:: |
|
nl:: |
Questo spazio dei nomi include tutte le interfacce all'interno dei profili Weave per Weave, sia Common che di Nest Labs specifici. |
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
Definizioni per l'utilizzo di dati codificati in formato Weave TLV. |
nl:: |
Questo spazio dei nomi include le interfacce per il modulo di indirizzo e routing Weave, un modulo portatile per la configurazione di route e indirizzi IP Weave. |
Enumerazioni
@21
@21
Proprietà | |
---|---|
kFlagAckPending
|
Se è prevista una risposta per un messaggio inviato. |
kFlagAutoReleaseConnection
|
Rilascia automaticamente la chiave di crittografia del messaggio quando il contesto di Exchange viene liberato. |
kFlagAutoReleaseKey
|
Se impostato, indica che è stato ricevuto almeno un messaggio dal peer in questo contesto di scambio. |
kFlagAutoRequestAck
|
Questo contesto è stato associato a una WeaveConnection. |
kFlagConnectionClosed
|
Questo contesto è l'elemento che ha dato inizio allo scambio. |
kFlagDropAck
|
Se impostato, questa opzione richiede automaticamente una conferma ogni volta che un messaggio viene inviato tramite UDP. |
kFlagMsgRcvdFromPeer
|
Se impostato, significa che almeno un messaggio ricevuto su questa piattaforma di scambio ha richiesto una conferma. Questo flag viene letto dall'applicazione per decidere se deve richiedere una conferma del messaggio di risposta che sta per inviare. Questo flag può anche indicare se il peer utilizza WRMP. |
kFlagPeerRequestedAck
|
Se impostato, significa che è presente una conferma in attesa di essere rinviata. |
kFlagResponseExpected
|
Solo per uso interno e debug: se impostato, il livello di scambio non invia una conferma. |
kFlagUseEphemeralUDPPort
|
Rilascia automaticamente la WeaveConnection associata quando il contesto della piattaforma di scambio viene liberato. |
@36
@36
@37
@37
@38
@38
Proprietà | |
---|---|
kFabricIdDefaultForTest
|
ID fabric predefinito, che deve essere utilizzato solo a scopo di test. |
@39
@39
Identifica lo scopo o l'applicazione del certificato.
Un tipo di certificato è un'etichetta che descrive lo scopo o l'applicazione di un certificato. I tipi di certificati non sono riportati come attributi dei certificati corrispondenti, ma derivano dalla struttura del certificato e/o dal contesto in cui viene utilizzato. L'enumerazione del tipo di certificato include un insieme di valori predefiniti che descrivono le applicazioni di certificato di uso comune. Gli sviluppatori possono anche estendere l'intervallo di valori del tipo di certificato con tipi specifici dell'applicazione, che descrivono certificati personalizzati o certificati con proprietà di sicurezza univoche.
I tipi di certificati vengono utilizzati principalmente nell'implementazione dei criteri di controllo dell'accesso, in cui l'accesso alle funzionalità dell'applicazione è influenzato dal tipo di certificato presentato dal richiedente.
Proprietà | |
---|---|
kCertType_AccessToken
|
Un certificato del token di accesso Weave. |
kCertType_AppDefinedBase
|
I tipi di certificato specifici dell'applicazione devono avere valori >= questo valore. |
kCertType_CA
|
Un certificato CA. |
kCertType_Device
|
Un certificato del dispositivo Weave. |
kCertType_FirmwareSigning
|
Un certificato di firma del firmware Weave. |
kCertType_General
|
Il certificato è di tipo generale o non specifico. |
kCertType_Max
|
I tipi di certificato non devono essere maggiori di questo valore. |
kCertType_NotSpecified
|
Il tipo di certificato non è stato specificato. |
kCertType_ServiceEndpoint
|
Un certificato dell'endpoint di servizio Weave. |
@40
@40
Identifica l'origine della password utilizzata in un protocollo di autenticazione basato su password (ad es.
PASE Weave)
@41
@41
Proprietà | |
---|---|
kWeaveAuthModeCategory_AppDefinedBase
|
Valore di base per le categorie di autenticazione definite dall'applicazione. |
kWeaveAuthModeCategory_CASE
|
Peer autenticato utilizzando il protocollo Weave CASE. |
kWeaveAuthModeCategory_General
|
Peer si è autenticato utilizzando uno di un insieme di meccanismi generali. |
kWeaveAuthModeCategory_GroupKey
|
Peer autenticato utilizzando una chiave di gruppo condivisa. |
kWeaveAuthModeCategory_PASE
|
Peer autenticato utilizzando il protocollo Weave PASE. |
kWeaveAuthModeCategory_TAKE
|
Peer autenticato utilizzando il protocollo Weave Take. |
kWeaveAuthMode_CASE_AccessToken
|
Il peer è stato autenticato utilizzando CASE con il certificato del token di accesso Weave. |
kWeaveAuthMode_CASE_AnyCert
|
Peer autenticato utilizzando CASE con certificato arbitrario o certificato di tipo sconosciuto. |
kWeaveAuthMode_CASE_Device
|
Peer autenticato utilizzando CASE con il certificato del dispositivo Weave. |
kWeaveAuthMode_CASE_GeneralCert
|
Peer autenticato utilizzando CASE con un tipo di certificato generale o non specifico. |
kWeaveAuthMode_CASE_ServiceEndPoint
|
Peer autenticato utilizzando CASE con il certificato dell'endpoint di servizio Weave. |
kWeaveAuthMode_NotSpecified
|
Modalità di autenticazione non specificata. |
kWeaveAuthMode_PASE_PairingCode
|
Peer autenticato tramite PASE con codice di accoppiamento dispositivo. |
kWeaveAuthMode_TAKE_IdentificationKey
|
Peer autenticato utilizzando Take con una chiave di identificazione token. |
kWeaveAuthMode_Unauthenticated
|
Peer non autenticato. |
@42
@42
Proprietà | |
---|---|
kFabricSecretScope_All
|
Tutti i dispositivi possono disporre di un fabric secret corrispondente. |
@43
@43
Proprietà | |
---|---|
kTestKey_AES128CTRSHA1_DataKeyByte
|
Valore byte che crea la chiave di crittografia e viene utilizzata solo per i test. |
kTestKey_AES128CTRSHA1_IntegrityKeyByte
|
Valore byte che crea la chiave di integrità, utilizzata solo per i test. |
@44
@44
Dimensione diversificatore della chiave dell'applicazione per la crittografia dei messaggi Weave.
@45
@45
@53
@53
@54
@54
Proprietà | |
---|---|
kWeavePeerDescription_MaxLength
|
Lunghezza massima della stringa (incluso il carattere NUL) restituita da WeaveMessageLayer::GetPeerDescription(). |
@55
@55
Definizioni relative all'intestazione di un messaggio Weave codificato.
Proprietà | |
---|---|
kWeaveHeaderFlag_DestNodeId
|
Indica che l'ID nodo di destinazione è presente nell'intestazione del messaggio Weave. |
kWeaveHeaderFlag_MsgCounterSyncReq
|
Indica che il mittente richiede la sincronizzazione del contatore dei messaggi. |
kWeaveHeaderFlag_SourceNodeId
|
Indica che l'ID nodo di origine è presente nell'intestazione del messaggio Weave. |
kWeaveHeaderFlag_TunneledData
|
Indica che il payload dei messaggi Weave è un pacchetto IP con tunnel. |
@56
@56
Definizioni dei campi di bit per gli identificatori EUI-64 IEEE.
Proprietà | |
---|---|
kEUI64_IG_Group
|
Valore di bit di un singolo/gruppo che indica l'identificatore EUI-64 di un indirizzo di gruppo. |
kEUI64_IG_Individual
|
Valore di bit di un singolo indirizzo/gruppo che indica un identificatore EUI-64 di un singolo indirizzo. |
kEUI64_IG_Mask
|
Maschera di bit per il bit individuale/gruppo (I/G) all'interno di un identificatore EUI-64. Il valore 0 indica che l'ID è un indirizzo singolo. Il valore 1 indica che l'ID è un indirizzo di gruppo. |
kEUI64_UL_Local
|
Valore in bit universale/locale che indica un identificatore EUI-64 amministrato localmente. |
kEUI64_UL_Mask
|
Maschera di bit per il bit Universal/Local (U/L) all'interno di un identificatore EUI-64. Il valore 0 indica che l'ID è amministrato universalmente (a livello globale). Il valore 1 indica che l'ID è amministrato localmente. |
kEUI64_UL_Unversal
|
Valore di bit universale/locale che indica un identificatore EUI-64 amministrato universalmente. |
@57
@57
Intervalli speciali di ID nodi Weave.
Proprietà | |
---|---|
kMaxAlwaysLocalWeaveNodeId
|
Gli identificatori dei nodi Weave minori o uguali a questo valore sono considerati locali per comodità di test. |
WeaveEncryptionType
WeaveEncryptionType
I tipi di crittografia per il messaggio Weave.
Proprietà | |
---|---|
kWeaveEncryptionType_AES128CTRSHA1
|
Messaggio criptato utilizzando la crittografia AES-128-CTR con integrità del messaggio HMAC-SHA-1. |
kWeaveEncryptionType_None
|
Messaggio non criptato. |
WeaveExchangeFlags
WeaveExchangeFlags
I bit dei flag dell'intestazione Weave Exchange.
Proprietà | |
---|---|
kWeaveExchangeFlag_AckId
|
Imposta quando il messaggio corrente è una conferma di un messaggio ricevuto in precedenza. |
kWeaveExchangeFlag_Initiator
|
Imposta quando il messaggio corrente viene inviato da chi ha avviato uno scambio. |
kWeaveExchangeFlag_NeedsAck
|
Da impostare quando il messaggio corrente richiede una conferma al destinatario. |
WeaveExchangeVersion
WeaveExchangeVersion
La versione dell'intestazione Weave Exchange.
WeaveMessageFlags
WeaveMessageFlags
Flag associati a un messaggio Weave in entrata o in uscita.
I valori definiti qui vengono utilizzati all'interno del campo WeaveMessageInfo.Flags.
Proprietà | |
---|---|
kWeaveMessageFlag_DefaultMulticastSourceAddress
|
Indica che la selezione dell'indirizzo di origine IPv6 predefinito deve essere utilizzata per l'invio di messaggi multicast IPv6. |
kWeaveMessageFlag_DelaySend
|
Indica che l'invio del messaggio deve essere ritardato. |
kWeaveMessageFlag_DestNodeId
|
Indica che l'ID nodo di destinazione è presente nell'intestazione del messaggio Weave. |
kWeaveMessageFlag_DuplicateMessage
|
Indica che il messaggio è un duplicato di un messaggio ricevuto in precedenza. |
kWeaveMessageFlag_FromInitiator
|
Indica che l'origine del messaggio è l'utente che ha avviato lo scambio Weave. |
kWeaveMessageFlag_MessageEncoded
|
Indica che il messaggio Weave è già codificato. |
kWeaveMessageFlag_MsgCounterSyncReq
|
Indica che il mittente richiede la sincronizzazione del contatore dei messaggi del peer. |
kWeaveMessageFlag_MulticastFromLinkLocal
|
Alias deprecato per |
kWeaveMessageFlag_PeerGroupMsgIdNotSynchronized
|
Indica che il contatore dei messaggi relativi alle chiavi del gruppo del peer non è sincronizzato. |
kWeaveMessageFlag_PeerRequestedAck
|
Indica che il mittente del messaggio ha richiesto una conferma. |
kWeaveMessageFlag_RetainBuffer
|
Indica che il buffer dei messaggi non deve essere liberato dopo l'invio. |
kWeaveMessageFlag_ReuseMessageId
|
Indica che l'identificatore del messaggio esistente deve essere riutilizzato. |
kWeaveMessageFlag_ReuseSourceId
|
Indica che l'identificatore del nodo di origine esistente deve essere riutilizzato. |
kWeaveMessageFlag_SourceNodeId
|
Indica che l'ID nodo di origine è presente nell'intestazione del messaggio Weave. |
kWeaveMessageFlag_TunneledData
|
Indica che il payload dei messaggi Weave è un pacchetto IP con tunnel. |
kWeaveMessageFlag_ViaEphemeralUDPPort
|
Indica che il messaggio viene inviato/ricevuto tramite la porta UDP temporanea locale. |
WeaveMessageVersion
WeaveMessageVersion
La versione del formato del messaggio Weave.
Weave sceglierà la versione del messaggio appropriata in base al formato del frame richiesto per il messaggio Weave. Per impostazione predefinita, la versione del messaggio è kWeaveMessageVersion_V1. Quando si utilizza Weave Reliable Messaging, ad esempio, la versione è kWeaveMessageVersion_V2.
Proprietà | |
---|---|
kWeaveMessageVersion_Unspecified
|
Versione del messaggio non specificata. |
kWeaveMessageVersion_V1
|
Versione V1 del formato dell'intestazione del messaggio. |
kWeaveMessageVersion_V2
|
Versione del formato dell'intestazione del messaggio V2. |
WeaveSubnetId
WeaveSubnetId
Weave ha alcuni numeri di subnet riservati per interfacce di rete distinte sui dispositivi tipici.
Questi numeri sono assegnati qui a costanti simboliche. Questi numeri di subnet vengono utilizzati da Weave per configurare indirizzi ULA IPv6 sulle interfacce appropriate.
Proprietà | |
---|---|
kWeaveSubnetId_MobileDevice
|
L'identificatore di subnet per tutti i dispositivi mobili. |
kWeaveSubnetId_NotSpecified
|
Riservato come valore non specificato o nullo. |
kWeaveSubnetId_PrimaryWiFi
|
Il numero della subnet dell'interfaccia radio Wi-Fi. |
kWeaveSubnetId_Service
|
L'identificatore di subnet per gli endpoint del servizio Nest. |
kWeaveSubnetId_ThreadAlarm
|
Il numero della subnet dell'interfaccia radio dell'allarme Thread. |
kWeaveSubnetId_ThreadMesh
|
L'identificatore della subnet dell'interfaccia radio mesh di Thread. |
kWeaveSubnetId_WiFiAP
|
Il numero della subnet dell'interfaccia dell'AP Wi-Fi locale. |
WeaveVendorId
WeaveVendorId
Typedef
FabricSecretRotationScheme
uint8_t FabricSecretRotationScheme
FabricSecretScope
uint8_t FabricSecretScope
Identifica la categoria di dispositivi che possono possedere e utilizzare il fabric secret.
WeaveAuthMode
uint16_t WeaveAuthMode
Identifica come viene autenticato un nodo peer.
WeaveAuthMode descrive il modo in cui un nodo peer è stato, o dovrebbe essere, autenticato durante uno scambio di messaggi Weave. In un contesto di avvio, le applicazioni usano WeaveAuthMode per esprimere la modalità di autenticazione peer desiderata per uno scambio, indicando così ai livelli di sicurezza e messaggistica Weave di ottenere la modalità desiderata o non riuscire a comunicare. In un contesto di risposta, WeaveAuthMode identifica il modo in cui è stato autenticato il nodo richiedente (il peer), consentendo all'applicazione che risponde di applicare i controlli dell'accesso in base a queste informazioni.
Il metodo WeaveAuthMode assegnato a un messaggio Weave in entrata è correlato alla natura della chiave utilizzata per criptare il messaggio. WeaveAuthMode deriva dal meccanismo in base al quale è stata stabilita la chiave e dai criteri utilizzati per verificare l'identità delle parti comunicanti al momento della creazione della chiave.
WeaveAuthMode include un insieme di valori predefiniti che descrivono le modalità di autenticazione comuni. Questi termini sono suddivisi in base al meccanismo di accordo chiave (CASE, PASE, GroupKey e così via). Gli sviluppatori possono estendere WeaveAuthMode definendo modalità specifiche dell'applicazione, che possono collegare a chiavi di crittografia specifiche.
WeaveEncryptionKey
union nl::Weave::WeaveEncryptionKey WeaveEncryptionKey
WeaveEncryptionType
enum nl::Weave::WeaveEncryptionType WeaveEncryptionType
I tipi di crittografia per il messaggio Weave.
WeaveExchangeFlags
enum nl::Weave::WeaveExchangeFlags WeaveExchangeFlags
I bit dei flag dell'intestazione Weave Exchange.
WeaveExchangeVersion
enum nl::Weave::WeaveExchangeVersion WeaveExchangeVersion
La versione dell'intestazione Weave Exchange.
WeaveMessageFlags
enum nl::Weave::WeaveMessageFlags WeaveMessageFlags
Flag associati a un messaggio Weave in entrata o in uscita.
I valori definiti qui vengono utilizzati all'interno del campo WeaveMessageInfo.Flags.
WeaveMessageHeader
struct WeaveMessageInfo WeaveMessageHeader
WeaveMessageVersion
enum nl::Weave::WeaveMessageVersion WeaveMessageVersion
La versione del formato del messaggio Weave.
Weave sceglierà la versione del messaggio appropriata in base al formato del frame richiesto per il messaggio Weave. Per impostazione predefinita, la versione del messaggio è kWeaveMessageVersion_V1. Quando si utilizza Weave Reliable Messaging, ad esempio, la versione è kWeaveMessageVersion_V2.
WeaveSubnetId
enum nl::Weave::WeaveSubnetId WeaveSubnetId
Weave ha alcuni numeri di subnet riservati per interfacce di rete distinte sui dispositivi tipici.
Questi numeri sono assegnati qui a costanti simboliche. Questi numeri di subnet vengono utilizzati da Weave per configurare indirizzi ULA IPv6 sulle interfacce appropriate.
Variabili
ExchangeMgr
NL_DLL_EXPORT WeaveExchangeManager ExchangeMgr
FabricState
NL_DLL_EXPORT WeaveFabricState FabricState
MessageLayer
NL_DLL_EXPORT WeaveMessageLayer MessageLayer
SecurityMgr
NL_DLL_EXPORT WeaveSecurityManager SecurityMgr
WeaveConnection
class NL_DLL_EXPORT WeaveConnection
WeaveExchangeManager
class NL_DLL_EXPORT WeaveExchangeManager
WeaveMessageLayer
class NL_DLL_EXPORT WeaveMessageLayer
gDefaultWRMPConfig
const WRMPConfig gDefaultWRMPConfig = { WEAVE_CONFIG_WRMP_DEFAULT_INITIAL_RETRANS_TIMEOUT, WEAVE_CONFIG_WRMP_DEFAULT_ACTIVE_RETRANS_TIMEOUT, WEAVE_CONFIG_WRMP_DEFAULT_ACK_TIMEOUT, WEAVE_CONFIG_WRMP_DEFAULT_MAX_RETRANS }
kWeaveMsgEncAppKeyDiversifier
const uint8_t kWeaveMsgEncAppKeyDiversifier[] = { 0xB1, 0x1D, 0xAE, 0x5B }
Diversificatore di chiavi utilizzato per la derivazione della chiave di crittografia dei messaggi Weave.
Questo valore rappresenta i primi 4 byte dell'HASH SHA-1 della frase "Nest Weave Message EK and AK".
Funzioni
AppGroupMasterKeyIdFromAuthMode
uint8_t AppGroupMasterKeyIdFromAuthMode( WeaveAuthMode authMode )
Restituisce l'ID della chiave principale del gruppo di applicazioni associato alla modalità di autenticazione.
CASEAuthMode
WeaveAuthMode CASEAuthMode( uint8_t certType )
Restituisce una modalità di autenticazione CASE corrispondente per un determinato tipo di certificato.
CertTypeFromAuthMode
uint8_t CertTypeFromAuthMode( WeaveAuthMode authMode )
Restituisce l'origine della password per la modalità di autenticazione specificata.
DecodeHeaderField
void DecodeHeaderField( const uint16_t headerField, WeaveMessageInfo *msgInfo )
DefaultOnMessageReceived
void DefaultOnMessageReceived( ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload )
EncodeHeaderField
uint16_t EncodeHeaderField( const WeaveMessageInfo *msgInfo )
FindMessageName
const char * FindMessageName( uint32_t inProfileId, uint8_t inMsgType )
FindProfileName
const char * FindProfileName( uint32_t inProfileId )
FormatWeaveError
bool FormatWeaveError( char *buf, uint16_t bufSize, int32_t err )
Dato un errore Weave, restituisce una stringa C con terminazione NULL leggibile che descrive l'errore.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Restituisce |
true Se nel buffer fornito è stata scritta una stringa di descrizione.
|
||||||
Restituisce |
false Se l'errore fornito non è un errore Weave.
|
GenerateWeaveNodeId
NL_DLL_EXPORT WEAVE_ERROR GenerateWeaveNodeId( uint64_t & nodeId )
Genera l'ID del nodo Weave casuale.
Questa funzione genera un ID nodo Weave univoco a 64 bit a livello locale. Questa funzione utilizza un'origine dati casuale con una crittografia efficace per garantire l'unicità del valore generato. Tieni presente che il bit 57 dell'ID del nodo Weave generato è impostato su 1 per indicare che l'ID del nodo Weave generato è locale (non globale) univoco.
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Valori restituiti |
|
GetFibonacciForIndex
uint32_t GetFibonacciForIndex( uint32_t index )
Questa funzione genera un numero di Fibonacci a 32 bit per un determinato indice di 32 bit.
Dettagli | |
---|---|
Restituisce |
Numero di Fibonacci non firmato a 32 bit.
|
GetMessageName
const char * GetMessageName( uint32_t profileId, uint8_t msgType )
GetProfileName
const char * GetProfileName( uint32_t profileId )
GetRandU16
uint16_t GetRandU16( void )
Questa funzione genera un numero casuale senza segno a 16 bit.
Dettagli | |
---|---|
Restituisce |
Numero intero casuale senza segno a 16 bit.
|
GetRandU32
uint32_t GetRandU32( void )
Questa funzione genera un numero casuale senza segno a 32 bit.
Dettagli | |
---|---|
Restituisce |
Numero intero casuale senza segno a 32 bit.
|
GetRandU64
uint64_t GetRandU64( void )
Questa funzione genera un numero casuale senza segno a 64 bit.
Dettagli | |
---|---|
Restituisce |
Numero intero casuale senza segno a 64 bit.
|
GetRandU8
uint8_t GetRandU8( void )
Questa funzione genera un numero casuale senza segno a 8 bit.
Dettagli | |
---|---|
Restituisce |
Numero intero casuale senza segno a 8 bit.
|
GetVendorName
const char * GetVendorName( uint16_t vendorId )
GroupKeyAuthMode
WeaveAuthMode GroupKeyAuthMode( uint32_t keyId )
Restituisce la modalità di autenticazione della chiave di gruppo corrispondente per un determinato ID chiave.
IPv6InterfaceIdToWeaveNodeId
uint64_t IPv6InterfaceIdToWeaveNodeId( uint64_t interfaceId )
Converti un identificatore dell'interfaccia dell'indirizzo IPv6 in un identificatore del nodo Weave.
Per facilitare i test, gli identificatori di nodo minori o uguali a #kMaxsempreLocalWeaveNodeId (65535) sono considerati "locali" e il loro bit universale/locale è impostato su zero. Ciò semplifica la rappresentazione in formato stringa degli indirizzi IPv6 corrispondenti. Ad esempio, un ULA per l'identificatore di nodo 10
sarebbe FD00:0
:1:1::A.
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Restituisce |
l'identificatore del nodo Weave a 64 bit mappato.
|
IsCASEAuthMode
bool IsCASEAuthMode( WeaveAuthMode authMode )
True se la modalità di autenticazione si basa sul protocollo Weave CASE.
IsCertAuthMode
bool IsCertAuthMode( WeaveAuthMode authMode )
True se la modalità di autenticazione si basa sul possesso di una chiave privata associata a un certificato.
IsGroupKeyAuthMode
bool IsGroupKeyAuthMode( WeaveAuthMode authMode )
True se la modalità di autenticazione si basa sul possesso di una chiave di gruppo condivisa.
IsPASEAuthMode
bool IsPASEAuthMode( WeaveAuthMode authMode )
True se la modalità di autenticazione si basa sul protocollo Weave PASE.
IsPasswordAuthMode
bool IsPasswordAuthMode( WeaveAuthMode authMode )
True se la modalità di autenticazione si basa sul possesso di una password condivisa.
IsTAKEAuthMode
bool IsTAKEAuthMode( WeaveAuthMode authMode )
True se la modalità di autenticazione si basa sul protocollo Weave Take.
IsWRMPControlMessage
bool IsWRMPControlMessage( uint32_t profileId, uint8_t msgType )
J2N_ByteArray
WEAVE_ERROR J2N_ByteArray( JNIEnv *env, jbyteArray inArray, uint8_t *& outArray, uint32_t & outArrayLen )
J2N_ByteArrayFieldVal
WEAVE_ERROR J2N_ByteArrayFieldVal( JNIEnv *env, jobject obj, const char *fieldName, uint8_t *& outArray, uint32_t & outArrayLen )
J2N_ByteArrayInPlace
WEAVE_ERROR J2N_ByteArrayInPlace( JNIEnv *env, jbyteArray inArray, uint8_t *outArray, uint32_t maxArrayLen )
J2N_EnumFieldVal
WEAVE_ERROR J2N_EnumFieldVal( JNIEnv *env, jobject obj, const char *fieldName, const char *fieldType, int & outVal )
J2N_EnumVal
WEAVE_ERROR J2N_EnumVal( JNIEnv *env, jobject enumObj, int & outVal )
J2N_IntFieldVal
WEAVE_ERROR J2N_IntFieldVal( JNIEnv *env, jobject obj, const char *fieldName, jint & outVal )
J2N_LongFieldVal
WEAVE_ERROR J2N_LongFieldVal( JNIEnv *env, jobject obj, const char *fieldName, jlong & outVal )
J2N_ShortFieldVal
WEAVE_ERROR J2N_ShortFieldVal( JNIEnv *env, jobject obj, const char *fieldName, jshort & outVal )
J2N_StringFieldVal
WEAVE_ERROR J2N_StringFieldVal( JNIEnv *env, jobject obj, const char *fieldName, char *& outVal )
MakeClassName
WEAVE_ERROR MakeClassName( const char *basePackageName, const char *relativeClassName, char *& classNameBuf )
PASEAuthMode
WeaveAuthMode PASEAuthMode( uint8_t pwSource )
Restituisce una modalità di autenticazione PASE corrispondente per una determinata origine della password.
PasswordSourceFromAuthMode
uint8_t PasswordSourceFromAuthMode( WeaveAuthMode authMode )
Restituisce l'origine della password per la modalità di autenticazione specificata.
PrintTunnelInfo
void PrintTunnelInfo( const WeaveConnectionTunnel & tun, const TCPEndPoint & fromEndPoint, const TCPEndPoint & toEndPoint, const PacketBuffer & data )
ToHex
char ToHex( const uint8_t data )
ToHexString
void ToHexString( const uint8_t *data, size_t dataLen, char *& outBuf, size_t & outBufSize )
WeaveEncryptionKeyToString
void WeaveEncryptionKeyToString( uint8_t encType, const WeaveEncryptionKey & key, char *buf, size_t bufSize )
ID tessuto Weave per l'ID globale IPv6
uint64_t WeaveFabricIdToIPv6GlobalId( uint64_t fabricId )
Converti un identificatore di fabric Weave in un identificatore globale ULA IPv6.
L'identificatore globale ULA per un indirizzo del fabric corrisponde ai 40 bit inferiori dell'ID dell'infrastruttura a 64 bit del fabric.
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Restituisce |
l'identificatore globale IPv6 mappato.
|
WeaveMessageSourceToStr
void WeaveMessageSourceToStr( char *buf, uint32_t bufSize, const WeaveMessageInfo *msgInfo )
OBSOLETO Utilizza invece WeaveMessageLayer::GetPeerDescription().
WeaveNodeAddrToStr
void WeaveNodeAddrToStr( char *buf, uint32_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, WeaveConnection *con )
OBSOLETO Utilizza invece WeaveMessageLayer::GetPeerDescription().
WeaveNodeIdToIPv6InterfaceId
uint64_t WeaveNodeIdToIPv6InterfaceId( uint64_t nodeId )
Converti un identificatore del nodo Weave in un identificatore di interfaccia dell'indirizzo IPv6.
Gli identificatori dei nodi Weave sono EUI-64 universali/locali, che in base all'RFC-3513 vengono convertiti in identificatori di interfaccia invertendo il bit universale/locale (il bit 57 conteggia l'LSB come 0).
Per facilitare i test, gli identificatori di nodo minori o uguali a #kMaxsempreLocalWeaveNodeId (65535) sono considerati "locali" e il loro bit universale/locale è impostato su zero. Ciò semplifica la rappresentazione in formato stringa degli indirizzi IPv6 corrispondenti. Ad esempio, un ULA per l'identificatore di nodo 10
sarebbe FD00:0
:1:1::A.
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Restituisce |
l'identificatore dell'interfaccia IPv6.
|
max
const _T & max( const _T & a, const _T & b )
min
const _T & min( const _T & a, const _T & b )