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
Identifiziert den Zweck oder die Anwendung des Zertifikats.
@40 enum
Gibt die Quelle für das Passwort an, das in einem passwortbasierten Authentifizierungsprotokoll (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
Größe des Weave Message Encryption Application Key Diversifiers.
@45 enum
@53 enum
@54{
  kWeavePeerDescription_MaxLength = 100
}
enum
@55{
  kWeaveHeaderFlag_DestNodeId = 0x0100,
  kWeaveHeaderFlag_SourceNodeId = 0x0200,
  kWeaveHeaderFlag_TunneledData = 0x0400,
  kWeaveHeaderFlag_MsgCounterSyncReq = 0x0800
}
enum
Definitionen zum Header einer codierten Weave-Nachricht
@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 Header-Bits von Weave Exchange.
WeaveExchangeVersion enum
Die Weave Exchange-Header-Version.
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 einer eingehenden oder ausgehenden Weave-Nachricht zugeordnet 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 Distinguished 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 Header-Bits von Weave Exchange.
WeaveExchangeVersion typedef
enum nl::Weave::WeaveExchangeVersion
Die Weave Exchange-Header-Version.
WeaveMessageFlags typedef
enum nl::Weave::WeaveMessageFlags
Flags, die einer eingehenden oder ausgehenden Weave-Nachricht zugeordnet sind.
WeaveMessageHeader typedef
WeaveMessageVersion typedef
enum nl::Weave::WeaveMessageVersion
Die Version des Weave-Nachrichtenformats.
WeaveSubnetId typedef
enum nl::Weave::WeaveSubnetId
Weave hat einige reservierte Subnetznummern für Distinguished Netzwerkschnittstellen auf typischen Geräten.

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
Key Diversifier, der für die Ableitung des Schlüssels für die Weave-Nachrichtenverschlüsselung verwendet wird.

Funktionen

AppGroupMasterKeyIdFromAuthMode(WeaveAuthMode authMode)
uint8_t
Gibt die Masterschlüssel-ID der Anwendungsgruppe zurück, die mit dem Authentifizierungsmodus verknüpft 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 menschenlesbarer 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 generiert 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 erzeugt 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üssel-Authentifizierungsmodus für eine bestimmte Schlüssel-ID zurück.
IPv6InterfaceIdToWeaveNodeId(uint64_t interfaceId)
uint64_t
Konvertieren Sie die Kennung einer IPv6-Adressschnittstelle in eine Weave-Knoten-ID.
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 gemeinsamen 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
Dieser Wert ist "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
Konvertieren Sie eine Weave-Fabric-Kennung in eine globale IPv6-ULA-Kennung.
WeaveMessageSourceToStr(char *buf, uint32_t bufSize, const WeaveMessageInfo *msgInfo)
void
EINGESTELLT. Verwenden Sie stattdessen WeaveMessageLayer::GetPeerDescription().
WeaveNodeAddrToStr(char *buf, uint32_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, WeaveConnection *con)
void
EINGESTELLT. Verwenden Sie stattdessen WeaveMessageLayer::GetPeerDescription().
WeaveNodeIdToIPv6InterfaceId(uint64_t nodeId)
uint64_t
Konvertieren Sie eine Weave-Knoten-ID in eine IPv6-Adressschnittstellen-ID.
max(const _T & a, const _T & b)
const _T &
min(const _T & a, const _T & b)
const _T &

Kurse

nl::Weave::Binding

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

nl::Weave::Counter

Schnittstelle zum Verwalten eines Zählers als Ganzzahlwert.

nl::Weave::ExchangeContext

Diese Klasse repräsentiert eine laufende Unterhaltung (ExchangeContext) zwischen zwei oder mehr Knoten.

nl::Weave::FabricStateDelegate

Diese abstrakte Delegate-Klasse kommuniziert Änderungen des Fabric-Status.

nl::Weave::HostPortList

Zum Verwalten und Bearbeiten einer Hostportliste, einer kompakten, binärcodierten Sammlung von Tupeln mit Host- und Portkennungen, die mit dem Weave Service Directory verknüpft sind.

nl::Weave::JNIUtils
nl::Weave::MonotonicallyIncreasingCounter

Eine Klasse zum Verwalten eines kontinuierlich ansteigenden Zählers als Ganzzahlwert.

nl::Weave::PersistedCounter

Eine Klasse zum Verwalten eines Zählers als Ganzzahlwert, der auch nach Neustarts bestehen bleibt.

nl::Weave::WeaveConnection

Die Definition der Weave Connection-Klasse.

nl::Weave::WeaveConnectionTunnel

Die Definition der WeaveConnectionTunnel-Klasse, die ein Paar von TCPEndPoints verwaltet, deren ursprüngliche WeaveConnections gekoppelt sind und zwischen denen WeaveMessageLayer alle Daten- und Verbindungssperren weiterleitet.

nl::Weave::WeaveEncryptionKey_AES128CTRSHA1
nl::Weave::WeaveExchangeHeader

Hiermit werden das Weave-Profil und der Nachrichtentyp einer bestimmten Weave-Nachricht innerhalb eines ExchangeContext angegeben.

nl::Weave::WeaveExchangeManager

Mit dieser Klasse wird ExchangeContexts mit anderen Weave-Knoten verwaltet.

nl::Weave::WeaveFabricState

Forward-Deklaration von WeaveFabricState.

nl::Weave::WeaveKeyId

Die Definition der Weave-Schlüsselkennung.

nl::Weave::WeaveMessageLayer

Die Definition der WeaveMessageLayer-Klasse, 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 Message Encryption Keys.

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

Gemeinsames Basisobjekt für die Implementierung unerwünschter antwortlicher Weave-Profile (Server), das das Validieren authentifizierter Anfragen und das Senden von Statusberichten einschließt und gemeinsamen Datenspeicher für den Fabric-Zustand und einen Exchange-Manager bietet.

nl::Weave::WeaveServerDelegateBase

Eine allgemeine Basisklasse für die Implementierung von Weave-Server-Delegatobjekten.

nl::Weave::WeaveSessionKey

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

nl::Weave::WeaveSessionState

Überträgt 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 Abstract Syntax Notation One (ASN.1).

nl::Weave::Crypto

Dieser Namespace enthält alle Schnittstellen in Weave zur gemeinsamen kryptografischen Unterstützung.

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

Dieser Namespace bietet Funktionen für:

nl::Weave::Logging

Dieser Namespace enthält alle Schnittstellen in Weave zur gemeinsamen Unterstützung von Logging.

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

Dieser Namespace enthält alle Schnittstellen innerhalb von Weave for Weave-Profilen, sowohl Common als auch 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-Format 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

Wenn eine Antwort auf eine gesendete Nachricht erwartet wird.

kFlagAutoReleaseConnection

Wenn der Austauschkontext freigegeben wird, wird der Schlüssel zur Nachrichtenverschlüsselung automatisch freigegeben.

kFlagAutoReleaseKey

Wenn festgelegt, bedeutet dies, dass mindestens eine Nachricht von einem Peer in diesem Austauschkontext empfangen wurde.

kFlagAutoRequestAck

Dieser Kontext wurde mit einer WeaveConnection verknüpft.

kFlagConnectionClosed

Dieser Kontext ist der Initiator des Austauschs.

kFlagDropAck

Wenn diese Richtlinie aktiviert ist, wird automatisch eine Bestätigung angefordert, wenn eine Nachricht über UDP gesendet wird.

kFlagMsgRcvdFromPeer

Wenn diese Option festgelegt ist, bedeutet das, dass für mindestens eine bei diesem Austausch empfangene Nachricht eine Bestätigung angefordert wurde.

Dieses Flag wird von der Anwendung gelesen, um zu entscheiden, ob eine Bestätigung für die Antwortnachricht angefordert werden muss, die gerade gesendet wird. Dieses Flag kann auch angeben, ob der Peer WRMP verwendet.

kFlagPeerRequestedAck

Wenn festgelegt, bedeutet das, dass eine Bestätigung noch zurückgesendet werden muss.

kFlagResponseExpected

Nur intern und nur zur Fehlerbehebung: Wenn diese Funktion aktiviert 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

Identifiziert den Zweck oder die Anwendung des Zertifikats.

Ein Zertifikatstyp ist ein Label, das den Zweck oder die Anwendung eines Zertifikats beschreibt. Zertifikattypen werden nicht als Attribute der entsprechenden Zertifikate geführt, sondern von der Struktur des Zertifikats und/oder dem Kontext, in dem es verwendet wird, abgeleitet. Die Aufzählung der Zertifikatstypen enthält eine Reihe vordefinierter Werte, mit denen häufig verwendete Zertifikatanwendungen beschrieben werden. Entwickler können den Wertebereich der Zertifikattypen auch durch anwendungsspezifische Typen erweitern, die benutzerdefinierte Zertifikate oder Zertifikate mit eindeutigen Sicherheitseigenschaften beschreiben.

Zertifikattypen werden hauptsächlich bei der Implementierung von Zugriffssteuerungsrichtlinien verwendet, bei denen der Zugriff auf Anwendungsfunktionen vom Typ des Zertifikats beeinflusst wird, das der Antragsteller vorlegt.

Attribute
kCertType_AccessToken

Ein Weave-Zugriffstoken-Zertifikat

kCertType_AppDefinedBase

Anwendungsspezifische Zertifikatstypen müssen Werte >= dieser Wert haben.

kCertType_CA

Ein CA-Zertifikat.

kCertType_Device

Ein Weave-Gerätezertifikat

kCertType_FirmwareSigning

Ein Signaturzertifikat der Weave-Firmware.

kCertType_General

Das Zertifikat ist allgemein oder nicht spezifisch.

kCertType_Max

Zertifikattypen dürfen nicht größer als dieser Wert sein.

kCertType_NotSpecified

Der Zertifikattyp wurde nicht angegeben.

kCertType_ServiceEndpoint

Ein Weave-Dienst-Endpunktzertifikat.

@40

 @40

Gibt die Quelle für das Passwort an, das in einem passwortbasierten Authentifizierungsprotokoll (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 allgemeiner Mechanismen.

kWeaveAuthModeCategory_GroupKey

Ein Peer wurde mit einem freigegebenen Gruppenschlüssel authentifiziert.

kWeaveAuthModeCategory_PASE

Peer wurde mit dem Weave PASE-Protokoll authentifiziert.

kWeaveAuthModeCategory_TAKE

Der Peer wurde mit dem Weave-TAKE-Protokoll authentifiziert.

kWeaveAuthMode_CASE_AccessToken

Der Peer wurde mithilfe von CASE mit dem Weave-Zugriffstoken-Zertifikat authentifiziert.

kWeaveAuthMode_CASE_AnyCert

Ein Peer wurde mithilfe von CASE mit einem beliebigen Zertifikat oder einem Zertifikat eines unbekannten Typs authentifiziert.

kWeaveAuthMode_CASE_Device

Der Peer wurde mit CASE und dem Weave-Gerätezertifikat authentifiziert.

kWeaveAuthMode_CASE_GeneralCert

Ein Peer wurde mithilfe von CASE mit einem allgemeinen oder nicht spezifischen Zertifikatstyp authentifiziert.

kWeaveAuthMode_CASE_ServiceEndPoint

Der Peer wurde mit CASE und dem Zertifikat des Weave-Dienstendpunkts authentifiziert.

kWeaveAuthMode_NotSpecified

Authentifizierungsmodus nicht angegeben.

kWeaveAuthMode_PASE_PairingCode

Peer wurde mit PASE mit Geräte-Kopplungscode authentifiziert.

kWeaveAuthMode_TAKE_IdentificationKey

Ein Peer wurde mithilfe von TAKE mit einem Tokenidentifikationsschlü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

Bytewert, 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

Größe des Weave Message Encryption Application Key Diversifiers.

@45

 @45

@53

 @53

@54

 @54
Attribute
kWeavePeerDescription_MaxLength

Maximale Länge des Strings, einschließlich NUL-Zeichen, der von WeaveMessageLayer::GetPeerDescription() zurückgegeben wird.

@55

 @55

Definitionen zum Header einer codierten Weave-Nachricht

Attribute
kWeaveHeaderFlag_DestNodeId

Gibt an, dass die Zielknoten-ID im Weave-Nachrichtenheader vorhanden ist.

kWeaveHeaderFlag_MsgCounterSyncReq

Gibt an, dass der Absender die Synchronisierung des Nachrichtenzählers anfordert.

kWeaveHeaderFlag_SourceNodeId

Gibt an, dass die Quellknoten-ID 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

Bitwert einer Einzelperson/Gruppe, der eine EUI-64-Kennung der Gruppenadresse angibt.

kEUI64_IG_Individual

Bitwert einer Einzelperson/Gruppe, der eine EUI-64-Kennung für eine Einzeladresse angibt.

kEUI64_IG_Mask

Bitmaske für das Bit einer Einzelperson/Gruppe (I/G) innerhalb einer EUI-64-Kennung.

Der Wert 0 gibt an, dass es sich bei der ID um eine einzelne Adresse handelt. 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-Bit (U/L) 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 allgemein 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 Übersichtlichkeit als lokal betrachtet.

WeaveEncryptionType

 WeaveEncryptionType

Die Verschlüsselungstypen für die Weave-Nachricht.

Attribute
kWeaveEncryptionType_AES128CTRSHA1

Nachricht, die mit AES-128-CTR-Verschlüsselung und HMAC-SHA-1-Nachrichtenintegrität verschlüsselt wurde.

kWeaveEncryptionType_None

Nachricht nicht verschlüsselt.

WeaveExchangeFlags

 WeaveExchangeFlags

Die Header-Bits von Weave Exchange.

Attribute
kWeaveExchangeFlag_AckId

Wird festgelegt, wenn die aktuelle Nachricht eine Bestätigung für eine zuvor empfangene Nachricht ist.

kWeaveExchangeFlag_Initiator

Legen Sie fest, wann eine aktuelle Nachricht vom Initiator eines Austauschs gesendet wird.

kWeaveExchangeFlag_NeedsAck

Wird festgelegt, wenn die aktuelle Nachricht eine Bestätigung vom Empfänger anfordert.

WeaveExchangeVersion

 WeaveExchangeVersion

Die Weave Exchange-Header-Version.

WeaveMessageFlags

 WeaveMessageFlags

Flags, die einer eingehenden oder ausgehenden Weave-Nachricht zugeordnet sind.

Die hier definierten Werte sind zur Verwendung im Feld WeaveMessageInfo.Flags vorgesehen.

Attribute
kWeaveMessageFlag_DefaultMulticastSourceAddress

Gibt an, dass beim Senden von IPv6-Multicast-Nachrichten die Standardauswahl für die IPv6-Quelladresse verwendet 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 Gruppenschlüsselnachrichtenzähler des Peers 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 Quellknoten-ID 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 passende Nachrichtenversion basierend auf dem für die Weave-Nachricht erforderlichen Frame-Format aus. Standardmäßig lautet die Nachrichtenversion kWeaveMessageVersion_V1. Wenn Sie beispielsweise Weave Zuverlässiges Messaging verwenden, lautet die Version kWeaveMessageVersion_V2.

Attribute
kWeaveMessageVersion_Unspecified

Nicht angegebene Nachrichtenversion.

kWeaveMessageVersion_V1

Version V1 des Nachrichten-Header-Formats.

kWeaveMessageVersion_V2

Version 2 des Nachrichten-Header-Formats.

WeaveSubnetId

 WeaveSubnetId

Weave hat einige reservierte Subnetznummern für Distinguished Netzwerkschnittstellen auf typischen Geräten.

Diese Zahlen werden hier symbolischen Konstanten zugewiesen. Diese Subnetznummern werden von Weave verwendet, um IPv6-UALA-Adressen auf geeigneten Schnittstellen zu konfigurieren.

Attribute
kWeaveSubnetId_MobileDevice

Die Subnetz-ID für alle Mobilgeräte.

kWeaveSubnetId_NotSpecified

Als nicht spezifizierter Wert oder Nullwert reserviert.

kWeaveSubnetId_PrimaryWiFi

Die Subnetznummer der WLAN-Funkschnittstelle.

kWeaveSubnetId_Service

Die Subnetz-ID für die Nest-Dienstendpunkte.

kWeaveSubnetId_ThreadAlarm

Die Subnetznummer der Thread-Alarm-Funkschnittstelle.

kWeaveSubnetId_ThreadMesh

Die Subnetz-ID der Thread-Mesh-Funkschnittstelle.

kWeaveSubnetId_WiFiAP

Die Subnetznummer der Local 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, wie ein Peer-Knoten während eines Weave-Nachrichtenaustauschs authentifiziert wurde oder sein sollte. Bei der Initiierung verwenden Anwendungen WeaveAuthMode, um einen gewünschten Peer-Authentifizierungsmodus für einen Austausch auszudrücken. Dadurch werden die Weave-Sicherheits- und Messaging-Ebenen angewiesen, den gewünschten Modus zu erreichen oder die Kommunikation fehlschlagen zu lassen. Im Antwortkontext identifiziert WeaveAuthMode, wie der anfragende Knoten (der Peer) authentifiziert wurde, sodass die antwortende Anwendung Zugriffssteuerungen auf der Grundlage dieser Informationen erzwingen kann.

Der einer eingehenden Weave-Nachricht zugewiesene WeaveAuthMode hängt von der Art des Schlüssels ab, der für die Verschlüsselung dieser Nachricht verwendet wurde. WeaveAuthMode leitet sich vom Mechanismus ab, mit dem der Schlüssel festgelegt wurde, und von 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 gängige Authentifizierungsmodi beschreiben. Diese sind nach dem wichtigsten Vereinbarungsmechanismus (CASE, PASE, GroupKey usw.) aufgeschlüsselt. Entwickler können WeaveAuthMode erweitern, indem sie anwendungsspezifische Modi definieren, die sie an bestimmte Verschlüsselungsschlüssel anhängen 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 Header-Bits von Weave Exchange.

WeaveExchangeVersion

enum nl::Weave::WeaveExchangeVersion WeaveExchangeVersion

Die Weave Exchange-Header-Version.

WeaveMessageFlags

enum nl::Weave::WeaveMessageFlags WeaveMessageFlags

Flags, die einer eingehenden oder ausgehenden Weave-Nachricht zugeordnet sind.

Die hier definierten Werte sind zur Verwendung im Feld WeaveMessageInfo.Flags vorgesehen.

WeaveMessageHeader

struct WeaveMessageInfo WeaveMessageHeader

WeaveMessageVersion

enum nl::Weave::WeaveMessageVersion WeaveMessageVersion

Die Version des Weave-Nachrichtenformats.

Weave wählt die passende Nachrichtenversion basierend auf dem für die Weave-Nachricht erforderlichen Frame-Format aus. Standardmäßig lautet die Nachrichtenversion kWeaveMessageVersion_V1. Wenn Sie beispielsweise Weave Zuverlässiges Messaging verwenden, lautet die Version kWeaveMessageVersion_V2.

WeaveSubnetId

enum nl::Weave::WeaveSubnetId WeaveSubnetId

Weave hat einige reservierte Subnetznummern für Distinguished Netzwerkschnittstellen auf typischen Geräten.

Diese Zahlen werden hier symbolischen Konstanten zugewiesen. Diese Subnetznummern werden von Weave verwendet, um IPv6-UALA-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 }

Key Diversifier, der für die Ableitung des Schlüssels für die Weave-Nachrichtenverschlüsselung verwendet wird.

Dieser Wert stellt die ersten 4 Byte des SHA-1 HASH der Wortgruppe „Nest Weave Message EK and AK“ dar.

Funktionen

AppGroupMasterKeyIdFromAuthMode

uint8_t AppGroupMasterKeyIdFromAuthMode(
  WeaveAuthMode authMode
)

Gibt die Masterschlüssel-ID der Anwendungsgruppe zurück, die mit dem Authentifizierungsmodus verknüpft 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 menschenlesbarer 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 Beschreibungszeichenfolge in den angegebenen Puffer geschrieben wurde.
Rückgabe
false: Wenn der angegebene Fehler kein Weave-Fehler war.

GenerateWeaveNodeId

NL_DLL_EXPORT WEAVE_ERROR GenerateWeaveNodeId(
  uint64_t & nodeId
)

Zufällige Weave-Knoten-ID generieren.

Diese Funktion generiert eine lokal eindeutige 64-Bit-Weave-Knoten-ID. Diese Funktion verwendet eine kryptografisch starke, zufällige Datenquelle, um die Eindeutigkeit des generierten Werts zu gewährleisten. Bit 57 der generierten Weave-Knoten-ID ist auf 1 gesetzt, um anzuzeigen, 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
Weave-Knoten-ID wurde generiert.

GetFibonacciForIndex

uint32_t GetFibonacciForIndex(
  uint32_t index
)

Diese Funktion generiert eine 32-Bit-Fibonacci-Zahl für einen gegebenen 32-Bit-Index.

Details
Rückgabe
Vorzeichenlose 32-Bit-Fibonacci-Nummer.

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
16-Bit-Ganzzahl ohne Vorzeichen.

GetRandU32

uint32_t GetRandU32(
  void
)

Diese Funktion generiert eine vorzeichenlose 32-Bit-Zufallszahl.

Details
Rückgabe
32-Bit-Ganzzahl ohne Vorzeichen.

GetRandU64

uint64_t GetRandU64(
  void
)

Diese Funktion erzeugt eine vorzeichenlose 64-Bit-Zufallszahl.

Details
Rückgabe
64-Bit-Ganzzahl ohne Vorzeichen.

GetRandU8

uint8_t GetRandU8(
  void
)

Diese Funktion generiert eine vorzeichenlose 8-Bit-Zufallszahl.

Details
Rückgabe
Zufällige 8-Bit-Ganzzahl ohne Vorzeichen.

GetVendorName

const char * GetVendorName(
  uint16_t vendorId
)

GroupKeyAuthMode

WeaveAuthMode GroupKeyAuthMode(
  uint32_t keyId
)

Gibt einen entsprechenden Gruppenschlüssel-Authentifizierungsmodus für eine bestimmte Schlüssel-ID zurück.

IPv6InterfaceIdToWeaveNodeId (IPv6InterfaceIdToWeaveNodeId)

uint64_t IPv6InterfaceIdToWeaveNodeId(
  uint64_t interfaceId
)

Konvertieren Sie die Kennung einer IPv6-Adressschnittstelle in eine Weave-Knoten-ID.

Der Einfachheit halber werden Knotenkennungen, die kleiner oder gleich #kMaxAlwaysLocalWeaveNodeId (65535) sind, als „lokal“ betrachtet und ihr universelles/lokales Bit wird 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 gemeinsamen 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
)

