nl:: Weave
Zusammenfassung
Typedefs |
|
---|---|
FabricSecretRotationScheme
|
typedef.uint8_t
|
FabricSecretScope
|
nl::Weave::FabricSecretScopeuint8_t
Gibt die Kategorie von Geräten an, die Fabric-Secrets besitzen und verwenden können. |
WeaveAuthMode
|
typedef.uint16_t
Gibt an, wie ein Peer-Knoten authentifiziert wird. |
WeaveEncryptionKey
|
typedef. |
WeaveEncryptionType
|
typedef.enum nl::Weave::WeaveEncryptionType
Die Verschlüsselungstypen für die Weave-Nachricht. |
WeaveExchangeFlags
|
typedef.enum nl::Weave::WeaveExchangeFlags
Die Weave Exchange-Header-Flag-Bits. |
WeaveExchangeVersion
|
typedef.enum nl::Weave::WeaveExchangeVersion
Die Weave Exchange-Headerversion. |
WeaveMessageFlags
|
typedef.enum nl::Weave::WeaveMessageFlags
Flags, die mit einer eingehenden oder ausgehenden Weave-Nachricht verknüpft sind. |
WeaveMessageHeader
|
typedef.struct WeaveMessageInfo
|
WeaveMessageVersion
|
typedef.enum nl::Weave::WeaveMessageVersion
Die Version des Weave-Nachrichtenformats. |
WeaveSubnetId
|
typedef.enum nl::Weave::WeaveSubnetId
Weave hat auf typischen Geräten einige reservierte Subnetznummern für bestimmte Netzwerkschnittstellen. |
Variablen |
|
---|---|
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
Schlüsseldiversifikator, der zur Ableitung von Schlüsseln für die Weave-Nachrichtenverschlüsselung verwendet wird.
|
Funktionen |
|
---|---|
AppGroupMasterKeyIdFromAuthMode(WeaveAuthMode authMode)
|
uint8_t
Gibt die Masterschlüssel-ID der Anwendungsgruppe zurück, die dem Authentifizierungsmodus zugeordnet ist.
|
CASEAuthMode(uint8_t certType)
|
WeaveAuthMode
Gibt einen entsprechenden CASE-Authentifizierungsmodus für einen bestimmten Zertifikatstyp zurück.
|
CertTypeFromAuthMode(WeaveAuthMode authMode)
|
uint8_t
Gibt die Passwortquelle für den angegebenen Authentifizierungsmodus zurück.
|
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
Bei einem Weave-Fehler wird ein für Menschen lesbarer NULL-terminierter C-String zurückgegeben, der den Fehler beschreibt.
|
GenerateWeaveNodeId(uint64_t & nodeId)
|
NL_DLL_EXPORT WEAVE_ERROR
Zufällige Weave-Knoten-ID generieren.
|
GetFibonacciForIndex(uint32_t index)
|
uint32_t
Diese Funktion erzeugt eine 32-Bit-Fibonacci-Zahl für einen gegebenen 32-Bit-Index.
|
GetMessageName(uint32_t profileId, uint8_t msgType)
|
const char *
|
GetProfileName(uint32_t profileId)
|
const char *
|
GetRandU16(void)
|
uint16_t
Diese Funktion generiert eine vorzeichenlose 16-Bit-Zufallszahl.
|
GetRandU32(void)
|
uint32_t
Diese Funktion generiert eine vorzeichenlose 32-Bit-Zufallszahl.
|
GetRandU64(void)
|
uint64_t
Diese Funktion generiert eine vorzeichenlose 64-Bit-Zufallszahl.
|
GetRandU8(void)
|
uint8_t
Diese Funktion generiert eine vorzeichenlose 8-Bit-Zufallszahl.
|
GetVendorName(uint16_t vendorId)
|
const char *
|
GroupKeyAuthMode(uint32_t keyId)
|
WeaveAuthMode
Gibt einen entsprechenden Gruppenschlüsselauthentifizierungsmodus für eine bestimmte Schlüssel-ID zurück.
|
IPv6InterfaceIdToWeaveNodeId(uint64_t interfaceId)
|
uint64_t
Konvertieren Sie eine IPv6-Adressschnittstellenkennung in eine Weave-Knotenkennung.
|
IsCASEAuthMode(WeaveAuthMode authMode)
|
bool
„True“, wenn der Authentifizierungsmodus auf dem Weave CASE-Protokoll basiert.
|
IsCertAuthMode(WeaveAuthMode authMode)
|
bool
"True", wenn der Authentifizierungsmodus auf dem Besitz eines privaten Schlüssels basiert, der mit einem Zertifikat verknüpft ist.
|
IsGroupKeyAuthMode(WeaveAuthMode authMode)
|
bool
"True", wenn der Authentifizierungsmodus auf dem Besitz eines freigegebenen Gruppenschlüssels basiert.
|
IsPASEAuthMode(WeaveAuthMode authMode)
|
bool
"True", wenn der Authentifizierungsmodus auf dem Weave-PASE-Protokoll basiert.
|
IsPasswordAuthMode(WeaveAuthMode authMode)
|
bool
"True", wenn der Authentifizierungsmodus auf dem Besitz eines gemeinsamen Passworts basiert.
|
IsTAKEAuthMode(WeaveAuthMode authMode)
|
bool
"True", wenn der Authentifizierungsmodus auf dem Weave-TAKE-Protokoll basiert.
|
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
Gibt einen entsprechenden PASE-Authentifizierungsmodus für eine bestimmte Passwortquelle zurück.
|
PasswordSourceFromAuthMode(WeaveAuthMode authMode)
|
uint8_t
Gibt die Passwortquelle für den angegebenen Authentifizierungsmodus zurück.
|
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
Wandeln Sie eine Weave-Fabric-Kennung in eine globale IPv6-ULA-Kennung um.
|
WeaveMessageSourceToStr(char *buf, uint32_t bufSize, const WeaveMessageInfo *msgInfo)
|
void
VERWORFEN. Verwenden Sie stattdessen WeaveMessageLayer::GetPeerDescription().
|
WeaveNodeAddrToStr(char *buf, uint32_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, WeaveConnection *con)
|
void
VERWORFEN. Verwenden Sie stattdessen WeaveMessageLayer::GetPeerDescription().
|
WeaveNodeIdToIPv6InterfaceId(uint64_t nodeId)
|
uint64_t
Wandeln Sie eine Weave-Knotenkennung in eine IPv6-Adressschnittstellen-ID um.
|
max(const _T & a, const _T & b)
|
const _T &
|
min(const _T & a, const _T & b)
|
const _T &
|
Klassen |
|
---|---|
nl:: |
Erfasst das beabsichtigte Ziel einer Weave-Kommunikation und zugehörige Konfigurationsinformationen. |
nl:: |
Eine Schnittstelle zum Verwalten eines Zählers als Ganzzahlwert. |
nl:: |
Diese Klasse stellt eine laufende Unterhaltung (ExchangeContext) zwischen zwei oder mehr Knoten dar. |
nl:: |
Diese abstrakte Delegatklasse kommuniziert Fabric-Statusänderungen. |
nl:: |
Eine kompakte, binär codierte Sammlung von Tupeln für Host- und Port-IDs zur Verwaltung und Bearbeitung einer Hostport-Liste, die mit dem Weave Service Directory verknüpft sind. |
nl:: |
|
nl:: |
Eine Klasse zur Verwaltung eines kontinuierlich ansteigenden Zählers als Ganzzahlwert. |
nl:: |
Eine Klasse zum Verwalten eines Zählers als Ganzzahlwert, der bei Neustarts beibehalten werden soll. |
nl:: |
Die Definition der Weave-Connection-Klasse. |
nl:: |
Die Definition der Klasse WeaveConnectionTunnel, die ein Paar von TCPEndPoints verwaltet, deren ursprüngliche WeaveConnections gekoppelt waren und zwischen denen WeaveMessageLayer alle Daten und Verbindungsabbrüche weiterleitet. |
nl:: |
|
nl:: |
Gibt das Weave-Profil und den Nachrichtentyp einer bestimmten Weave-Nachricht in einem ExchangeContext an. |
nl:: |
Diese Klasse wird verwendet, um ExchangeContexts mit anderen Weave-Knoten zu verwalten. |
nl:: |
Weiterleitende Deklaration von WeaveFabricState. |
nl:: |
Die Definition der Weave-Schlüsselkennung. |
nl:: |
Die Definition der Klasse WeaveMessageLayer, die die Kommunikation mit anderen Weave-Knoten verwaltet. |
nl:: |
Enthält Informationen zum Weave-Nachrichtenverschlüsselungsschlüssel. |
nl:: |
Schlüssel-Cache für Weave-Nachrichtenverschlüsselungsschlüssel. |
nl:: |
|
nl:: |
Gemeinsames Basisobjekt für die Implementierung von Weave-Profilen für unerwünschte Antworten (Server), die das Validieren authentifizierter Anfragen und das Senden von Statusberichten einschließen und einen gemeinsamen Datenspeicher für den Fabric-Status und einen Exchange-Manager bereitstellen. |
nl:: |
Eine gemeinsame Basisklasse für die Implementierung von Weave-Serverdelegatobjekten. |
nl:: |
Enthält Informationen zu einem Weave-Sitzungsschlüssel. |
nl:: |
Übermittelt den Kommunikationsstatus, der zum Senden/Empfangen von Nachrichten mit einem anderen Knoten erforderlich ist. |
Strukturen |
|
---|---|
nl:: |
|
nl:: |
Die WRMP-Konfiguration. |
nl:: |
Informationen zu einer Weave-Nachricht, die gerade gesendet oder empfangen wird. |
Gewerkschaften |
|
---|---|
nl:: |
Namespaces |
|
---|---|
nl:: |
Dieser Namespace enthält alle Schnittstellen in Weave für die Arbeit mit abstrakter Syntax Notation One (ASN.1). |
nl:: |
Dieser Namespace umfasst alle Schnittstellen innerhalb von Weave zur gemeinsamen Unterstützung von kryptografischen Daten. |
nl:: |
|
nl:: |
|
nl:: |
Dieser Namespace bietet Funktionen für: |
nl:: |
Dieser Namespace umfasst alle Schnittstellen in Weave zur Unterstützung des gemeinsamen Loggings. |
nl:: |
|
nl:: |
Dieser Namespace umfasst alle Schnittstellen innerhalb von Weave-Profilen, sowohl Common als auch Nest Labs-anbieterspezifisch. |
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
Definitionen für die Arbeit mit Daten, die im Weave-TLV codiert sind |
nl:: |
Dieser Namespace enthält Schnittstellen für das Weave Address and Routing Module, ein portables Modul zum Konfigurieren von Weave-IP-Adressen und -Routen. |
Aufzählungen
21
@21
Attribute | |
---|---|
kFlagAckPending
|
Ob eine Antwort für eine gesendete Nachricht erwartet wird |
kFlagAutoReleaseConnection
|
Der Nachrichtenverschlüsselungsschlüssel wird automatisch freigegeben, wenn der Austauschkontext freigegeben wird. |
kFlagAutoReleaseKey
|
Wenn festgelegt: Gibt an, dass in diesem Austauschkontext mindestens eine Nachricht von Peer empfangen wurde. |
kFlagAutoRequestAck
|
Dieser Kontext wurde mit einer WeaveConnection verknüpft. |
kFlagConnectionClosed
|
Dieser Kontext ist der Initiator des Austauschs. |
kFlagDropAck
|
Wenn diese Option festgelegt ist, wird jedes Mal, wenn eine Nachricht über UDP gesendet wird, automatisch eine Bestätigung angefordert. |
kFlagMsgRcvdFromPeer
|
Wenn festgelegt: Für mindestens eine bei diesem Austausch empfangene Nachricht wurde eine Bestätigung angefordert. Dieses Flag wird von der Anwendung gelesen, um zu entscheiden, ob eine Bestätigung für die zu sendende Antwortnachricht erforderlich ist. Dieses Flag kann auch angeben, ob der Peer WRMP verwendet. |
kFlagPeerRequestedAck
|
Wenn festgelegt, bedeutet dies, dass eine Bestätigung noch nicht zurückgesendet werden muss. |
kFlagResponseExpected
|
Intern und nur zur Fehlerbehebung: Wenn dies festgelegt ist, sendet die Austauschebene keine Bestätigung. |
kFlagUseEphemeralUDPPort
|
Die zugehörige WeaveConnection wird automatisch freigegeben, wenn der Austauschkontext freigegeben wird. |
@36
@36
@37
@37
@38
@38
Attribute | |
---|---|
kFabricIdDefaultForTest
|
Standard-Fabric-ID, die nur zu Testzwecken verwendet werden sollte. |
@39
@39
Gibt den Zweck oder die Anwendung des Zertifikats an.
Ein Zertifikatstyp ist ein Label, das den Zweck oder die Anwendung eines Zertifikats beschreibt. Zertifikatstypen werden nicht als Attribute der entsprechenden Zertifikate übernommen, sondern werden aus der Struktur des Zertifikats und/oder dem Kontext abgeleitet, in dem sie verwendet werden. Die Aufzählung der Zertifikatstypen umfasst eine Reihe vordefinierter Werte, die häufig verwendete Zertifikatanwendungen beschreiben. Entwickler können den Wertbereich des Zertifikatstyps auch mit anwendungsspezifischen Typen erweitern, die benutzerdefinierte Zertifikate oder Zertifikate mit eindeutigen Sicherheitseigenschaften beschreiben.
Zertifikattypen werden hauptsächlich für die Implementierung von Richtlinien zur Zugriffssteuerung verwendet. Dabei wird der Zugriff auf Anwendungsfunktionen vom Zertifikatstyp beeinflusst, der von einem Anforderer ausgestellt wird.
Attribute | |
---|---|
kCertType_AccessToken
|
Ein Weave-Zugriffstoken-Zertifikat. |
kCertType_AppDefinedBase
|
Anwendungsspezifische Zertifikatstypen müssen Werte haben, die größer als dieser Wert sind. |
kCertType_CA
|
Ein CA-Zertifikat. |
kCertType_Device
|
Ein Weave-Gerätezertifikat. |
kCertType_FirmwareSigning
|
Ein Weave-Firmware-Signaturzertifikat. |
kCertType_General
|
Es handelt sich um ein allgemeines oder unspezifisches Zertifikat. |
kCertType_Max
|
Zertifikatstypen dürfen nicht größer als dieser Wert sein. |
kCertType_NotSpecified
|
Der Zertifikatstyp wurde nicht angegeben. |
kCertType_ServiceEndpoint
|
Ein Weave-Dienst-Endpunktzertifikat. |
@40
@40
Gibt die Quelle des Passworts an, das in einem passwortbasierten Authentifizierungsprotokoll verwendet wird (z.B.
Weave PASE)
@41
@41
Attribute | |
---|---|
kWeaveAuthModeCategory_AppDefinedBase
|
Basiswert für anwendungsdefinierte Authentifizierungskategorien. |
kWeaveAuthModeCategory_CASE
|
Peer wurde mit dem Weave CASE-Protokoll authentifiziert. |
kWeaveAuthModeCategory_General
|
Peer-Authentifizierung mit einem von einer Reihe von allgemeinen Mechanismen. |
kWeaveAuthModeCategory_GroupKey
|
Peer wurde mit einem freigegebenen Gruppenschlüssel authentifiziert. |
kWeaveAuthModeCategory_PASE
|
Der Peer wurde mit dem Weave-PASE-Protokoll authentifiziert. |
kWeaveAuthModeCategory_TAKE
|
Der Peer wurde mit dem TAKE-Protokoll von Weave authentifiziert. |
kWeaveAuthMode_CASE_AccessToken
|
Peer wurde mit CASE mit Weave-Zugriffstoken-Zertifikat authentifiziert. |
kWeaveAuthMode_CASE_AnyCert
|
Peer-Authentifizierung mithilfe von CASE mit beliebigem Zertifikat oder Zertifikat eines unbekannten Typs. |
kWeaveAuthMode_CASE_Device
|
Peer wurde mit CASE und Weave-Gerätezertifikat authentifiziert. |
kWeaveAuthMode_CASE_GeneralCert
|
Die Peer-Authentifizierung wurde mithilfe von CASE mit einem allgemeinen oder unspezifischen Zertifikatstyp durchgeführt. |
kWeaveAuthMode_CASE_ServiceEndPoint
|
Peer wurde mit CASE mit Weave-Dienst-Endpunktzertifikat authentifiziert. |
kWeaveAuthMode_NotSpecified
|
Authentifizierungsmodus nicht angegeben. |
kWeaveAuthMode_PASE_PairingCode
|
Peer wurde über PASE mit Geräte-Kopplungscode authentifiziert. |
kWeaveAuthMode_TAKE_IdentificationKey
|
Der Peer wurde mit TAKE und einem Token-Identifizierungsschlüssel authentifiziert. |
kWeaveAuthMode_Unauthenticated
|
Peer nicht authentifiziert. |
@43
@43
Attribute | |
---|---|
kTestKey_AES128CTRSHA1_DataKeyByte
|
Byte-Wert, der einen Verschlüsselungsschlüssel erstellt, der nur zu Testzwecken verwendet wird. |
kTestKey_AES128CTRSHA1_IntegrityKeyByte
|
Bytewert, der den Integritätsschlüssel erstellt, der nur zu Testzwecken verwendet wird. |
@44
@44
Diversifiergröße des Anwendungsschlüssels für Weave-Nachrichtenverschlüsselung.
@45
@45
@53
@53
@54
@54
Attribute | |
---|---|
kWeavePeerDescription_MaxLength
|
Maximale Länge des Strings (einschließlich NUL-Zeichen), die von WeaveMessageLayer::GetPeerDescription() zurückgegeben wird. |
55
@55
Definitionen, die sich auf den Header einer codierten Weave-Nachricht beziehen.
Attribute | |
---|---|
kWeaveHeaderFlag_DestNodeId
|
Gibt an, dass die Zielknoten-ID im Weave-Nachrichtenheader vorhanden ist. |
kWeaveHeaderFlag_MsgCounterSyncReq
|
Gibt an, dass der Absender eine Synchronisierung des Nachrichtenzählers anfordert. |
kWeaveHeaderFlag_SourceNodeId
|
Gibt an, dass die ID des Quellknotens im Weave-Nachrichtenheader vorhanden ist. |
kWeaveHeaderFlag_TunneledData
|
Gibt an, dass die Weave-Nachrichtennutzlast ein getunneltes IP-Paket ist. |
56
@56
Bit-Felddefinitionen für IEEE-EUI-64-Kennungen.
Attribute | |
---|---|
kEUI64_IG_Group
|
Einzel-/Gruppen-Bitwert, der eine EUI-64-Kennung für eine Gruppenadresse angibt. |
kEUI64_IG_Individual
|
Bitwert für Einzelpersonen/Gruppen, der eine EUI-64-Kennung für eine einzelne Adresse angibt. |
kEUI64_IG_Mask
|
Bitmaske für das Einzel-/Gruppenbit (I/G) innerhalb einer EUI-64-Kennung. Der Wert 0 gibt an, dass die ID eine einzelne Adresse ist. Der Wert „1“ gibt an, dass die ID eine Gruppenadresse ist. |
kEUI64_UL_Local
|
Universeller/lokaler Bitwert, der eine lokal verwaltete EUI-64-Kennung angibt. |
kEUI64_UL_Mask
|
Bitmaske für das Universal/Local (U/L) Bit innerhalb einer EUI-64-Kennung. Der Wert 0 gibt an, dass die ID Universally (global) verwaltet wird. Der Wert „1“ gibt an, dass die ID lokal verwaltet wird. |
kEUI64_UL_Unversal
|
Universeller/Lokaler Bitwert, der eine universell verwaltete EUI-64-Kennung angibt. |
57
@57
Spezielle Bereiche von Weave-Knoten-IDs.
Attribute | |
---|---|
kMaxAlwaysLocalWeaveNodeId
|
Weave-Knoten-IDs, die kleiner oder gleich diesem Wert sind, werden aus Gründen der Testfreundlichkeit als lokal betrachtet. |
WeaveEncryptionType
WeaveEncryptionType
Die Verschlüsselungstypen für die Weave-Nachricht.
Attribute | |
---|---|
kWeaveEncryptionType_AES128CTRSHA1
|
Nachricht mit AES-128-CTR-Verschlüsselung und HMAC-SHA-1-Nachrichtenintegrität verschlüsselt. |
kWeaveEncryptionType_None
|
Nachricht nicht verschlüsselt. |
WeaveExchangeFlags
WeaveExchangeFlags
Die Weave Exchange-Header-Flag-Bits.
Attribute | |
---|---|
kWeaveExchangeFlag_AckId
|
Legt fest, wenn die aktuelle Nachricht eine Bestätigung für eine zuvor empfangene Nachricht ist. |
kWeaveExchangeFlag_Initiator
|
Legen Sie fest, wann der Initiator eines Austauschs eine aktuelle Nachricht sendet. |
kWeaveExchangeFlag_NeedsAck
|
Legt fest, wenn die aktuelle Nachricht eine Bestätigung vom Empfänger anfordert. |
WeaveExchangeVersion
WeaveExchangeVersion
Die Weave Exchange-Headerversion.
WeaveMessageFlags
WeaveMessageFlags
Flags, die mit einer eingehenden oder ausgehenden Weave-Nachricht verknüpft sind.
Die hier definierten Werte werden im Feld WeaveMessageInfo.Flags verwendet.
Attribute | |
---|---|
kWeaveMessageFlag_DefaultMulticastSourceAddress
|
Gibt an, dass beim Senden von IPv6-Multicast-Nachrichten die standardmäßige IPv6-Quelladresse ausgewählt werden soll. |
kWeaveMessageFlag_DelaySend
|
Gibt an, dass das Senden der Nachricht verzögert werden muss. |
kWeaveMessageFlag_DestNodeId
|
Gibt an, dass die Zielknoten-ID im Weave-Nachrichtenheader vorhanden ist. |
kWeaveMessageFlag_DuplicateMessage
|
Gibt an, dass die Nachricht ein Duplikat einer bereits erhaltenen Nachricht ist. |
kWeaveMessageFlag_FromInitiator
|
Gibt an, dass die Quelle der Nachricht der Initiator des Weave-Austauschs ist. |
kWeaveMessageFlag_MessageEncoded
|
Gibt an, dass die Weave-Nachricht bereits codiert ist. |
kWeaveMessageFlag_MsgCounterSyncReq
|
Gibt an, dass der Absender die Synchronisierung des Nachrichtenzählers des Peers anfordert. |
kWeaveMessageFlag_MulticastFromLinkLocal
|
Eingestellter Alias für |
kWeaveMessageFlag_PeerGroupMsgIdNotSynchronized
|
Gibt an, dass der Gruppennachrichtenzähler der Gruppe ähnlicher Apps nicht synchronisiert ist. |
kWeaveMessageFlag_PeerRequestedAck
|
Gibt an, dass der Absender der Nachricht eine Bestätigung angefordert hat. |
kWeaveMessageFlag_RetainBuffer
|
Gibt an, dass der Nachrichtenpuffer nach dem Senden nicht freigegeben werden soll. |
kWeaveMessageFlag_ReuseMessageId
|
Gibt an, dass die vorhandene Nachrichten-ID wiederverwendet werden muss. |
kWeaveMessageFlag_ReuseSourceId
|
Gibt an, dass die vorhandene Quellknoten-ID wiederverwendet werden muss. |
kWeaveMessageFlag_SourceNodeId
|
Gibt an, dass die ID des Quellknotens im Weave-Nachrichtenheader vorhanden ist. |
kWeaveMessageFlag_TunneledData
|
Gibt an, dass die Weave-Nachrichtennutzlast ein getunneltes IP-Paket ist. |
kWeaveMessageFlag_ViaEphemeralUDPPort
|
Gibt an, dass die Nachricht über den lokalen sitzungsspezifischen UDP-Port gesendet/empfangen wird. |
WeaveMessageVersion
WeaveMessageVersion
Die Version des Weave-Nachrichtenformats.
Weave wählt die entsprechende Nachrichtenversion auf Grundlage des für die Weave-Nachricht erforderlichen Frame-Formats aus. Standardmäßig lautet die Nachrichtenversion kWeaveMessageVersion_V1. Wenn Sie Weave Reliable Messaging verwenden, lautet die Version beispielsweise kWeaveMessageVersion_V2.
Attribute | |
---|---|
kWeaveMessageVersion_Unspecified
|
Nicht angegebene Nachrichtenversion. |
kWeaveMessageVersion_V1
|
Version 1 des Nachrichtenheaders. |
kWeaveMessageVersion_V2
|
Version 2 des Nachrichtenheaders. |
WeaveSubnetId
WeaveSubnetId
Weave hat auf typischen Geräten einige reservierte Subnetznummern für bestimmte Netzwerkschnittstellen.
Diese Zahlen werden hier symbolischen Konstanten zugewiesen. Diese Subnetznummern werden von Weave verwendet, um IPv6-ULA-Adressen auf geeigneten Schnittstellen zu konfigurieren.
Attribute | |
---|---|
kWeaveSubnetId_MobileDevice
|
Die Subnetzkennung für alle Mobilgeräte. |
kWeaveSubnetId_NotSpecified
|
Reserviert als nicht spezifizierter oder Nullwert. |
kWeaveSubnetId_PrimaryWiFi
|
Die Subnetznummer der WLAN-Funkschnittstelle. |
kWeaveSubnetId_Service
|
Die Subnetz-ID für die Nest Service-Endpunkte. |
kWeaveSubnetId_ThreadAlarm
|
Die Subnetznummer der Thread-Alarm-Funkschnittstelle. |
kWeaveSubnetId_ThreadMesh
|
Die Subnetz-ID der Thread-Mesh-Funkschnittstelle. |
kWeaveSubnetId_WiFiAP
|
Die Subnetznummer der lokalen Wi-Fi-AP-Schnittstelle. |
WeaveVendorId
WeaveVendorId
Typedefs
FabricSecretRotationScheme
uint8_t FabricSecretRotationScheme
FabricSecretScope
uint8_t FabricSecretScope
Gibt die Kategorie von Geräten an, die Fabric-Secrets besitzen und verwenden können.
WeaveAuthMode
uint16_t WeaveAuthMode
Gibt an, wie ein Peer-Knoten authentifiziert wird.
WeaveAuthMode beschreibt die Mittel, mit denen ein Peer-Knoten während eines Weave-Nachrichtenaustauschs authentifiziert wurde oder werden sollte. In einem initiierenden Kontext verwenden Anwendungen WeaveAuthMode, um einen gewünschten Peer-Authentifizierungsmodus für einen Austausch auszudrücken und damit die Weave-Sicherheits- und Messaging-Ebenen anzuweisen, den gewünschten Modus zu erreichen oder die Kommunikation zu fehlschlagen. In einem antwortenden Kontext ermittelt WeaveAuthMode, wie der anfragende Knoten (der Peer) authentifiziert wurde, sodass die antwortende Anwendung Zugriffssteuerungen auf der Grundlage dieser Informationen erzwingen kann.
Der WeaveAuthMode, der einer eingehenden Weave-Nachricht zugewiesen wird, hängt von der Art des Schlüssels ab, der zum Verschlüsseln dieser Nachricht verwendet wurde. WeaveAuthMode ergibt sich aus dem Mechanismus, mit dem der Schlüssel festgelegt wurde, und den Kriterien, die zur Überprüfung der Identität der kommunizierenden Parteien zum Zeitpunkt der Schlüsseleinrichtung verwendet werden.
WeaveAuthMode enthält eine Reihe vordefinierter Werte, die allgemeine Authentifizierungsmodi beschreiben. Diese sind nach dem Hauptvereinbarungsmechanismus aufgeschlüsselt (CASE, PASE, GroupKey usw.). Entwickler können WeaveAuthMode erweitern, indem sie anwendungsspezifische Modi definieren, die an bestimmte Verschlüsselungsschlüssel angehängt werden können.
WeaveEncryptionKey
union nl::Weave::WeaveEncryptionKey WeaveEncryptionKey
WeaveEncryptionType
enum nl::Weave::WeaveEncryptionType WeaveEncryptionType
Die Verschlüsselungstypen für die Weave-Nachricht.
WeaveExchangeFlags
enum nl::Weave::WeaveExchangeFlags WeaveExchangeFlags
Die Weave Exchange-Header-Flag-Bits.
WeaveExchangeVersion
enum nl::Weave::WeaveExchangeVersion WeaveExchangeVersion
Die Weave Exchange-Headerversion.
WeaveMessageFlags
enum nl::Weave::WeaveMessageFlags WeaveMessageFlags
Flags, die mit einer eingehenden oder ausgehenden Weave-Nachricht verknüpft sind.
Die hier definierten Werte werden im Feld WeaveMessageInfo.Flags verwendet.
WeaveMessageHeader
struct WeaveMessageInfo WeaveMessageHeader
WeaveMessageVersion
enum nl::Weave::WeaveMessageVersion WeaveMessageVersion
Die Version des Weave-Nachrichtenformats.
Weave wählt die entsprechende Nachrichtenversion auf Grundlage des für die Weave-Nachricht erforderlichen Frame-Formats aus. Standardmäßig lautet die Nachrichtenversion kWeaveMessageVersion_V1. Wenn Sie Weave Reliable Messaging verwenden, lautet die Version beispielsweise kWeaveMessageVersion_V2.
WeaveSubnetId
enum nl::Weave::WeaveSubnetId WeaveSubnetId
Weave hat auf typischen Geräten einige reservierte Subnetznummern für bestimmte Netzwerkschnittstellen.
Diese Zahlen werden hier symbolischen Konstanten zugewiesen. Diese Subnetznummern werden von Weave verwendet, um IPv6-ULA-Adressen auf geeigneten Schnittstellen zu konfigurieren.
Variablen
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 }
Schlüsseldiversifikator, der zur Ableitung von Schlüsseln für die Weave-Nachrichtenverschlüsselung verwendet wird.
Dieser Wert stellt die ersten 4 Byte des SHA-1-HASHs von „Nest Weave Message EK und AK“ dar. Wortgruppe.
Funktionen
AppGroupMasterKeyIdFromAuthMode
uint8_t AppGroupMasterKeyIdFromAuthMode( WeaveAuthMode authMode )
Gibt die Masterschlüssel-ID der Anwendungsgruppe zurück, die dem Authentifizierungsmodus zugeordnet ist.
CASEAuthMode
WeaveAuthMode CASEAuthMode( uint8_t certType )
Gibt einen entsprechenden CASE-Authentifizierungsmodus für einen bestimmten Zertifikatstyp zurück.
CertTypeFromAuthMode
uint8_t CertTypeFromAuthMode( WeaveAuthMode authMode )
Gibt die Passwortquelle für den angegebenen Authentifizierungsmodus zurück.
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 )
Bei einem Weave-Fehler wird ein für Menschen lesbarer NULL-terminierter C-String zurückgegeben, der den Fehler beschreibt.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabe |
"true", wenn eine Zeichenfolge für die Beschreibung in den bereitgestellten Puffer geschrieben wurde.
|
||||||
Rückgabe |
false, wenn es sich bei dem angegebenen Fehler nicht um einen Weave-Fehler handelt.
|
GenerateWeaveNodeId
NL_DLL_EXPORT WEAVE_ERROR GenerateWeaveNodeId( uint64_t & nodeId )
Zufällige Weave-Knoten-ID generieren.
Diese Funktion generiert lokal eindeutige 64-Bit-Weave-Knoten-ID. Diese Funktion verwendet eine kryptografisch starke Zufallsdatenquelle, um die Eindeutigkeit des generierten Werts zu gewährleisten. Bit 57 der generierten Weave-Knoten-ID ist auf 1 gesetzt, um anzugeben, dass die generierte Weave-Knoten-ID lokal (nicht global) eindeutig ist.
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabewerte |
|
GetFibonacciForIndex
uint32_t GetFibonacciForIndex( uint32_t index )
Diese Funktion erzeugt eine 32-Bit-Fibonacci-Zahl für einen gegebenen 32-Bit-Index.
Details | |
---|---|
Rückgabe |
Vorzeichenlose 32-Bit-Fibonacci-Zahl.
|
GetMessageName
const char * GetMessageName( uint32_t profileId, uint8_t msgType )
GetProfileName
const char * GetProfileName( uint32_t profileId )
GetRandU16
uint16_t GetRandU16( void )
Diese Funktion generiert eine vorzeichenlose 16-Bit-Zufallszahl.
Details | |
---|---|
Rückgabe |
Zufällige 16-Bit-Ganzzahl ohne Vorzeichen.
|
GetRandU32
uint32_t GetRandU32( void )
Diese Funktion generiert eine vorzeichenlose 32-Bit-Zufallszahl.
Details | |
---|---|
Rückgabe |
Zufällige 32-Bit-Ganzzahl ohne Vorzeichen.
|
GetRandU64
uint64_t GetRandU64( void )
Diese Funktion generiert eine vorzeichenlose 64-Bit-Zufallszahl.
Details | |
---|---|
Rückgabe |
Zufällige 64-Bit-Ganzzahl ohne Vorzeichen.
|
GetRandU8
uint8_t GetRandU8( void )
Diese Funktion generiert eine vorzeichenlose 8-Bit-Zufallszahl.
Details | |
---|---|
Rückgabe |
Vorzeichenlose 8-Bit-Ganzzahl.
|
GetVendorName
const char * GetVendorName( uint16_t vendorId )
GroupKeyAuthMode
WeaveAuthMode GroupKeyAuthMode( uint32_t keyId )
Gibt einen entsprechenden Gruppenschlüsselauthentifizierungsmodus für eine bestimmte Schlüssel-ID zurück.
IPv6InterfaceIdToWeaveNodeId
uint64_t IPv6InterfaceIdToWeaveNodeId( uint64_t interfaceId )
Konvertieren Sie eine IPv6-Adressschnittstellenkennung in eine Weave-Knotenkennung.
Zur Vereinfachung des Tests werden Knotenkennungen kleiner oder gleich #kMaxAlwaysLocalWeaveNodeId (65535) als „lokal“ betrachtet und deren universelles/lokales Bit auf null gesetzt. Dies vereinfacht die Stringdarstellung der entsprechenden IPv6-Adressen. Eine ULA für die Knotenkennung 10
wäre beispielsweise FD00:0
:1:1::A.
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabe |
die zugeordnete 64-Bit-Weave-Knotenkennung.
|
IsCASEAuthMode
bool IsCASEAuthMode( WeaveAuthMode authMode )
„True“, wenn der Authentifizierungsmodus auf dem Weave CASE-Protokoll basiert.
IsCertAuthMode
bool IsCertAuthMode( WeaveAuthMode authMode )
"True", wenn der Authentifizierungsmodus auf dem Besitz eines privaten Schlüssels basiert, der mit einem Zertifikat verknüpft ist.
IsGroupKeyAuthMode
bool IsGroupKeyAuthMode( WeaveAuthMode authMode )
"True", wenn der Authentifizierungsmodus auf dem Besitz eines freigegebenen Gruppenschlüssels basiert.
IsPASEAuthMode
bool IsPASEAuthMode( WeaveAuthMode authMode )
"True", wenn der Authentifizierungsmodus auf dem Weave-PASE-Protokoll basiert.
IsPasswordAuthMode
bool IsPasswordAuthMode( WeaveAuthMode authMode )
"True", wenn der Authentifizierungsmodus auf dem Besitz eines gemeinsamen Passworts basiert.
IsTAKEAuthMode
bool IsTAKEAuthMode( WeaveAuthMode authMode )
"True", wenn der Authentifizierungsmodus auf dem Weave-TAKE-Protokoll basiert.
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 )
Gibt einen entsprechenden PASE-Authentifizierungsmodus für eine bestimmte Passwortquelle zurück.
PasswordSourceFromAuthMode
uint8_t PasswordSourceFromAuthMode( WeaveAuthMode authMode )
Gibt die Passwortquelle für den angegebenen Authentifizierungsmodus zurück.
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 )
WeaveFabricIdToIPv6GlobalId
uint64_t WeaveFabricIdToIPv6GlobalId( uint64_t fabricId )
Wandeln Sie eine Weave-Fabric-Kennung in eine globale IPv6-ULA-Kennung um.
Die globale ULA-Kennung für eine Fabric-Adresse sind die unteren 40 Bit der 64-Bit-Fabric-ID der Fabric.
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabe |
der zugeordneten globalen IPv6-Kennung.
|
WeaveMessageSourceToStr
void WeaveMessageSourceToStr( char *buf, uint32_t bufSize, const WeaveMessageInfo *msgInfo )
VERWORFEN. Verwenden Sie stattdessen WeaveMessageLayer::GetPeerDescription().
WeaveNodeAddrToStr
void WeaveNodeAddrToStr( char *buf, uint32_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, WeaveConnection *con )
VERWORFEN. Verwenden Sie stattdessen WeaveMessageLayer::GetPeerDescription().
WeaveNodeIdToIPv6InterfaceId
uint64_t WeaveNodeIdToIPv6InterfaceId( uint64_t nodeId )
Wandeln Sie eine Weave-Knotenkennung in eine IPv6-Adressschnittstellen-ID um.
Weave-Knotenkennungen sind Universal/Local EUI-64s, die gemäß RFC-3513 durch Invertieren des universellen/lokalen Bits in Schnittstellenkennungen umgewandelt werden (Bit 57 zählt das LSB als 0).
Um das Testen zu vereinfachen, werden Knotenkennungen kleiner oder gleich #kMaxAlwaysLocalWeaveNodeId (65535) als „lokal“ betrachtet und ihr universelles/lokales Bit ist auf null gesetzt. Dies vereinfacht die Stringdarstellung der entsprechenden IPv6-Adressen. Eine ULA für die Knotenkennung 10
wäre beispielsweise FD00:0
:1:1::A.
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabe |
die IPv6-Schnittstellenkennung.
|
max
const _T & max( const _T & a, const _T & b )
Min.
const _T & min( const _T & a, const _T & b )