nl::Weave

Podsumowanie

Wyliczenia

@21{
  kFlagConnectionClosed = 0x0002,
  kFlagAutoRequestAck = 0x0004,
  kFlagDropAck = 0x0008,
  kFlagResponseExpected = 0x0010,
  kFlagAckPending = 0x0020,
  kFlagPeerRequestedAck = 0x0040,
  kFlagMsgRcvdFromPeer = 0x0080,
  kFlagAutoReleaseKey = 0x0100,
  kFlagAutoReleaseConnection = 0x0200,
  kFlagUseEphemeralUDPPort = 0x0400
}
enum | typ wyliczeniowy
@36 enum | typ wyliczeniowy
@37 enum | typ wyliczeniowy
@38{
  kFabricIdDefaultForTest = 1ULL
}
enum | typ wyliczeniowy
@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 | typ wyliczeniowy
Określa cel lub zastosowanie certyfikatu.
@40 enum | typ wyliczeniowy
Identyfikuje źródło hasła używanego w protokole uwierzytelniania na podstawie hasła (np.
@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 | typ wyliczeniowy
@42{
  kFabricSecretScope_All = 0x00
}
enum | typ wyliczeniowy
@43{
  kTestKey_AES128CTRSHA1_DataKeyByte = 0xAB,
  kTestKey_AES128CTRSHA1_IntegrityKeyByte = 0xBA
}
enum | typ wyliczeniowy
@44 enum | typ wyliczeniowy
Rozmiar różnicy klucza aplikacji do szyfrowania wiadomości Weave.
@45 enum | typ wyliczeniowy
@53 enum | typ wyliczeniowy
@54{
  kWeavePeerDescription_MaxLength = 100
}
enum | typ wyliczeniowy
@55{
  kWeaveHeaderFlag_DestNodeId = 0x0100,
  kWeaveHeaderFlag_SourceNodeId = 0x0200,
  kWeaveHeaderFlag_TunneledData = 0x0400,
  kWeaveHeaderFlag_MsgCounterSyncReq = 0x0800
}
enum | typ wyliczeniowy
Definicje związane z nagłówkiem zakodowanej wiadomości Weave.
@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 | typ wyliczeniowy
Definicje pól bitowych dla identyfikatorów IEEE EUI-64.
@57{
  kMaxAlwaysLocalWeaveNodeId = 0x000000000000FFFFULL
}
enum | typ wyliczeniowy
Specjalne zakresy identyfikatorów węzłów Weave.
WeaveEncryptionType{
  kWeaveEncryptionType_None = 0,
  kWeaveEncryptionType_AES128CTRSHA1 = 1
}
enum | typ wyliczeniowy
Typy szyfrowania wiadomości Weave.
WeaveExchangeFlags{
  kWeaveExchangeFlag_Initiator = 0x1,
  kWeaveExchangeFlag_AckId = 0x2,
  kWeaveExchangeFlag_NeedsAck = 0x4
}
enum | typ wyliczeniowy
Bity flagi nagłówka Weave Exchange.
WeaveExchangeVersion enum | typ wyliczeniowy
Wersja nagłówka Weave Exchange.
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 | typ wyliczeniowy
Flagi powiązane z przychodzącymi lub wychodzącymi wiadomościami Weave.
WeaveMessageVersion{
  kWeaveMessageVersion_Unspecified = 0,
  kWeaveMessageVersion_V1 = 1,
  kWeaveMessageVersion_V2 = 2
}
enum | typ wyliczeniowy
Wersja formatu wiadomości Weave.
WeaveSubnetId{
  kWeaveSubnetId_NotSpecified = 0,
  kWeaveSubnetId_PrimaryWiFi = 1,
  kWeaveSubnetId_ThreadAlarm = 2,
  kWeaveSubnetId_WiFiAP = 3,
  kWeaveSubnetId_MobileDevice = 4,
  kWeaveSubnetId_Service = 5,
  kWeaveSubnetId_ThreadMesh = 6
}
enum | typ wyliczeniowy
Weave ma zarezerwowane numery podsieci dla wyróżniających się interfejsów sieciowych na typowych urządzeniach.
WeaveVendorId enum | typ wyliczeniowy

Definicje typów

FabricSecretRotationScheme typedef
uint8_t
FabricSecretScope nl::Weave::FabricSecretScope
uint8_t
Określa kategorię urządzeń, które mogą być posiadane i wykorzystywane do obiektów tajnych tkaniny.
WeaveAuthMode typedef
uint16_t
Określa sposób uwierzytelniania węzła równorzędnego.
WeaveEncryptionKey typedef
WeaveEncryptionType typedef
enum nl::Weave::WeaveEncryptionType
Typy szyfrowania wiadomości Weave.
WeaveExchangeFlags typedef
enum nl::Weave::WeaveExchangeFlags
Bity flagi nagłówka Weave Exchange.
WeaveExchangeVersion typedef
enum nl::Weave::WeaveExchangeVersion
Wersja nagłówka Weave Exchange.
WeaveMessageFlags typedef
enum nl::Weave::WeaveMessageFlags
Flagi powiązane z przychodzącymi lub wychodzącymi wiadomościami Weave.
WeaveMessageHeader typedef
WeaveMessageVersion typedef
enum nl::Weave::WeaveMessageVersion
Wersja formatu wiadomości Weave.
WeaveSubnetId typedef
enum nl::Weave::WeaveSubnetId
Weave ma zarezerwowane numery podsieci dla wyróżniających się interfejsów sieciowych na typowych urządzeniach.

Zmienne

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
Dywersyfikator kluczy używany do tworzenia kluczy szyfrowania wiadomości Weave.

Funkcje

AppGroupMasterKeyIdFromAuthMode(WeaveAuthMode authMode)
uint8_t
Zwraca identyfikator klucza głównego grupy aplikacji powiązany z trybem uwierzytelniania.
CASEAuthMode(uint8_t certType)
WeaveAuthMode
Zwraca tryb uwierzytelniania CASE dla danego typu certyfikatu.
CertTypeFromAuthMode(WeaveAuthMode authMode)
uint8_t
Zwraca źródło hasła dla danego trybu uwierzytelniania.
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
Biorąc pod uwagę błąd Weave, zwraca zrozumiały dla człowieka ciąg C z końcówką wartości NULL, zawierający opis błędu.
GenerateWeaveNodeId(uint64_t & nodeId)
NL_DLL_EXPORT WEAVE_ERROR
Wygeneruj losowy identyfikator węzła Weave.
GetFibonacciForIndex(uint32_t index)
uint32_t
Ta funkcja generuje 32-bitową liczbę Fibonacci dla danego indeksu 32-bitowego.
GetMessageName(uint32_t profileId, uint8_t msgType)
const char *
GetProfileName(uint32_t profileId)
const char *
GetRandU16(void)
uint16_t
Ta funkcja generuje 16-bitową nieoznaczoną liczbę losową.
GetRandU32(void)
uint32_t
Ta funkcja generuje 32-bitową nieoznaczoną liczbę losową.
GetRandU64(void)
uint64_t
Ta funkcja generuje 64-bitową nieoznaczoną liczbę losową.
GetRandU8(void)
uint8_t
Ta funkcja generuje 8-bitową nieoznaczoną liczbę losową.
GetVendorName(uint16_t vendorId)
const char *
GroupKeyAuthMode(uint32_t keyId)
WeaveAuthMode
Zwraca odpowiedni tryb uwierzytelniania klucza grupy dla podanego identyfikatora klucza.
IPv6InterfaceIdToWeaveNodeId(uint64_t interfaceId)
uint64_t
Konwertuj identyfikator interfejsu adresu IPv6 na identyfikator węzła Weave.
IsCASEAuthMode(WeaveAuthMode authMode)
bool
Wartość to „prawda”, jeśli tryb uwierzytelniania bazuje na protokole Weave CASE.
IsCertAuthMode(WeaveAuthMode authMode)
bool
Wartość to „prawda”, jeśli tryb uwierzytelniania opiera się na posiadaniu klucza prywatnego powiązanego z certyfikatem.
IsGroupKeyAuthMode(WeaveAuthMode authMode)
bool
Wartość to „prawda”, jeśli tryb uwierzytelniania bazuje na posiadaniu udostępnionego klucza grupy.
IsPASEAuthMode(WeaveAuthMode authMode)
bool
Wartość to „prawda”, jeśli tryb uwierzytelniania bazuje na protokole Weave PASE.
IsPasswordAuthMode(WeaveAuthMode authMode)
bool
Prawda, jeśli tryb uwierzytelniania wymaga posiadania udostępnionego hasła.
IsTAKEAuthMode(WeaveAuthMode authMode)
bool
Wartość to „prawda”, jeśli tryb uwierzytelniania jest oparty na protokole Weave Take.
IsWRMPControlMessage(uint32_t profileId, uint8_t msgType)
bool
J2N_ByteArray(JNIEnv *env, jbyteArray inArray, uint8_t *& outArray, uint32_t & outArrayLen)
J2N_ByteArrayFieldVal(JNIEnv *env, jobject obj, const char *fieldName, uint8_t *& outArray, uint32_t & outArrayLen)
J2N_ByteArrayInPlace(JNIEnv *env, jbyteArray inArray, uint8_t *outArray, uint32_t maxArrayLen)
J2N_EnumFieldVal(JNIEnv *env, jobject obj, const char *fieldName, const char *fieldType, int & outVal)
J2N_EnumVal(JNIEnv *env, jobject enumObj, int & outVal)
J2N_IntFieldVal(JNIEnv *env, jobject obj, const char *fieldName, jint & outVal)
J2N_LongFieldVal(JNIEnv *env, jobject obj, const char *fieldName, jlong & outVal)
J2N_ShortFieldVal(JNIEnv *env, jobject obj, const char *fieldName, jshort & outVal)
J2N_StringFieldVal(JNIEnv *env, jobject obj, const char *fieldName, char *& outVal)
MakeClassName(const char *basePackageName, const char *relativeClassName, char *& classNameBuf)
PASEAuthMode(uint8_t pwSource)
WeaveAuthMode
Zwraca odpowiedni tryb uwierzytelniania PASE dla danego źródła hasła.
PasswordSourceFromAuthMode(WeaveAuthMode authMode)
uint8_t
Zwraca źródło hasła dla danego trybu uwierzytelniania.
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
Konwertuj identyfikator tkaniny Weave na globalny identyfikator ULA IPv6.
WeaveMessageSourceToStr(char *buf, uint32_t bufSize, const WeaveMessageInfo *msgInfo)
void
WeaveNodeAddrToStr(char *buf, uint32_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, WeaveConnection *con)
void
WeaveNodeIdToIPv6InterfaceId(uint64_t nodeId)
uint64_t
Konwertuj identyfikator węzła Weave na identyfikator interfejsu adresu IPv6.
max(const _T & a, const _T & b)
const _T &
min(const _T & a, const _T & b)
const _T &

Zajęcia

nl::Weave::Binding

Przechwytuje zamierzony cel komunikacji Weave i powiązane informacje o konfiguracji.

nl::Weave::Counter

Interfejs do zarządzania licznikiem w postaci liczby całkowitej.

nl::Weave::ExchangeContext

Ta klasa reprezentuje trwającą rozmowę (ExchangeContext) między co najmniej 2 węzłami.

nl::Weave::FabricStateDelegate

Ta abstrakcyjna klasa delegata komunikuje zmiany stanu tkaniny.

nl::Weave::HostPortList

Do zarządzania listą portów hostów, czyli kompaktowego, zakodowanego binarnie zbioru krotek identyfikatorów hostów i portów powiązanych z katalogiem usług Weave.

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

Klasa zarządzania monotonicznie rosnącym licznikiem jako wartością całkowitą.

nl::Weave::PersistedCounter

Klasa zarządzania licznikiem w postaci liczby całkowitej, która ma być wykorzystywana po ponownym uruchomieniu.

nl::Weave::WeaveConnection

Definicja klasy połączenia Weave.

nl::Weave::WeaveConnectionTunnel

Definicja klasy WeaveConnectionTunnel, która zarządza parą punktów TCPEndPoint, których oryginalne połączenia WeaveConnections zostały połączone, a między nią WeaveMessageLayer przekazuje wszystkie dane i zamknięcia połączeń.

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

Określa profil Weave i typ komunikatu konkretnej wiadomości Weave w obrębie ExchangeContext.

nl::Weave::WeaveExchangeManager

Ta klasa służy do zarządzania kontekstem ExchangeContext z innymi węzłami Weave.

nl::Weave::WeaveFabricState

Deklaracja Forward WeaveFabricState.

nl::Weave::WeaveKeyId

Definicja identyfikatora klucza Weave.

nl::Weave::WeaveMessageLayer

Definicja klasy WeaveMessageLayer, która zarządza komunikacją z innymi węzłami Weave.

nl::Weave::WeaveMsgEncryptionKey

Zawiera informacje o kluczu szyfrowania wiadomości Weave.

nl::Weave::WeaveMsgEncryptionKeyCache

Pamięć podręczna kluczy szyfrowania wiadomości Weave.

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

Typowy, podstawowy obiekt do implementowania niepożądanych użytkowników (serwerów) profilu Weave, który obejmuje weryfikację uwierzytelnionych żądań i wysyłanie raportów o stanie oraz zapewnia wspólną pamięć masową dla stanu sieci szkieletowej i menedżera giełdy.

nl::Weave::WeaveServerDelegateBase

Wspólna klasa bazowa do implementowania obiektów delegata serwera Weave.

nl::Weave::WeaveSessionKey

Zawiera informacje o kluczu sesji Weave.

nl::Weave::WeaveSessionState

Przekazuje stan komunikacji wymagany do wysyłania/odbierania wiadomości z innego węzła.

Konstrukcja

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

Konfiguracja WRMP.

nl::Weave::WeaveMessageInfo

Informacje o wiadomości Weave, która jest w trakcie wysyłania lub odbierania.

Związki

nl::Weave::WeaveEncryptionKey

Przestrzenie nazw

nl::Weave::ASN1

Ta przestrzeń nazw obejmuje wszystkie interfejsy weave na potrzeby pracy z notacją abstrakcyjną składni (ASN.1).

nl::Weave::Crypto

Ta przestrzeń nazw obejmuje wszystkie interfejsy Weave do wspólnej obsługi kryptograficznej.

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

Ta przestrzeń nazw zapewnia funkcje, które umożliwiają:

nl::Weave::Logging

Ta przestrzeń nazw obejmuje wszystkie interfejsy Weave do obsługi logowania współdzielonego.

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

Ta przestrzeń nazw obejmuje wszystkie interfejsy w profilach Weave dla Weave, zarówno Common, jak i Nest Labs specyficzne dla dostawców.

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

Definicje związane z pracą z danymi kodowanymi w formacie TLV Weave.

nl::Weave::Warm

Ta przestrzeń nazw zawiera interfejsy modułu adresu i routingu Weave, czyli przenośnego modułu do konfigurowania adresów IP i tras Weave.

Wyliczenia

@21

 @21
Właściwości
kFlagAckPending

Czy oczekiwana jest odpowiedź na wysyłana wiadomość.

kFlagAutoReleaseConnection

Automatycznie zwolnij klucz szyfrowania wiadomości, gdy kontekst giełdy zostanie uwolniony.

kFlagAutoReleaseKey

Po ustawieniu wskazuje, że co najmniej 1 wiadomość została odebrana od peera w tym kontekście wymiany.

kFlagAutoRequestAck

Ten kontekst został powiązany z elementem WeaveConnection.

kFlagConnectionClosed

Ten kontekst jest inicjatorem wymiany.

kFlagDropAck

Gdy to ustawienie jest skonfigurowane, automatycznie żądaj potwierdzenia za każdym razem, gdy wiadomość zostanie wysłana przez UDP.

kFlagMsgRcvdFromPeer

Po ustawieniu wskazuje, że co najmniej 1 wiadomość otrzymana w ramach tej wymiany poprosiła o potwierdzenie.

Ta flaga jest odczytywana przez aplikację w celu określenia, czy musi zażądać potwierdzenia dla wiadomości z odpowiedzią, którą ma wysłać. Ta flaga może też wskazywać, czy aplikacja z grupy porównawczej używa WRMP.

kFlagPeerRequestedAck

Gdy jest ustawione, oznacza to, że czeka na odesłanie potwierdzenie.

kFlagResponseExpected

Tylko wewnętrzne i debugowanie: gdy zasada jest skonfigurowana, warstwa giełdy nie wysyła potwierdzenia.

kFlagUseEphemeralUDPPort

Automatycznie zwolnij powiązane elementy WeaveConnection, gdy kontekst giełdy zostanie zwolniony.

@36

 @36

@37

 @37

@38

 @38
Właściwości
kFabricIdDefaultForTest

Domyślny identyfikator tkaniny, którego należy używać tylko do testów.

@39

 @39

Określa cel lub zastosowanie certyfikatu.

Typ certyfikatu to etykieta opisująca przeznaczenie lub aplikację certyfikatu. Typy certyfikatów nie są przedstawiane jako atrybuty odpowiednich certyfikatów, lecz pochodzą ze struktury certyfikatu lub kontekstu, w którym jest on używany. Wyliczenie typu certyfikatu obejmuje zestaw wstępnie zdefiniowanych wartości opisujących często używane aplikacje certyfikatów. Programiści mogą rozszerzyć zakres wartości typu certyfikatu o typy specyficzne dla aplikacji opisujące certyfikaty niestandardowe lub certyfikaty o unikalnych właściwościach zabezpieczeń.

Typy certyfikatów są używane przede wszystkim do wdrażania zasad kontroli dostępu, gdzie dostęp do funkcji aplikacji zależy od typu certyfikatu przedstawionego przez osobę wysyłającą prośbę.

Właściwości
kCertType_AccessToken

certyfikat tokena dostępu do Weave,

kCertType_AppDefinedBase

Typy certyfikatów specyficzne dla aplikacji powinny mieć wartość >= tę wartość.

kCertType_CA

certyfikat CA.

kCertType_Device

certyfikat urządzenia Weave,

kCertType_FirmwareSigning

certyfikat podpisywania oprogramowania Weave,

kCertType_General

Certyfikat jest ogólny lub nieokreślony.

kCertType_Max

Typy certyfikatów nie mogą być większe niż ta wartość.

kCertType_NotSpecified

Typ certyfikatu nie został określony.

kCertType_ServiceEndpoint

Certyfikat punktu końcowego usługi Weave.

@40

 @40

Identyfikuje źródło hasła używanego w protokole uwierzytelniania na podstawie hasła (np.

Weave PASE)

@41

 @41
Właściwości
kWeaveAuthModeCategory_AppDefinedBase

Wartość podstawowa dla kategorii uwierzytelniania zdefiniowanych przez aplikację.

kWeaveAuthModeCategory_CASE

Element równorzędny uwierzytelniony przy użyciu protokołu Weave CASE.

kWeaveAuthModeCategory_General

Element równorzędny uwierzytelniony za pomocą jednego z kilku ogólnych mechanizmów.

kWeaveAuthModeCategory_GroupKey

Połączenie równorzędne zostało uwierzytelnione przy użyciu udostępnionego klucza grupy.

kWeaveAuthModeCategory_PASE

Element równorzędny uwierzytelniony za pomocą protokołu Weave PASE.

kWeaveAuthModeCategory_TAKE

Element równorzędny uwierzytelniony przy użyciu protokołu Weave Take.

kWeaveAuthMode_CASE_AccessToken

Połączenie równorzędne uwierzytelnione za pomocą CASE z certyfikatem tokena dostępu Weave.

kWeaveAuthMode_CASE_AnyCert

Połączenie równorzędne uwierzytelnione za pomocą CASE z dowolnym certyfikatem lub certyfikatem nieznanego typu.

kWeaveAuthMode_CASE_Device

Połączenie równorzędne uwierzytelnione za pomocą CASE z certyfikatem urządzenia Weave.

kWeaveAuthMode_CASE_GeneralCert

Połączenie równorzędne uwierzytelnione za pomocą modelu CASE przy użyciu certyfikatu ogólnego lub nieokreślonego.

kWeaveAuthMode_CASE_ServiceEndPoint

Połączenie równorzędne uwierzytelnione za pomocą CASE przy użyciu certyfikatu punktu końcowego usługi Weave.

kWeaveAuthMode_NotSpecified

Nie określono trybu uwierzytelniania.

kWeaveAuthMode_PASE_PairingCode

Połączenie równorzędne uwierzytelnione za pomocą PASE za pomocą kodu parowania urządzenia.

kWeaveAuthMode_TAKE_IdentificationKey

Element równorzędny uwierzytelniony za pomocą narzędzia Takeout z użyciem klucza identyfikacyjnego tokena.

kWeaveAuthMode_Unauthenticated

Element równorzędny nie jest uwierzytelniony.

@42

 @42
Właściwości
kFabricSecretScope_All

Wszystkie urządzenia mogą mieć odpowiedni obiekt tajny tkaniny.

@43

 @43
Właściwości
kTestKey_AES128CTRSHA1_DataKeyByte

Wartość bajtowa tworząca klucz szyfrowania, który jest używany tylko do testów.

kTestKey_AES128CTRSHA1_IntegrityKeyByte

Wartość bajtów tworząca klucz integralności, który jest używany tylko do testów.

@44

 @44

Rozmiar różnicy klucza aplikacji do szyfrowania wiadomości Weave.

@45

 @45

@53

 @53

@54

 @54
Właściwości
kWeavePeerDescription_MaxLength

Maksymalna długość ciągu znaków (w tym znaku NUL) zwróconego przez funkcję WeaveMessageLayer::GetPeerDescription().

@55

 @55

Definicje związane z nagłówkiem zakodowanej wiadomości Weave.

Właściwości
kWeaveHeaderFlag_DestNodeId

Wskazuje, że identyfikator węzła docelowego znajduje się w nagłówku wiadomości Weave.

kWeaveHeaderFlag_MsgCounterSyncReq

Wskazuje, że nadawca prosi o synchronizację licznika wiadomości.

kWeaveHeaderFlag_SourceNodeId

Wskazuje, że źródłowy identyfikator węzła znajduje się w nagłówku wiadomości Weave.

kWeaveHeaderFlag_TunneledData

Wskazuje, że ładunek wiadomości Weave to tunelowany pakiet IP.

@56

 @56

Definicje pól bitowych dla identyfikatorów IEEE EUI-64.

Właściwości
kEUI64_IG_Group

Wartość bitowa pojedynczego użytkownika/grupy wskazująca identyfikator UEI-64 adresu grupy.

kEUI64_IG_Individual

Wartość bitowa osoby/grupy wskazująca identyfikator pojedynczego adresu EUI-64.

kEUI64_IG_Mask

Maska bitowa bitu indywidualnego/grupy (I/G) w identyfikatorze EUI-64.

Wartość 0 oznacza, że identyfikator jest indywidualnym adresem. Wartość 1 oznacza, że identyfikator jest adresem grupy.

kEUI64_UL_Local

Uniwersalna/lokalna wartość bitowa wskazująca lokalnie administrowany identyfikator EUI-64.

kEUI64_UL_Mask

Maska bitowa bitu uniwersalnego/lokalnego (U/L) w identyfikatorze EUI-64.

Wartość 0 oznacza, że identyfikator jest administrowany globalnie (globalnie). Wartość 1 oznacza, że identyfikator jest administrowany lokalnie.

kEUI64_UL_Unversal

Uniwersalna/lokalna wartość bitowa wskazująca uniwersalny identyfikator EUI-64.

@57

 @57

Specjalne zakresy identyfikatorów węzłów Weave.

Właściwości
kMaxAlwaysLocalWeaveNodeId

Identyfikatory węzłów splotowych mniejsze lub równe tej wartości są uznawane za lokalne ze względu na wygodę testowania.

WeaveEncryptionType

 WeaveEncryptionType

Typy szyfrowania wiadomości Weave.

Właściwości
kWeaveEncryptionType_AES128CTRSHA1

Wiadomość szyfrowana przy użyciu szyfrowania AES-128-CTR z zachowaniem integralności wiadomości HMAC-SHA-1.

kWeaveEncryptionType_None

Wiadomość niezaszyfrowana.

WeaveExchangeFlags

 WeaveExchangeFlags

Bity flagi nagłówka Weave Exchange.

Właściwości
kWeaveExchangeFlag_AckId

Ustaw, kiedy bieżąca wiadomość jest potwierdzeniem otrzymanej wcześniej wiadomości.

kWeaveExchangeFlag_Initiator

Ustaw czas wysłania bieżącej wiadomości przez inicjatora giełdy.

kWeaveExchangeFlag_NeedsAck

Ustaw, kiedy bieżąca wiadomość wymaga potwierdzenia od adresata.

WeaveExchangeVersion

 WeaveExchangeVersion

Wersja nagłówka Weave Exchange.

WeaveMessageFlags

 WeaveMessageFlags

Flagi powiązane z przychodzącymi lub wychodzącymi wiadomościami Weave.

Zdefiniowane w tym miejscu wartości służą do użycia w polu WeaveMessageInfo.Flags.

Właściwości
kWeaveMessageFlag_DefaultMulticastSourceAddress

Wskazuje, że podczas wysyłania wiadomości multiemisji IPv6 należy używać domyślnego adresu źródłowego IPv6.

kWeaveMessageFlag_DelaySend

Wskazuje, że wysłanie wiadomości musi zostać opóźnione.

kWeaveMessageFlag_DestNodeId

Wskazuje, że identyfikator węzła docelowego znajduje się w nagłówku wiadomości Weave.

kWeaveMessageFlag_DuplicateMessage

Wskazuje, że wiadomość jest duplikatem wiadomości odebranej wcześniej.

kWeaveMessageFlag_FromInitiator

Wskazuje, że źródłem wiadomości jest inicjator wymiany Weave.

kWeaveMessageFlag_MessageEncoded

Wskazuje, że wiadomość Weave jest już zakodowana.

kWeaveMessageFlag_MsgCounterSyncReq

Wskazuje, że nadawca prosi o synchronizację licznika wiadomości peera.

kWeaveMessageFlag_MulticastFromLinkLocal

Wycofano alias dla: kWeaveMessageFlag_DefaultMulticastSourceAddress.

kWeaveMessageFlag_PeerGroupMsgIdNotSynchronized

Wskazuje, że licznik wiadomości klucza grupy równorzędnego nie jest synchronizowany.

kWeaveMessageFlag_PeerRequestedAck

Wskazuje, że nadawca wiadomości poprosił o potwierdzenie.

kWeaveMessageFlag_RetainBuffer

Wskazuje, że po wysłaniu nie należy zwolnić bufora wiadomości.

kWeaveMessageFlag_ReuseMessageId

Wskazuje, że należy ponownie użyć istniejącego identyfikatora wiadomości.

kWeaveMessageFlag_ReuseSourceId

Wskazuje, że należy ponownie użyć istniejącego identyfikatora węzła źródłowego.

kWeaveMessageFlag_SourceNodeId

Wskazuje, że źródłowy identyfikator węzła znajduje się w nagłówku wiadomości Weave.

kWeaveMessageFlag_TunneledData

Wskazuje, że ładunek wiadomości Weave to tunelowany pakiet IP.

kWeaveMessageFlag_ViaEphemeralUDPPort

Wskazuje, że wiadomość jest wysyłana/odbierana przez lokalny efemeryczny port UDP.

WeaveMessageVersion

 WeaveMessageVersion

Wersja formatu wiadomości Weave.

Weave wybierze odpowiednią wersję wiadomości na podstawie formatu ramki wymaganego w wiadomości Weave. Domyślnie wersja wiadomości to kWeaveMessageVersion_V1. Jeśli na przykład używasz usługi Weave Reliable Messaging, wersja aplikacji to kWeaveMessageVersion_V2.

Właściwości
kWeaveMessageVersion_Unspecified

Nieokreślona wersja wiadomości.

kWeaveMessageVersion_V1

Format nagłówka wiadomości w wersji 1.

kWeaveMessageVersion_V2

Format nagłówka wiadomości w wersji V2.

WeaveSubnetId

 WeaveSubnetId

Weave ma zarezerwowane numery podsieci dla wyróżniających się interfejsów sieciowych na typowych urządzeniach.

Te liczby są przypisane tutaj do stałych symbolicznych. Te numery podsieci są używane przez Weave do konfigurowania adresów ULA IPv6 w odpowiednich interfejsach.

Właściwości
kWeaveSubnetId_MobileDevice

Identyfikator podsieci dla wszystkich urządzeń mobilnych.

kWeaveSubnetId_NotSpecified

Zarezerwowana jako nieokreślona lub pusta wartość.

kWeaveSubnetId_PrimaryWiFi

Numer podsieci interfejsu radiowego Wi-Fi.

kWeaveSubnetId_Service

Identyfikator podsieci punktów końcowych usługi Nest.

kWeaveSubnetId_ThreadAlarm

Numer podsieci interfejsu radiowego Thread.

kWeaveSubnetId_ThreadMesh

Identyfikator podsieci interfejsu radiowego Thread mesh.

kWeaveSubnetId_WiFiAP

Numer podsieci interfejsu lokalnego Wi-Fi AP.

WeaveVendorId

 WeaveVendorId

Definicje typów

FabricSecretRotationScheme

uint8_t FabricSecretRotationScheme

FabricSecretScope

uint8_t FabricSecretScope

Określa kategorię urządzeń, które mogą być posiadane i wykorzystywane do obiektów tajnych tkaniny.

WeaveAuthMode

uint16_t WeaveAuthMode

Określa sposób uwierzytelniania węzła równorzędnego.

WeaveAuthMode opisuje środki, za pomocą których węzeł równorzędne został lub powinien być uwierzytelniony podczas wymiany wiadomości Weave. W kontekście inicjowania aplikacje używają WeaveAuthMode do wyrażania pożądanego trybu uwierzytelniania peera w ramach wymiany. W ten sposób instruujesz warstwy zabezpieczeń i komunikatów Weave, aby osiągnęły żądany tryb lub przerwały komunikację. W kontekście odpowiadania WeaveAuthMode określa, w jaki sposób został uwierzytelniony węzeł wysyłający żądanie (peer), dzięki czemu aplikacja odpowiadająca może egzekwować kontrolę dostępu na podstawie tych informacji.

Wartość WeaveAuthMode przypisana do przychodzącej wiadomości Weave jest związana z charakterem klucza użytego do jej zaszyfrowania. WeaveAuthMode wykorzystuje mechanizm, za pomocą którego utworzono klucz, oraz kryteria używane do weryfikacji tożsamości osób komunikujących się w momencie ustanowienia klucza.

WeaveAuthMode zawiera zestaw wstępnie zdefiniowanych wartości opisujących typowe tryby uwierzytelniania. Mechanizmy te są podzielone według klucza umowy (CASE, PASE, GroupKey itd.). Deweloperzy mogą rozszerzyć WeaveAuthMode, definiując tryby aplikacji, które mogą dołączać do konkretnych kluczy szyfrowania.

WeaveEncryptionKey

union nl::Weave::WeaveEncryptionKey WeaveEncryptionKey

WeaveEncryptionType

enum nl::Weave::WeaveEncryptionType WeaveEncryptionType

Typy szyfrowania wiadomości Weave.

WeaveExchangeFlags

enum nl::Weave::WeaveExchangeFlags WeaveExchangeFlags

Bity flagi nagłówka Weave Exchange.

WeaveExchangeVersion

enum nl::Weave::WeaveExchangeVersion WeaveExchangeVersion

Wersja nagłówka Weave Exchange.

WeaveMessageFlags

enum nl::Weave::WeaveMessageFlags WeaveMessageFlags

Flagi powiązane z przychodzącymi lub wychodzącymi wiadomościami Weave.

Zdefiniowane w tym miejscu wartości służą do użycia w polu WeaveMessageInfo.Flags.

WeaveMessageHeader

struct WeaveMessageInfo WeaveMessageHeader

WeaveMessageVersion

enum nl::Weave::WeaveMessageVersion WeaveMessageVersion

Wersja formatu wiadomości Weave.

Weave wybierze odpowiednią wersję wiadomości na podstawie formatu ramki wymaganego w wiadomości Weave. Domyślnie wersja wiadomości to kWeaveMessageVersion_V1. Jeśli na przykład używasz usługi Weave Reliable Messaging, wersja aplikacji to kWeaveMessageVersion_V2.

WeaveSubnetId

enum nl::Weave::WeaveSubnetId WeaveSubnetId

Weave ma zarezerwowane numery podsieci dla wyróżniających się interfejsów sieciowych na typowych urządzeniach.

Te liczby są przypisane tutaj do stałych symbolicznych. Te numery podsieci są używane przez Weave do konfigurowania adresów ULA IPv6 w odpowiednich interfejsach.

Zmienne

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 }

