nl::Weave

Zusammenfassung

Aufzählungen

@21{
  kFlagConnectionClosed = 0x0002,
  kFlagAutoRequestAck = 0x0004,
  kFlagDropAck = 0x0008,
  kFlagResponseExpected = 0x0010,
  kFlagAckPending = 0x0020,
  kFlagPeerRequestedAck = 0x0040,
  kFlagMsgRcvdFromPeer = 0x0080,
  kFlagAutoReleaseKey = 0x0100,
  kFlagAutoReleaseConnection = 0x0200,
  kFlagUseEphemeralUDPPort = 0x0400
}
enum
@36 enum
@37 enum
@38{
  kFabricIdDefaultForTest = 1ULL
}
enum
@39{
  kCertType_NotSpecified = 0x00,
  kCertType_General = 0x01,
  kCertType_Device = 0x02,
  kCertType_ServiceEndpoint = 0x03,
  kCertType_FirmwareSigning = 0x04,
  kCertType_AccessToken = 0x05,
  kCertType_CA = 0x06,
  kCertType_AppDefinedBase = 0x7F,
  kCertType_Max = 0xFF
}
enum
Gibt den Zweck oder die Anwendung des Zertifikats an.
@40 enum
Gibt die Quelle des Passworts an, das in einem passwortbasierten Authentifizierungsprotokoll verwendet wird (z.B.
@41{
  kWeaveAuthMode_NotSpecified = 0x0000,
  kWeaveAuthModeCategory_General = 0x0000,
  kWeaveAuthModeCategory_PASE = 0x1000,
  kWeaveAuthModeCategory_CASE = 0x2000,
  kWeaveAuthModeCategory_TAKE = 0x3000,
  kWeaveAuthModeCategory_GroupKey = 0x4000,
  kWeaveAuthModeCategory_AppDefinedBase = 0xC000,
  kWeaveAuthMode_Unauthenticated = kWeaveAuthModeCategory_General | 0x001,
  kWeaveAuthMode_PASE_PairingCode = kWeaveAuthModeCategory_PASE | kPasswordSource_PairingCode,
  kWeaveAuthMode_CASE_AnyCert = kWeaveAuthModeCategory_CASE | kCertType_NotSpecified,
  kWeaveAuthMode_CASE_GeneralCert = kWeaveAuthModeCategory_CASE | kCertType_General,
  kWeaveAuthMode_CASE_Device = kWeaveAuthModeCategory_CASE | kCertType_Device,
  kWeaveAuthMode_CASE_ServiceEndPoint = kWeaveAuthModeCategory_CASE | kCertType_ServiceEndpoint,
  kWeaveAuthMode_CASE_AccessToken = kWeaveAuthModeCategory_CASE | kCertType_AccessToken,
  kWeaveAuthMode_TAKE_IdentificationKey = kWeaveAuthModeCategory_TAKE | 0x001
}
enum
@42{
  kFabricSecretScope_All = 0x00
}
enum
@43{
  kTestKey_AES128CTRSHA1_DataKeyByte = 0xAB,
  kTestKey_AES128CTRSHA1_IntegrityKeyByte = 0xBA
}
enum
@44 enum
Diversifiergröße des Anwendungsschlüssels für Weave-Nachrichtenverschlüsselung.
@45 enum
@53 enum
@54{
  kWeavePeerDescription_MaxLength = 100
}
enum
@55{
  kWeaveHeaderFlag_DestNodeId = 0x0100,
  kWeaveHeaderFlag_SourceNodeId = 0x0200,
  kWeaveHeaderFlag_TunneledData = 0x0400,
  kWeaveHeaderFlag_MsgCounterSyncReq = 0x0800
}
enum
Definitionen, die sich auf den Header einer codierten Weave-Nachricht beziehen.
@56{
  kEUI64_UL_Mask = 0x0200000000000000ULL,
  kEUI64_UL_Unversal = 0,
  kEUI64_UL_Local = kEUI64_UL_Mask,
  kEUI64_IG_Mask = 0x0100000000000000ULL,
  kEUI64_IG_Individual = 0,
  kEUI64_IG_Group = kEUI64_IG_Mask
}
enum
Bit-Felddefinitionen für IEEE-EUI-64-Kennungen.
@57{
  kMaxAlwaysLocalWeaveNodeId = 0x000000000000FFFFULL
}
enum
Spezielle Bereiche von Weave-Knoten-IDs.
WeaveEncryptionType{
  kWeaveEncryptionType_None = 0,
  kWeaveEncryptionType_AES128CTRSHA1 = 1
}
enum
Die Verschlüsselungstypen für die Weave-Nachricht.
WeaveExchangeFlags{
  kWeaveExchangeFlag_Initiator = 0x1,
  kWeaveExchangeFlag_AckId = 0x2,
  kWeaveExchangeFlag_NeedsAck = 0x4
}
enum
Die Weave Exchange-Header-Flag-Bits.
WeaveExchangeVersion enum
Die Weave Exchange-Headerversion.
WeaveMessageFlags{
  kWeaveMessageFlag_ReuseMessageId = 0x00000010,
  kWeaveMessageFlag_ReuseSourceId = 0x00000020,
  kWeaveMessageFlag_DelaySend = 0x00000040,
  kWeaveMessageFlag_RetainBuffer = 0x00000080,
  kWeaveMessageFlag_MessageEncoded = 0x00001000,
  kWeaveMessageFlag_DefaultMulticastSourceAddress = 0x00002000,
  kWeaveMessageFlag_PeerRequestedAck = 0x00004000,
  kWeaveMessageFlag_DuplicateMessage = 0x00008000,
  kWeaveMessageFlag_PeerGroupMsgIdNotSynchronized = 0x00010000,
  kWeaveMessageFlag_FromInitiator = 0x00020000,
  kWeaveMessageFlag_ViaEphemeralUDPPort = 0x00040000,
  kWeaveMessageFlag_MulticastFromLinkLocal = kWeaveMessageFlag_DefaultMulticastSourceAddress,
  kWeaveMessageFlag_DestNodeId = kWeaveHeaderFlag_DestNodeId,
  kWeaveMessageFlag_SourceNodeId = kWeaveHeaderFlag_SourceNodeId,
  kWeaveMessageFlag_TunneledData = kWeaveHeaderFlag_TunneledData,
  kWeaveMessageFlag_MsgCounterSyncReq = kWeaveHeaderFlag_MsgCounterSyncReq
}
enum
Flags, die mit einer eingehenden oder ausgehenden Weave-Nachricht verknüpft sind.
WeaveMessageVersion{
  kWeaveMessageVersion_Unspecified = 0,
  kWeaveMessageVersion_V1 = 1,
  kWeaveMessageVersion_V2 = 2
}
enum
Die Version des Weave-Nachrichtenformats.
WeaveSubnetId{
  kWeaveSubnetId_NotSpecified = 0,
  kWeaveSubnetId_PrimaryWiFi = 1,
  kWeaveSubnetId_ThreadAlarm = 2,
  kWeaveSubnetId_WiFiAP = 3,
  kWeaveSubnetId_MobileDevice = 4,
  kWeaveSubnetId_Service = 5,
  kWeaveSubnetId_ThreadMesh = 6
}
enum
Weave hat einige reservierte Subnetznummern für bestimmte Netzwerkschnittstellen auf typischen Geräten.
WeaveVendorId enum

Typedefs

FabricSecretRotationScheme typedef.
uint8_t
FabricSecretScope nl::Weave::FabricSecretScope
uint8_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.
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::Weave::Binding

Erfasst das beabsichtigte Ziel einer Weave-Kommunikation und zugehörige Konfigurationsinformationen.

nl::Weave::Counter

Eine Schnittstelle zum Verwalten eines Zählers als Ganzzahlwert.

nl::Weave::ExchangeContext

Diese Klasse stellt eine laufende Unterhaltung (ExchangeContext) zwischen zwei oder mehr Knoten dar.

nl::Weave::FabricStateDelegate

Diese abstrakte Delegatklasse kommuniziert Fabric-Statusänderungen.

nl::Weave::HostPortList

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::Weave::JNIUtils
nl::Weave::MonotonicallyIncreasingCounter

Eine Klasse zur Verwaltung eines kontinuierlich ansteigenden Zählers als Ganzzahlwert.

nl::Weave::PersistedCounter

Eine Klasse zum Verwalten eines Zählers als Ganzzahlwert, der bei Neustarts beibehalten werden soll.

nl::Weave::WeaveConnection

Die Definition der Weave-Connection-Klasse.

nl::Weave::WeaveConnectionTunnel

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::Weave::WeaveEncryptionKey_AES128CTRSHA1
nl::Weave::WeaveExchangeHeader

Gibt das Weave-Profil und den Nachrichtentyp einer bestimmten Weave-Nachricht in einem ExchangeContext an.

nl::Weave::WeaveExchangeManager

Diese Klasse wird verwendet, um ExchangeContexts mit anderen Weave-Knoten zu verwalten.

nl::Weave::WeaveFabricState

Weiterleitende Deklaration von WeaveFabricState.

nl::Weave::WeaveKeyId

Die Definition der Weave-Schlüsselkennung.

nl::Weave::WeaveMessageLayer

Die Definition der Klasse WeaveMessageLayer, die die Kommunikation mit anderen Weave-Knoten verwaltet.

nl::Weave::WeaveMsgEncryptionKey

Enthält Informationen zum Weave-Nachrichtenverschlüsselungsschlüssel.

nl::Weave::WeaveMsgEncryptionKeyCache

Schlüssel-Cache für Weave-Nachrichtenverschlüsselungsschlüssel.

nl::Weave::WeaveSecurityManager
nl::Weave::WeaveServerBase

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::Weave::WeaveServerDelegateBase

Eine gemeinsame Basisklasse für die Implementierung von Weave-Serverdelegatobjekten.

nl::Weave::WeaveSessionKey

Enthält Informationen zu einem Weave-Sitzungsschlüssel.

nl::Weave::WeaveSessionState

Übermittelt den Kommunikationsstatus, der zum Senden/Empfangen von Nachrichten mit einem anderen Knoten erforderlich ist.

Strukturen

nl::Weave::JNILibraryMethod
nl::Weave::WRMPConfig

Die WRMP-Konfiguration.

nl::Weave::WeaveMessageInfo

Informationen zu einer Weave-Nachricht, die gerade gesendet oder empfangen wird.

Gewerkschaften

nl::Weave::WeaveEncryptionKey

Namespaces

nl::Weave::ASN1

Dieser Namespace enthält alle Schnittstellen in Weave für die Arbeit mit abstrakter Syntax Notation One (ASN.1).

nl::Weave::Crypto

Dieser Namespace umfasst alle Schnittstellen innerhalb von Weave zur gemeinsamen Unterstützung von kryptografischen Daten.

nl::Weave::DeviceLayer
nl::Weave::DeviceManager
nl::Weave::Encoding

Dieser Namespace bietet Funktionen für:

nl::Weave::Logging

Dieser Namespace umfasst alle Schnittstellen in Weave zur Unterstützung des gemeinsamen Loggings.

nl::Weave::Platform
nl::Weave::Profiles

Dieser Namespace umfasst alle Schnittstellen innerhalb von Weave-Profilen, sowohl Common als auch Nest Labs-anbieterspezifisch.

nl::Weave::SecuritySupport
nl::Weave::Stats
nl::Weave::Support
nl::Weave::System
nl::Weave::TLV

Definitionen für die Arbeit mit Daten, die im Weave-TLV codiert sind

nl::Weave::Warm

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.

@42

 @42
Attribute
kFabricSecretScope_All

Alle Geräte können ein entsprechendes Fabric-Secret haben.

@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_DefaultMulticastSourceAddress.

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
[in] buf
Puffer, in den die Fehlerzeichenfolge eingefügt wird.
[in] bufSize
Größe des bereitgestellten Zwischenspeichers in Byte.
[in] err
Der zu beschreibende Fehler.
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
nodeId
Ein Verweis auf die 64-Bit-Weave-Knoten-ID.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die Weave-Knoten-ID erfolgreich generiert wurde.

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
[in] interfaceId
Die 64-Bit-Schnittstellenkennung.
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
[in] fabricId
Die Weave-Stoff-ID.
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
[in] nodeId
Die 64-Bit-Weave-Knotenkennung.
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
)