nl:: Weave
Riepilogo
Typedef |
|
---|---|
FabricSecretRotationScheme
|
typedefuint8_t
|
FabricSecretScope
|
nl::Weave::FabricSecretScopeuint8_t
Identifica la categoria di dispositivi che possono possedere e utilizzare il segreto dei tessuti. |
WeaveAuthMode
|
typedefuint16_t
Identifica il modo in cui un nodo peer viene autenticato. |
WeaveEncryptionKey
|
typedef |
WeaveEncryptionType
|
typedefenum nl::Weave::WeaveEncryptionType
I tipi di crittografia per il messaggio Weave. |
WeaveExchangeFlags
|
typedefenum nl::Weave::WeaveExchangeFlags
I frammenti di flag dell'intestazione Weave Exchange. |
WeaveExchangeVersion
|
typedefenum nl::Weave::WeaveExchangeVersion
La versione dell'intestazione Weave Exchange. |
WeaveMessageFlags
|
typedefenum nl::Weave::WeaveMessageFlags
Contrassegni associati a un messaggio Weave in entrata o in uscita. |
WeaveMessageHeader
|
typedefstruct WeaveMessageInfo
|
WeaveMessageVersion
|
typedefenum nl::Weave::WeaveMessageVersion
La versione del formato Weave Message. |
WeaveSubnetId
|
typedefenum nl::Weave::WeaveSubnetId
Weave ha alcuni numeri di subnet riservati per interfacce di rete distinte su 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 chiave master 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 e leggibile da una persona che descrive l'errore.
|
GenerateWeaveNodeId(uint64_t & nodeId)
|
NL_DLL_EXPORT WEAVE_ERROR
Genera un ID nodo Weave casuale.
|
GetFibonacciForIndex(uint32_t index)
|
uint32_t
Questa funzione genera un numero di Fibonacci a 32 bit per un dato indice a 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 una modalità di autenticazione con chiave di gruppo corrispondente a un determinato ID chiave.
|
IPv6InterfaceIdToWeaveNodeId(uint64_t interfaceId)
|
uint64_t
Converti un identificatore di interfaccia di un 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 è basata 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 a una determinata origine 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 struttura 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 di nodo Weave in un identificatore di interfaccia di indirizzi IPv6.
|
max(const _T & a, const _T & b)
|
const _T &
|
min(const _T & a, const _T & b)
|
const _T &
|
Corsi |
|
---|---|
nl:: |
Acquisisce la destinazione prevista di una comunicazione Weave e le informazioni di configurazione associate. |
nl:: |
Un'interfaccia per la gestione di un contatore come valore intero. |
nl:: |
Questo corso rappresenta una conversazione in corso (ExchangeContext) tra due o più nodi. |
nl:: |
Questa classe delegato astratta comunica i cambiamenti di stato dell'infrastruttura. |
nl:: |
Per gestire e manipolare un elenco di porte host, una raccolta compatta con codifica binaria di tuple di identificatori di porta e host associata a Weave Service Directory. |
nl:: |
|
nl:: |
Una classe per gestire un contatore che aumenta in modo monotonico come valore intero. |
nl:: |
Una classe per la gestione di un contatore come valore intero destinato a rimanere valido durante i riavvii. |
nl:: |
La definizione della classe Weave Connection. |
nl:: |
La definizione della classe WeaveConnectionTunnel, che gestisce una coppia di TCPEndPoints i cui WeaveConnection originali sono stati accoppiati e tra i quali WeaveMessageLayer inoltra tutti i dati e le chiusure delle connessioni. |
nl:: |
|
nl:: |
Consente di specificare il profilo Weave e il tipo di messaggio di un determinato messaggio Weave all'interno di ExchangeContext. |
nl:: |
Questa classe viene utilizzata per gestire ExchangeContexts con altri nodi Weave. |
nl:: |
Dichiarazione di inoltro di WeaveFabricState. |
nl:: |
La definizione dell'identificatore chiave Weave. |
nl:: |
La definizione della classe WeaveMessageLayer, che gestisce la comunicazione con 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 e di base per l'implementazione di risponditori (server) non richiesti del profilo Weave che incapsula la convalida delle richieste autenticate e l'invio di rapporti di stato e fornisce uno spazio di archiviazione comune dei membri dei dati per lo stato della struttura e un gestore della piattaforma di scambio pubblicitario. |
nl:: |
Una classe base comune per l'implementazione degli 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. |
Structs |
|
---|---|
nl:: |
|
nl:: |
La configurazione WRMP. |
nl:: |
Informazioni su un messaggio Weave in fase di invio o ricezione. |
Sindacati |
|
---|---|
nl:: |
Spazi dei nomi |
|
---|---|
nl:: |
Questo spazio dei nomi include tutte le interfacce 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 della crittografia condivisa. |
nl:: |
|
nl:: |
|
nl:: |
Questo spazio dei nomi fornisce funzioni per: |
nl:: |
Questo spazio dei nomi include tutte le interfacce di Weave per il supporto del logging condiviso. |
nl:: |
|
nl:: |
Questo spazio dei nomi include tutte le interfacce dei profili Weave for Weave, sia Common che specifiche del fornitore Nest Labs. |
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
Definizioni per lavorare con dati codificati nel formato Weave TLV. |
nl:: |
Questo spazio dei nomi include interfacce per Weave Address and Routing Module, un modulo portabile per la configurazione di indirizzi IP e route di Weave. |
Enumerazioni
@21
@21
Proprietà | |
---|---|
kFlagAckPending
|
Se è prevista una risposta per un messaggio in fase di invio. |
kFlagAutoReleaseConnection
|
Rilascia automaticamente la chiave di crittografia del messaggio quando il contesto dello scambio viene liberato. |
kFlagAutoReleaseKey
|
Se impostato, indica che è stato ricevuto almeno un messaggio da un peer in questo contesto di scambio. |
kFlagAutoRequestAck
|
Questo contesto è associato a una WeaveConnection. |
kFlagConnectionClosed
|
Questo contesto è l'iniziatore dello scambio. |
kFlagDropAck
|
Se impostato, richiede automaticamente una conferma ogni volta che un messaggio viene inviato tramite UDP. |
kFlagMsgRcvdFromPeer
|
Se impostato, indica che almeno un messaggio ricevuto su questo scambio ha richiesto un riconoscimento. Questo flag viene letto dall'applicazione per decidere se deve richiedere una conferma per il messaggio di risposta che sta per inviare. Questo flag può anche indicare se il peer utilizza WRMP. |
kFlagPeerRequestedAck
|
Se impostato, indica che è presente una conferma in attesa di essere rinviata. |
kFlagResponseExpected
|
Solo per uso interno e debug: se impostato, il livello di scambio non invia un riscontro. |
kFlagUseEphemeralUDPPort
|
Rilascia automaticamente la WeaveConnection associata quando il contesto dello 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 certificato non vengono forniti come attributi dei certificati corrispondenti, ma derivano dalla struttura del certificato e/o dal contesto in cui vengono utilizzati. L'enumerazione dei tipi di certificato include un insieme di valori predefiniti che descrivono le applicazioni di certificati 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 certificato vengono utilizzati principalmente nell'implementazione di criteri di controllo dell'accesso, in cui l'accesso alle funzionalità delle applicazioni è influenzato dal tipo di certificato presentato da un richiedente.
Proprietà | |
---|---|
kCertType_AccessToken
|
Un certificato del token di accesso Weave. |
kCertType_AppDefinedBase
|
I tipi di certificati 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 superiori a questo valore. |
kCertType_NotSpecified
|
Il tipo di certificato non è stato specificato. |
kCertType_ServiceEndpoint
|
Un certificato di endpoint di servizio Weave. |
@40
@40
Identifica l'origine della password utilizzata in un protocollo di autenticazione basato su password (ad es.
Weave PASE)
@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
|
Autenticazione dei peer eseguita tramite uno dei vari 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
|
Peer autenticato utilizzando CASE con 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 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 certificato di endpoint di servizio Weave. |
kWeaveAuthMode_NotSpecified
|
Modalità di autenticazione non specificata. |
kWeaveAuthMode_PASE_PairingCode
|
Peer autenticato utilizzando PASE con codice di accoppiamento del dispositivo. |
kWeaveAuthMode_TAKE_IdentificationKey
|
Peer autenticato utilizzando TAKE con una chiave di identificazione del token. |
kWeaveAuthMode_Unauthenticated
|
Peer non autenticato. |
@42
@42
Proprietà | |
---|---|
kFabricSecretScope_All
|
Tutti i dispositivi possono avere un segreto per il tessuto corrispondente. |
@43
@43
Proprietà | |
---|---|
kTestKey_AES128CTRSHA1_DataKeyByte
|
Valore del byte che genera la chiave di crittografia, utilizzata solo per i test. |
kTestKey_AES128CTRSHA1_IntegrityKeyByte
|
Valore del byte che costruisce una chiave di integrità, utilizzata solo per i test. |
@44
@44
Dimensione del 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 del nodo di origine è presente nell'intestazione del messaggio Weave. |
kWeaveHeaderFlag_TunneledData
|
Indica che il payload dei messaggi Weave è un pacchetto IP in tunnel. |
@56
@56
Definizioni dei campi dei bit per gli identificatori IEEE EUI-64.
Proprietà | |
---|---|
kEUI64_IG_Group
|
Valore di bit individuale/gruppo che indica un identificatore EUI-64 dell'indirizzo di gruppo. |
kEUI64_IG_Individual
|
Valore di bit individuale/gruppo che indica un identificatore EUI-64 dell'indirizzo individuale. |
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 singolo indirizzo. Il valore 1 indica che l'ID è l'indirizzo di un gruppo. |
kEUI64_UL_Local
|
Valore di bit universale/locale che indica un identificatore EUI-64 gestito localmente. |
kEUI64_UL_Mask
|
Maschera di bit per il bit Universale/Locale (U/L) all'interno di un identificatore EUI-64. Il valore 0 indica che l'ID è amministrato universalmente (globalmente). Il valore 1 indica che l'ID è amministrato a livello locale. |
kEUI64_UL_Unversal
|
Valore di bit universale/locale che indica un identificatore EUI-64 amministrato universalmente. |
@57
@57
Intervalli speciali di ID nodo Weave.
Proprietà | |
---|---|
kMaxAlwaysLocalWeaveNodeId
|
Gli identificatori dei nodi Weave minori o uguali a questo valore sono considerati locali per praticità del 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 frammenti di flag dell'intestazione Weave Exchange.
Proprietà | |
---|---|
kWeaveExchangeFlag_AckId
|
Imposta quando il messaggio attuale è 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
|
Imposta quando il messaggio corrente richiede una conferma da parte del destinatario. |
WeaveExchangeVersion
WeaveExchangeVersion
La versione dell'intestazione Weave Exchange.
WeaveMessageFlags
WeaveMessageFlags
Contrassegni associati a un messaggio Weave in entrata o in uscita.
I valori definiti qui devono essere 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'iniziatore dello scambio Weave. |
kWeaveMessageFlag_MessageEncoded
|
Indica che il messaggio Weave è già codificato. |
kWeaveMessageFlag_MsgCounterSyncReq
|
Indica che il mittente richiede la sincronizzazione del contatore messaggi del peer. |
kWeaveMessageFlag_MulticastFromLinkLocal
|
Alias obsoleto per |
kWeaveMessageFlag_PeerGroupMsgIdNotSynchronized
|
Indica che il contatore dei messaggi chiave del gruppo di app 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 del nodo di origine è presente nell'intestazione del messaggio Weave. |
kWeaveMessageFlag_TunneledData
|
Indica che il payload dei messaggi Weave è un pacchetto IP in tunnel. |
kWeaveMessageFlag_ViaEphemeralUDPPort
|
Indica che il messaggio viene inviato/ricevuto tramite la porta UDP temporanea locale. |
WeaveMessageVersion
WeaveMessageVersion
La versione del formato Weave Message.
Weave sceglierà la versione appropriata del messaggio in base al formato del frame richiesto per il messaggio Weave. Per impostazione predefinita, la versione del messaggio è kWeaveMessageVersion_V1. Ad esempio, quando si utilizza Weave Reliable Messaging, la versione è kWeaveMessageVersion_V2.
Proprietà | |
---|---|
kWeaveMessageVersion_Unspecified
|
Versione messaggio non specificata. |
kWeaveMessageVersion_V1
|
Formato intestazione messaggio versione V1. |
kWeaveMessageVersion_V2
|
Formato intestazione messaggio versione V2. |
WeaveSubnetId
WeaveSubnetId
Weave ha alcuni numeri di subnet riservati per interfacce di rete distinte su dispositivi tipici.
Questi numeri vengono 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 di subnet dell'interfaccia radio Wi-Fi. |
kWeaveSubnetId_Service
|
L'identificatore di subnet per gli endpoint del servizio Nest. |
kWeaveSubnetId_ThreadAlarm
|
Il numero di subnet dell'interfaccia radio di allarme Thread. |
kWeaveSubnetId_ThreadMesh
|
L'identificatore della subnet dell'interfaccia radio mesh Thread. |
kWeaveSubnetId_WiFiAP
|
Il numero della subnet dell'interfaccia Wi-Fi AP locale. |
WeaveVendorId
WeaveVendorId
Typedef
FabricSecretRotationScheme
uint8_t FabricSecretRotationScheme
FabricSecretScope
uint8_t FabricSecretScope
Identifica la categoria di dispositivi che possono possedere e utilizzare il segreto dei tessuti.
WeaveAuthMode
uint16_t WeaveAuthMode
Identifica il modo in cui un nodo peer viene autenticato.
WeaveAuthMode descrive il mezzo mediante il quale un nodo peer è stato, o dovrebbe essere, autenticato durante uno scambio di messaggi Weave. In un contesto iniziale, le applicazioni utilizzano WeaveAuthMode per esprimere una modalità di autenticazione peer desiderata per uno scambio, indicando così ai livelli di sicurezza e messaggistica di Weave di raggiungere la modalità desiderata o interrompere la comunicazione. In un contesto di risposta, WeaveAuthMode identifica il modo in cui il nodo richiedente (il peer) è stato autenticato, 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 arrivo è correlato alla natura della chiave utilizzata per crittografare il messaggio. WeaveAuthMode deriva dal meccanismo mediante il 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 più comuni. Questi vengono 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 specifiche chiavi di crittografia.
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 frammenti di flag dell'intestazione Weave Exchange.
WeaveExchangeVersion
enum nl::Weave::WeaveExchangeVersion WeaveExchangeVersion
La versione dell'intestazione Weave Exchange.
WeaveMessageFlags
enum nl::Weave::WeaveMessageFlags WeaveMessageFlags
Contrassegni associati a un messaggio Weave in entrata o in uscita.
I valori definiti qui devono essere utilizzati all'interno del campo WeaveMessageInfo.Flags.
WeaveMessageHeader
struct WeaveMessageInfo WeaveMessageHeader
WeaveMessageVersion
enum nl::Weave::WeaveMessageVersion WeaveMessageVersion
La versione del formato Weave Message.
Weave sceglierà la versione appropriata del messaggio in base al formato del frame richiesto per il messaggio Weave. Per impostazione predefinita, la versione del messaggio è kWeaveMessageVersion_V1. Ad esempio, quando si utilizza Weave Reliable Messaging, la versione è kWeaveMessageVersion_V2.
WeaveSubnetId
enum nl::Weave::WeaveSubnetId WeaveSubnetId
Weave ha alcuni numeri di subnet riservati per interfacce di rete distinte su dispositivi tipici.
Questi numeri vengono 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 di "Nest Weave Message EK and AK" a frase.
Funzioni
AppGroupMasterKeyIdFromAuthMode
uint8_t AppGroupMasterKeyIdFromAuthMode( WeaveAuthMode authMode )
Restituisce l'ID chiave master 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 e leggibile da una persona che descrive l'errore.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Restituisce |
true Se una stringa descrittiva è stata scritta nel buffer fornito.
|
||||||
Restituisce |
false Se l'errore fornito non era un errore Weave.
|
GenerateWeaveNodeId
NL_DLL_EXPORT WEAVE_ERROR GenerateWeaveNodeId( uint64_t & nodeId )
Genera un ID 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 buona crittografia per garantire l'univocità 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 è univoco a livello locale (non a livello globale).
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Valori restituiti |
|
GetFibonacciForIndex
uint32_t GetFibonacciForIndex( uint32_t index )
Questa funzione genera un numero di Fibonacci a 32 bit per un dato indice a 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 una modalità di autenticazione con chiave di gruppo corrispondente a un determinato ID chiave.
Interfaccia IPv6InterfaceIdToWeaveNodeId
uint64_t IPv6InterfaceIdToWeaveNodeId( uint64_t interfaceId )
Converti un identificatore di interfaccia di un indirizzo IPv6 in un identificatore del nodo Weave.
Per praticità, gli identificatori di nodo inferiori 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 del 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 è basata 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 a una determinata origine 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 WeaveFabricToIPv6GlobalId
uint64_t WeaveFabricIdToIPv6GlobalId( uint64_t fabricId )
Converti un identificatore di struttura Weave in un identificatore globale ULA IPv6.
L'identificatore globale ULA per un indirizzo di fabric è i 40 bit inferiori dell'ID fabric a 64 bit dell'infrastruttura.
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Restituisce |
l'identificatore globale IPv6 mappato.
|
WeaveMessageSourceToStr
void WeaveMessageSourceToStr( char *buf, uint32_t bufSize, const WeaveMessageInfo *msgInfo )
OBSOLETO Usa 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 di nodo Weave in un identificatore di interfaccia di indirizzi IPv6.
Gli identificatori di nodi di trama sono EUI-64 universali/locali, che secondo RFC-3513 vengono convertiti in identificatori di interfaccia invertendo il bit universale/locale (bit 57 contando l'LSB come 0).
Per praticità, gli identificatori di nodo inferiori 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 del 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 )