Dywersyfikator kluczy używany do tworzenia kluczy szyfrowania wiadomości Weave.

Ta wartość reprezentuje pierwsze 4 bajty hasła SHA-1 hasła „Nest Weave Message EK and AK”.

Funkcje

AppGroupMasterKeyIdFromAuthMode

uint8_t AppGroupMasterKeyIdFromAuthMode(
  WeaveAuthMode authMode
)

Zwraca identyfikator klucza głównego grupy aplikacji powiązany z trybem uwierzytelniania.

CASEAuthMode

WeaveAuthMode CASEAuthMode(
  uint8_t certType
)

Zwraca tryb uwierzytelniania CASE dla danego typu certyfikatu.

CertTypeFromAuthMode

uint8_t CertTypeFromAuthMode(
  WeaveAuthMode authMode
)

Zwraca źródło hasła dla danego trybu uwierzytelniania.

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
)

Biorąc pod uwagę błąd Weave, zwraca zrozumiały dla człowieka ciąg C z końcówką wartości NULL, zawierający opis błędu.

Szczegóły
Parametry
[in] buf
Bufor, w którym zostanie umieszczony ciąg błędu.
[in] bufSize
Rozmiar dostarczonego bufora w bajtach.
[in] err
Błąd, który chcesz opisać.
Zwroty
true Jeśli ciąg opisu został zapisany w podanym buforze.
Zwroty
false Jeśli podany błąd nie jest błędem Weave.