Dieser Wert ist "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
)

Konvertieren Sie eine Weave-Fabric-Kennung in eine globale IPv6-ULA-Kennung.

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
Die zugeordnete globale IPv6-Kennung.

WeaveMessageSourceToStr

void WeaveMessageSourceToStr(
  char *buf,
  uint32_t bufSize,
  const WeaveMessageInfo *msgInfo
)

EINGESTELLT. Verwenden Sie stattdessen WeaveMessageLayer::GetPeerDescription().

WeaveNodeAddrToStr

void WeaveNodeAddrToStr(
  char *buf,
  uint32_t bufSize,
  uint64_t nodeId,
  const IPAddress *addr,
  uint16_t port,
  WeaveConnection *con
)

EINGESTELLT. Verwenden Sie stattdessen WeaveMessageLayer::GetPeerDescription().

WeaveNodeIdToIPv6InterfaceId

uint64_t WeaveNodeIdToIPv6InterfaceId(
  uint64_t nodeId
)

Konvertieren Sie eine Weave-Knoten-ID in eine IPv6-Adressschnittstellen-ID.

Weave-Knoten-IDs sind universelle/lokale EUI-64-IDs, die gemäß RFC-3513 in Schnittstellen-IDs umgewandelt werden, indem das universelle/lokale Bit invertiert wird (Bit 57 zählt den LSB als 0).

Der Einfachheit halber werden Knotenkennungen, die kleiner oder gleich #kMaxAlwaysLocalWeaveNodeId (65535) sind, als „lokal“ betrachtet und ihr universelles/lokales Bit wird 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
IPv6-Schnittstellenkennung.

Max.

const _T & max(
  const _T & a,
  const _T & b
)

Min.

const _T & min(
  const _T & a,
  const _T & b
)