GenerateWeaveNodeId

NL_DLL_EXPORT WEAVE_ERROR GenerateWeaveNodeId(
  uint64_t & nodeId
)

Wygeneruj losowy identyfikator węzła Weave.

Ta funkcja generuje 64-bitowy, lokalnie unikalny identyfikator węzła Weave. Ta funkcja wykorzystuje mocne kryptograficznie źródło danych losowych, aby zagwarantować unikalność wygenerowanej wartości. Pamiętaj, że bit 57 wygenerowanego identyfikatora węzła Weave ma wartość 1, co oznacza, że wygenerowany identyfikator węzła Weave jest unikalny lokalnie (nie globalnie).

Szczegóły
Parametry
nodeId
Odwołanie do 64-bitowego identyfikatora węzła Weave.
Zwracane wartości
WEAVE_NO_ERROR
Identyfikator węzła Weave został wygenerowany.

GetFibonacciForIndex

uint32_t GetFibonacciForIndex(
  uint32_t index
)

Ta funkcja generuje 32-bitową liczbę Fibonacci dla danego indeksu 32-bitowego.

Szczegóły
Zwroty
32-bitowa niepodpisana liczba fibonacci.

GetMessageName

const char * GetMessageName(
  uint32_t profileId,
  uint8_t msgType
)

GetProfileName

const char * GetProfileName(
  uint32_t profileId
)

GetRandU16

uint16_t GetRandU16(
  void
)

Ta funkcja generuje 16-bitową nieoznaczoną liczbę losową.

Szczegóły
Zwroty
16-bitowa losowa liczba całkowita bez znaku.

GetRandU32

uint32_t GetRandU32(
  void
)

Ta funkcja generuje 32-bitową nieoznaczoną liczbę losową.

Szczegóły
Zwroty
32-bitowa losowa liczba całkowita bez znaku.

GetRandU64

uint64_t GetRandU64(
  void
)

Ta funkcja generuje 64-bitową nieoznaczoną liczbę losową.

Szczegóły
Zwroty
64-bitowa losowa liczba całkowita bez znaku.

GetRandU8

uint8_t GetRandU8(
  void
)

Ta funkcja generuje 8-bitową nieoznaczoną liczbę losową.

Szczegóły
Zwroty
8-bitowa losowa liczba całkowita bez znaku.

GetVendorName

const char * GetVendorName(
  uint16_t vendorId
)

GroupKeyAuthMode

WeaveAuthMode GroupKeyAuthMode(
  uint32_t keyId
)

Zwraca odpowiedni tryb uwierzytelniania klucza grupy dla podanego identyfikatora klucza.

Identyfikator interfejsu IPv6 do węzła Weave

uint64_t IPv6InterfaceIdToWeaveNodeId(
  uint64_t interfaceId
)

Konwertuj identyfikator interfejsu adresu IPv6 na identyfikator węzła Weave.

Ze względu na wygodę testowania identyfikatory węzłów mniejsze lub równe #kMaxNeverLocalWeaveNodeId (65535) są uznawane za „lokalne”, a ich bit uniwersalny/lokalny ma wartość 0. Upraszcza to reprezentację ciągu znaków odpowiadającego adresom IPv6. Na przykład ULA dla identyfikatora węzła 10 będzie mieć postać FD00:0:1:1::A.

Szczegóły
Parametry
[in] interfaceId
64-bitowy identyfikator interfejsu.
Zwroty
zmapowany 64-bitowy identyfikator węzła Weave.

IsCASEAuthMode

bool IsCASEAuthMode(
  WeaveAuthMode authMode
)

Wartość to „prawda”, jeśli tryb uwierzytelniania bazuje na protokole Weave CASE.

IsCertAuthMode

bool IsCertAuthMode(
  WeaveAuthMode authMode
)

Wartość to „prawda”, jeśli tryb uwierzytelniania opiera się na posiadaniu klucza prywatnego powiązanego z certyfikatem.

IsGroupKeyAuthMode

bool IsGroupKeyAuthMode(
  WeaveAuthMode authMode
)

Wartość to „prawda”, jeśli tryb uwierzytelniania bazuje na posiadaniu udostępnionego klucza grupy.

IsPASEAuthMode

bool IsPASEAuthMode(
  WeaveAuthMode authMode
)

Wartość to „prawda”, jeśli tryb uwierzytelniania bazuje na protokole Weave PASE.

IsPasswordAuthMode

bool IsPasswordAuthMode(
  WeaveAuthMode authMode
)

Prawda, jeśli tryb uwierzytelniania wymaga posiadania udostępnionego hasła.

IsTAKEAuthMode

bool IsTAKEAuthMode(
  WeaveAuthMode authMode
)

Wartość to „prawda”, jeśli tryb uwierzytelniania jest oparty na protokole Weave Take.

IsWRMPControlMessage

bool IsWRMPControlMessage(
  uint32_t profileId,
  uint8_t msgType
)

J2N_ByteArray

WEAVE_ERROR J2N_ByteArray(
  JNIEnv *env,
  jbyteArray inArray,
  uint8_t *& outArray,
  uint32_t & outArrayLen
)

J2N_ByteArrayFieldVal

WEAVE_ERROR J2N_ByteArrayFieldVal(
  JNIEnv *env,
  jobject obj,
  const char *fieldName,
  uint8_t *& outArray,
  uint32_t & outArrayLen
)

J2N_ByteArrayInPlace

WEAVE_ERROR J2N_ByteArrayInPlace(
  JNIEnv *env,
  jbyteArray inArray,
  uint8_t *outArray,
  uint32_t maxArrayLen
)

J2N_EnumFieldVal

WEAVE_ERROR J2N_EnumFieldVal(
  JNIEnv *env,
  jobject obj,
  const char *fieldName,
  const char *fieldType,
  int & outVal
)

J2N_EnumVal

WEAVE_ERROR J2N_EnumVal(
  JNIEnv *env,
  jobject enumObj,
  int & outVal
)

J2N_IntFieldVal

WEAVE_ERROR J2N_IntFieldVal(
  JNIEnv *env,
  jobject obj,
  const char *fieldName,
  jint & outVal
)

J2N_LongFieldVal

WEAVE_ERROR J2N_LongFieldVal(
  JNIEnv *env,
  jobject obj,
  const char *fieldName,
  jlong & outVal
)

J2N_ShortFieldVal

WEAVE_ERROR J2N_ShortFieldVal(
  JNIEnv *env,
  jobject obj,
  const char *fieldName,
  jshort & outVal
)

J2N_StringFieldVal

WEAVE_ERROR J2N_StringFieldVal(
  JNIEnv *env,
  jobject obj,
  const char *fieldName,
  char *& outVal
)

MakeClassName

WEAVE_ERROR MakeClassName(
  const char *basePackageName,
  const char *relativeClassName,
  char *& classNameBuf
)

PASEAuthMode

WeaveAuthMode PASEAuthMode(
  uint8_t pwSource
)

Zwraca odpowiedni tryb uwierzytelniania PASE dla danego źródła hasła.

PasswordSourceFromAuthMode

uint8_t PasswordSourceFromAuthMode(
  WeaveAuthMode authMode
)

Zwraca źródło hasła dla danego trybu uwierzytelniania.

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
)

Identyfikatorglobalny identyfikator WeaveFabricIdToIPv6

uint64_t WeaveFabricIdToIPv6GlobalId(
  uint64_t fabricId
)

Konwertuj identyfikator tkaniny Weave na globalny identyfikator ULA IPv6.

Globalny identyfikator adresu IP sieci ULA to 40 dolnych 40 bitów 64-bitowego identyfikatora tkaniny sieci.

Szczegóły
Parametry
[in] fabricId
Identyfikator tkaniny Weave.
Zwroty
zmapowany identyfikator globalny IPv6.

WeaveMessageSourceToStr

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

WYCOFANE Użyj funkcji WeaveMessageLayer::GetPeerDescription().

WeaveNodeAddrToStr

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

WYCOFANE Użyj funkcji WeaveMessageLayer::GetPeerDescription().

Identyfikator interfejsu WeaveNodeIdToIPv6

uint64_t WeaveNodeIdToIPv6InterfaceId(
  uint64_t nodeId
)

Konwertuj identyfikator węzła Weave na identyfikator interfejsu adresu IPv6.

Identyfikatory węzłów splotowych to uniwersalne/lokalne identyfikatory EUI-64, które zgodnie z RFC-3513 są konwertowane na identyfikatory interfejsu przez odwrócenie bitu uniwersalnego/lokalnego (bit 57 zlicza LSB jako 0).

Ze względu na wygodę testowania identyfikatory węzłów mniejsze lub równe #kMaxNeverLocalWeaveNodeId (65535) są uznawane za „lokalne”, a ich bit uniwersalny/lokalny ma wartość 0. Upraszcza to reprezentację ciągu znaków odpowiadającego adresom IPv6. Na przykład ULA dla identyfikatora węzła 10 będzie mieć postać FD00:0:1:1::A.

Szczegóły
Parametry
[in] nodeId
64-bitowy identyfikator węzła Weave.
Zwroty
identyfikator interfejsu IPv6.

maksimum

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

min

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