nl:: Weave
Podsumowanie
Wyliczenia |
|
---|---|
@21{
|
enum | typ wyliczeniowy |
@36
|
enum | typ wyliczeniowy |
@37
|
enum | typ wyliczeniowy |
@38{
|
enum | typ wyliczeniowy |
@39{
|
enum | typ wyliczeniowy Określa cel lub zastosowanie certyfikatu. |
@40
|
enum | typ wyliczeniowy Określa źródło hasła używanego w protokole uwierzytelniania opartym na haśle (np. |
@41{
|
enum | typ wyliczeniowy |
@42{
|
enum | typ wyliczeniowy |
@43{
|
enum | typ wyliczeniowy |
@44
|
enum | typ wyliczeniowy Rozmiar dywersyfikatora klucza aplikacji szyfrowania wiadomości Weave. |
@45
|
enum | typ wyliczeniowy |
@53
|
enum | typ wyliczeniowy |
@54{
|
enum | typ wyliczeniowy |
@55{
|
enum | typ wyliczeniowy Definicje związane z nagłówkiem zakodowanej wiadomości weave. |
@56{
|
enum | typ wyliczeniowy Definicje pól bitowych identyfikatorów IEEE EUI-64. |
@57{
|
enum | typ wyliczeniowy Specjalne zakresy identyfikatorów węzłów Weave. |
WeaveEncryptionType{
|
enum | typ wyliczeniowy Typy szyfrowania wiadomości Weave. |
WeaveExchangeFlags{
|
enum | typ wyliczeniowy Bity flagi nagłówka Weave Exchange. |
WeaveExchangeVersion
|
enum | typ wyliczeniowy Wersja nagłówka Weave Exchange. |
WeaveMessageFlags{
|
enum | typ wyliczeniowy Flagi powiązane z przychodzącą lub wychodzącą wiadomością Weave. |
WeaveMessageVersion{
|
enum | typ wyliczeniowy Wersja formatu Weave Message. |
WeaveSubnetId{
|
enum | typ wyliczeniowy Weave ma zarezerwowane numery podsieci dla różnych interfejsów sieciowych na typowych urządzeniach. |
WeaveVendorId
|
enum | typ wyliczeniowy |
Definiuje typ |
|
---|---|
FabricSecretRotationScheme
|
typedefuint8_t
|
FabricSecretScope
|
nl::Weave::FabricSecretScopeuint8_t
Określa kategorię urządzeń, które mogą zawierać i używać obiektów tajnych z tkaniny. |
WeaveAuthMode
|
typedefuint16_t
Identyfikuje sposób uwierzytelniania węzła równorzędnego. |
WeaveEncryptionKey
|
typedef |
WeaveEncryptionType
|
typedefenum nl::Weave::WeaveEncryptionType
Typy szyfrowania wiadomości Weave. |
WeaveExchangeFlags
|
typedefenum nl::Weave::WeaveExchangeFlags
Bity flagi nagłówka Weave Exchange. |
WeaveExchangeVersion
|
typedefenum nl::Weave::WeaveExchangeVersion
Wersja nagłówka Weave Exchange. |
WeaveMessageFlags
|
typedefenum nl::Weave::WeaveMessageFlags
Flagi powiązane z przychodzącą lub wychodzącą wiadomością Weave. |
WeaveMessageHeader
|
typedefstruct WeaveMessageInfo
|
WeaveMessageVersion
|
typedefenum nl::Weave::WeaveMessageVersion
Wersja formatu Weave Message. |
WeaveSubnetId
|
typedefenum nl::Weave::WeaveSubnetId
Weave ma zarezerwowane numery podsieci dla różnych 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
Zróżnicowanie kluczy używane do pobierania kluczy szyfrowania wiadomości Weave.
|
Funkcje |
|
---|---|
AppGroupMasterKeyIdFromAuthMode(WeaveAuthMode authMode)
|
uint8_t
Zwraca identyfikator głównego klucza grupy aplikacji powiązany z trybem uwierzytelniania.
|
CASEAuthMode(uint8_t certType)
|
WeaveAuthMode
Zwraca odpowiedni 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
Z powodu błędu Weave zwraca zrozumiały dla człowieka ciąg znaków C z zakończeniem NULL i opisujący błąd.
|
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 32-bitowego indeksu.
|
GetMessageName(uint32_t profileId, uint8_t msgType)
|
const char *
|
GetProfileName(uint32_t profileId)
|
const char *
|
GetRandU16(void)
|
uint16_t
Ta funkcja generuje 16-bitową liczbę losową bez znaku.
|
GetRandU32(void)
|
uint32_t
Ta funkcja generuje 32-bitową liczbę losową bez znaku.
|
GetRandU64(void)
|
uint64_t
Ta funkcja generuje 64-bitową liczbę losową bez znaku.
|
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
Przekonwertuj identyfikator interfejsu adresu IPv6 na identyfikator węzła Weave.
|
IsCASEAuthMode(WeaveAuthMode authMode)
|
bool
Prawda, jeśli tryb uwierzytelniania jest oparty na protokole Weave CASE.
|
IsCertAuthMode(WeaveAuthMode authMode)
|
bool
Prawda, jeśli tryb uwierzytelniania opiera się na posiadaniu klucza prywatnego powiązanego z certyfikatem.
|
IsGroupKeyAuthMode(WeaveAuthMode authMode)
|
bool
Prawda, jeśli tryb uwierzytelniania opiera się na posiadaniu wspólnego klucza grupy.
|
IsPASEAuthMode(WeaveAuthMode authMode)
|
bool
Prawda, jeśli tryb uwierzytelniania jest oparty na protokole Weave PASE.
|
IsPasswordAuthMode(WeaveAuthMode authMode)
|
bool
Prawda, jeśli tryb uwierzytelniania opiera się na posiadaniu wspólnego hasła.
|
IsTAKEAuthMode(WeaveAuthMode authMode)
|
bool
Prawda, jeśli tryb uwierzytelniania opiera się 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
WYCOFANY Użyj w zamian metody WeaveMessageLayer::GetPeerDescription().
|
WeaveNodeAddrToStr(char *buf, uint32_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, WeaveConnection *con)
|
void
WYCOFANY Użyj w zamian metody WeaveMessageLayer::GetPeerDescription().
|
WeaveNodeIdToIPv6InterfaceId(uint64_t nodeId)
|
uint64_t
Konwertowanie identyfikatora 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:: |
Przechwytuje zamierzony cel komunikacji Weave i powiązane informacje o konfiguracji. |
nl:: |
Interfejs do zarządzania licznikiem jako wartością całkowitą. |
nl:: |
Ta klasa reprezentuje trwającą rozmowę (ExchangeContext) między 2 lub większą liczbą węzłów. |
nl:: |
Ta abstrakcyjna klasa delegata komunikuje zmiany stanu tkanin. |
nl:: |
Służy do zarządzania listą portów hosta, która jest zwartą, zakodowaną binarnie listą krotek identyfikatorów hostów i portów powiązaną z Katalogiem usług Weave. |
nl:: |
|
nl:: |
Klasa do zarządzania monotonicznie rosnącym licznikiem jako liczbą całkowitą. |
nl:: |
Klasa do zarządzania licznikiem jako wartością całkowitą, która ma być trwała po ponownym uruchomieniu. |
nl:: |
Definicja klasy połączenia Weave. |
nl:: |
Definicja klasy WeaveConnectionTunnel, która zarządza parą punktów TCPEndPoint z pierwotnymi elementami WeaveConnections, które zostały połączone, a między nimi WeaveMessageLayer przekazuje wszystkie dane i zamknięcia połączenia. |
nl:: |
|
nl:: |
Określa profil Weave i typ wiadomości konkretnej wiadomości Weave w ExchangeContext. |
nl:: |
Ta klasa służy do zarządzania ExchangeContexts z innymi węzłami Weave. |
nl:: |
Wychodząca deklaracja stanu WeaveFabricState. |
nl:: |
Definicja identyfikatora klucza Weave. |
nl:: |
Definicja klasy WeaveMessageLayer, która zarządza komunikacją z innymi węzłami Weave. |
nl:: |
Zawiera informacje o kluczu szyfrowania wiadomości Weave. |
nl:: |
Pamięć podręczna na potrzeby kluczy szyfrowania wiadomości Weave. |
nl:: |
|
nl:: |
Typowy obiekt podstawowy do implementacji niezamawianych użytkowników profilu Weave (serwerów), który zawiera weryfikację uwierzytelnionych żądań i wysyłanie raportów o stanie oraz udostępnia wspólną pamięć masową członków danych na potrzeby stanu tkanin i menedżera giełdy. |
nl:: |
Wspólna klasa podstawowa do implementacji obiektów delegowania serwera Weave. |
nl:: |
Zawiera informacje o kluczu sesji Weave. |
nl:: |
Przekazuje stan komunikacji potrzebny do wysyłania/odbierania wiadomości z innym węzłem. |
Struktura |
|
---|---|
nl:: |
|
nl:: |
Konfiguracja WRMP. |
nl:: |
Informacje o wysyłanej lub odbieranej wiadomości Weave. |
Związki |
|
---|---|
nl:: |
Przestrzenie nazw |
|
---|---|
nl:: |
Ta przestrzeń nazw obejmuje wszystkie interfejsy Weave umożliwiające pracę z abstrakcyjnym zapisem składni abstrakcyjnej One (ASN.1). |
nl:: |
Ta przestrzeń nazw obejmuje wszystkie interfejsy Weave na potrzeby wspólnej obsługi kryptograficznej. |
nl:: |
|
nl:: |
|
nl:: |
Ta przestrzeń nazw oferuje funkcje: |
nl:: |
Ta przestrzeń nazw obejmuje wszystkie interfejsy Weave na potrzeby obsługi wspólnego logowania. |
nl:: |
|
nl:: |
Ta przestrzeń nazw obejmuje wszystkie interfejsy w profilach Weave for Weave – zarówno w interfejsach Common, jak i Nest Labs, w zależności od dostawcy. |
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
Definicje dotyczące pracy z danymi zakodowanymi w formacie TLV Weave. |
nl:: |
Ta przestrzeń nazw zawiera interfejsy Weave Address (Adres) i Routing Module (przenośny moduł do konfigurowania adresów IP i tras Weave). |
Wyliczenia
@21
@21
Właściwości | |
---|---|
kFlagAckPending
|
Oczekiwana odpowiedź na wysyłana wiadomość. |
kFlagAutoReleaseConnection
|
Automatycznie zwolnij klucz szyfrowania wiadomości po zwolnieniu kontekstu giełdy. |
kFlagAutoReleaseKey
|
Jeśli jest ustawione, oznacza, że w kontekście tej wymiany została odebrana co najmniej 1 wiadomość z grupy porównawczej. |
kFlagAutoRequestAck
|
Ten kontekst był powiązany z elementem WeaveConnection. |
kFlagConnectionClosed
|
Ten kontekst jest inicjatorem wymiany. |
kFlagDropAck
|
Po ustawieniu tej funkcji automatycznie żądaj potwierdzenia za każdym razem, gdy wiadomość jest wysyłana przez UDP. |
kFlagMsgRcvdFromPeer
|
Gdy jest ustawione, oznacza, że co najmniej 1 wiadomość odebrana w ramach tej wymiany wymaga potwierdzenia. Ta flaga jest odczytywana przez aplikację w celu określenia, czy musi zażądać potwierdzenia dla wiadomości, którą ma wysłać. Ta flaga może też pokazywać, czy aplikacja równorzędna używa WRMP. |
kFlagPeerRequestedAck
|
Gdy jest ustawione, oznacza, że istnieje potwierdzenie, które oczekuje na odesłanie. |
kFlagResponseExpected
|
Tylko do użytku wewnętrznego i debugowania: po ustawieniu warstwa wymiany nie wysyła potwierdzenia. |
kFlagUseEphemeralUDPPort
|
Automatycznie zwolnij powiązany element WeaveConnection po uwolnieniu kontekstu giełdy. |
@36
@36
@37
@37
@38
@38
Właściwości | |
---|---|
kFabricIdDefaultForTest
|
Domyślny identyfikator tkaniny, którego należy używać tylko do testowania. |
@39
@39
Określa cel lub zastosowanie certyfikatu.
Typ certyfikatu to etykieta opisująca przeznaczenie lub zastosowanie certyfikatu. Typy certyfikatów nie są przenoszone jako atrybuty odpowiednich certyfikatów, ale są określane na podstawie struktury certyfikatu lub kontekstu, w którym jest używany. Wyliczenie typu certyfikatu obejmuje zestaw wstępnie zdefiniowanych wartości opisujących często używane aplikacje certyfikatów. Programiści mogą też rozszerzyć zakres wartości typów certyfikatów o typy aplikacji, które opisują certyfikaty niestandardowe lub certyfikaty z unikalnymi właściwościami zabezpieczeń.
Typy certyfikatów są używane głównie do implementacji zasad kontroli dostępu, gdzie na dostęp do funkcji aplikacji wpływa typ certyfikatu przedstawianego przez osobę wysyłającą prośbę.
Właściwości | |
---|---|
kCertType_AccessToken
|
Certyfikat tokena dostępu Weave. |
kCertType_AppDefinedBase
|
Typy certyfikatów specyficznych dla aplikacji powinny mieć wartości >= tę wartość. |
kCertType_CA
|
certyfikat CA. |
kCertType_Device
|
Certyfikat urządzenia Weave. |
kCertType_FirmwareSigning
|
Certyfikat podpisywania oprogramowania układowego Weave. |
kCertType_General
|
Certyfikat ma charakter ogólny lub niespecjalny. |
kCertType_Max
|
Typy certyfikatów nie powinny przekraczać tej wartości. |
kCertType_NotSpecified
|
Typ certyfikatu nie został określony. |
kCertType_ServiceEndpoint
|
Certyfikat punktu końcowego usługi Weave. |
@40
@40
Określa źródło hasła używanego w protokole uwierzytelniania opartym na haśle (np.
Weave (Na żywo)
@41
@41
Właściwości | |
---|---|
kWeaveAuthModeCategory_AppDefinedBase
|
Wartość podstawowa dla kategorii uwierzytelniania zdefiniowanych przez aplikację. |
kWeaveAuthModeCategory_CASE
|
Uwierzytelnianie równorzędne przy użyciu protokołu CASE Weave. |
kWeaveAuthModeCategory_General
|
Uwierzytelnianie równorzędne przy użyciu jednego z zestawów ogólnych mechanizmów. |
kWeaveAuthModeCategory_GroupKey
|
Uwierzytelnianie równorzędne przy użyciu udostępnionego klucza grupy. |
kWeaveAuthModeCategory_PASE
|
Uwierzytelnianie równorzędne przy użyciu protokołu Weave PASE. |
kWeaveAuthModeCategory_TAKE
|
Uwierzytelnianie równorzędne przy użyciu protokołu Weave take. |
kWeaveAuthMode_CASE_AccessToken
|
Uwierzytelnianie równorzędne przez użytkownika CASE z certyfikatem tokena dostępu Weave. |
kWeaveAuthMode_CASE_AnyCert
|
Uwierzytelnianie równorzędne przy użyciu typu CASE dowolnego certyfikatu lub certyfikatu nieznanego typu. |
kWeaveAuthMode_CASE_Device
|
Uwierzytelnianie równorzędne przez użytkownika CASE z certyfikatem urządzenia Weave. |
kWeaveAuthMode_CASE_GeneralCert
|
Uwierzytelnianie równorzędne z użyciem CASE z ogólnym lub nieokreślonym typem certyfikatu. |
kWeaveAuthMode_CASE_ServiceEndPoint
|
Uwierzytelnianie równorzędne przy użyciu zgłoszenia CASE z certyfikatem punktu końcowego usługi Weave. |
kWeaveAuthMode_NotSpecified
|
Nie określono trybu uwierzytelniania. |
kWeaveAuthMode_PASE_PairingCode
|
Uwierzytelnianie równorzędne przy użyciu PASE z kodem parowania urządzenia. |
kWeaveAuthMode_TAKE_IdentificationKey
|
peer uwierzytelniony za pomocą funkcji Take oraz klucza identyfikującego token. |
kWeaveAuthMode_Unauthenticated
|
Połączenie równorzędne nie zostało uwierzytelnione. |
@42
@42
Właściwości | |
---|---|
kFabricSecretScope_All
|
Wszystkie urządzenia mogą mieć swój tajny klucz powodowany przez tkaninę. |
@43
@43
Właściwości | |
---|---|
kTestKey_AES128CTRSHA1_DataKeyByte
|
Wartość bajtów, która tworzy klucz szyfrowania, który jest używany tylko do testowania. |
kTestKey_AES128CTRSHA1_IntegrityKeyByte
|
Wartość bajtów, która tworzy klucz integralności, który jest używany tylko do testowania. |
@44
@44
Rozmiar dywersyfikatora klucza aplikacji szyfrowania wiadomości Weave.
@45
@45
@53
@53
@54
@54
Właściwości | |
---|---|
kWeavePeerDescription_MaxLength
|
Maksymalna długość ciągu znaków (łącznie ze znakiem NUL) zwracana 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 identyfikator węzła źródłowego znajduje się w nagłówku wiadomości Weave. |
kWeaveHeaderFlag_TunneledData
|
Wskazuje, że ładunek komunikatu Weave jest tunelowanym pakietem IP. |
@56
@56
Definicje pól bitowych identyfikatorów IEEE EUI-64.
Właściwości | |
---|---|
kEUI64_IG_Group
|
Wartość bitowa osoby/grupy wskazująca identyfikator EUI-64 adresu grupy. |
kEUI64_IG_Individual
|
Wartość bitowa osoby/grupy wskazująca identyfikator EUI-64 pojedynczego adresu. |
kEUI64_IG_Mask
|
Maska bitowa dla 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 dla bitu uniwersalnego (U/L) w identyfikatorze EUI-64. Wartość 0 oznacza, że identyfikator jest administrowany uniwersalnie (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
|
Dla wygody sprawdzania identyfikatorów węzłów tkanych lub mniejszych od tej wartości są uznawane za lokalne. |
WeaveEncryptionType
WeaveEncryptionType
Typy szyfrowania wiadomości Weave.
Właściwości | |
---|---|
kWeaveEncryptionType_AES128CTRSHA1
|
Wiadomość szyfrowana przy użyciu szyfrowania AES-128-CTR i integralności wiadomości za pomocą algorytmu 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 wcześniej odebranej wiadomości. |
kWeaveExchangeFlag_Initiator
|
Ustaw, kiedy bieżąca wiadomość ma zostać wysłana przez inicjatora wymiany. |
kWeaveExchangeFlag_NeedsAck
|
Ustaw, kiedy bieżąca wiadomość ma prosić o potwierdzenie od odbiorcy. |
WeaveExchangeVersion
WeaveExchangeVersion
Wersja nagłówka Weave Exchange.
WeaveMessageFlags
WeaveMessageFlags
Flagi powiązane z przychodzącą lub wychodzącą wiadomością Weave.
Zdefiniowane tutaj wartości są przeznaczone do użycia w polu WeaveMessageInfo.Flags.
Właściwości | |
---|---|
kWeaveMessageFlag_DefaultMulticastSourceAddress
|
Wskazuje, że podczas wysyłania komunikatów grupowych IPv6 powinien być używany wybór domyślnego adresu źródłowego IPv6. |
kWeaveMessageFlag_DelaySend
|
Oznacza, że wysłanie wiadomości musi się opóźnić. |
kWeaveMessageFlag_DestNodeId
|
Wskazuje, że identyfikator węzła docelowego znajduje się w nagłówku wiadomości Weave. |
kWeaveMessageFlag_DuplicateMessage
|
Wskazuje, że wiadomość jest duplikatem wcześniej odebranej wiadomości. |
kWeaveMessageFlag_FromInitiator
|
Wskazuje, że źródło wiadomości jest inicjatorem 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
|
Wycofany alias dla |
kWeaveMessageFlag_PeerGroupMsgIdNotSynchronized
|
Wskazuje, że licznik wiadomości z klucza grupowego grupy porównawczej nie jest zsynchronizowany. |
kWeaveMessageFlag_PeerRequestedAck
|
Wskazuje, że nadawca wiadomości poprosił o potwierdzenie. |
kWeaveMessageFlag_RetainBuffer
|
Wskazuje, że po wysłaniu bufor wiadomości nie powinien zostać zwolniony. |
kWeaveMessageFlag_ReuseMessageId
|
Wskazuje, że trzeba ponownie użyć obecnego identyfikatora wiadomości. |
kWeaveMessageFlag_ReuseSourceId
|
Wskazuje, że trzeba ponownie użyć istniejącego identyfikatora węzła źródłowego. |
kWeaveMessageFlag_SourceNodeId
|
Wskazuje, że identyfikator węzła źródłowego znajduje się w nagłówku wiadomości Weave. |
kWeaveMessageFlag_TunneledData
|
Wskazuje, że ładunek komunikatu Weave jest tunelowanym pakietem IP. |
kWeaveMessageFlag_ViaEphemeralUDPPort
|
Wskazuje, że wiadomość jest wysyłana/odbierana przez lokalny efemeryczny port UDP. |
WeaveMessageVersion
WeaveMessageVersion
Wersja formatu Weave Message.
Weave wybierze odpowiednią wersję wiadomości na podstawie formatu ramki wymaganego dla wiadomości Weave. Domyślnie wersja wiadomości to kWeaveMessageVersion_V1. Jeśli na przykład korzystasz z usługi Weave Reliable Messaging, wersja 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 2. |
WeaveSubnetId
WeaveSubnetId
Weave ma zarezerwowane numery podsieci dla różnych interfejsów sieciowych na typowych urządzeniach.
Te liczby są przypisywane do stałych symboli. 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 wartość nieokreślona lub pusta. |
kWeaveSubnetId_PrimaryWiFi
|
Numer podsieci interfejsu radia Wi-Fi. |
kWeaveSubnetId_Service
|
Identyfikator podsieci dla punktów końcowych usługi Nest. |
kWeaveSubnetId_ThreadAlarm
|
Numer podsieci interfejsu alarmu Thread. |
kWeaveSubnetId_ThreadMesh
|
Identyfikator podsieci interfejsu radiowego Thread mesh. |
kWeaveSubnetId_WiFiAP
|
Numer podsieci lokalnego punktu dostępu Wi-Fi. |
WeaveVendorId
WeaveVendorId
Definiuje typ
FabricSecretRotationScheme
uint8_t FabricSecretRotationScheme
FabricSecretScope
uint8_t FabricSecretScope
Określa kategorię urządzeń, które mogą zawierać i używać obiektów tajnych z tkaniny.
WeaveAuthMode
uint16_t WeaveAuthMode
Identyfikuje sposób uwierzytelniania węzła równorzędnego.
WeaveAuthMode opisuje metody, za pomocą których węzeł równorzędny został lub powinien zostać uwierzytelniony podczas wymiany wiadomości weave. W kontekście inicjującym aplikacje używają WeaveAuthMode do wyrażania pożądanego trybu uwierzytelniania równorzędnego dla wymiany, co instruuje warstwy zabezpieczeń i komunikatów Weave, aby osiągnąć żądany tryb lub zakończyć komunikację. W kontekście odpowiadającym interfejs WeaveAuthMode identyfikuje sposób uwierzytelnienia węzła wysyłającego (peera), co pozwala aplikacji odpowiadającej na egzekwowanie kontroli dostępu na podstawie tych informacji.
Wartość WeaveAuthMode przypisana do przychodzącej wiadomości Weave jest związana z charakterem klucza, który został użyty do zaszyfrowania tej wiadomości. Narzędzie WeaveAuthMode wywodzi się z mechanizmu, za pomocą którego został ustanowiony klucz, oraz kryteriów używanych do weryfikacji tożsamości współpracujących stron w momencie utworzenia klucza.
WeaveAuthMode zawiera zestaw wstępnie zdefiniowanych wartości opisujących typowe tryby uwierzytelniania. Informacje te są podzielone według mechanizmu uzgadniania kluczy (CASE, PASE, GroupKey itp.). Deweloperzy mogą rozszerzyć tryb WeaveAuthMode, definiując tryby aplikacji, które można dołączać do określonych 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ącą lub wychodzącą wiadomością Weave.
Zdefiniowane tutaj wartości są przeznaczone do użycia w polu WeaveMessageInfo.Flags.
WeaveMessageHeader
struct WeaveMessageInfo WeaveMessageHeader
WeaveMessageVersion
enum nl::Weave::WeaveMessageVersion WeaveMessageVersion
Wersja formatu Weave Message.
Weave wybierze odpowiednią wersję wiadomości na podstawie formatu ramki wymaganego dla wiadomości Weave. Domyślnie wersja wiadomości to kWeaveMessageVersion_V1. Jeśli na przykład korzystasz z usługi Weave Reliable Messaging, wersja to kWeaveMessageVersion_V2.
WeaveSubnetId
enum nl::Weave::WeaveSubnetId WeaveSubnetId
Weave ma zarezerwowane numery podsieci dla różnych interfejsów sieciowych na typowych urządzeniach.
Te liczby są przypisywane do stałych symboli. 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 }
Zróżnicowanie kluczy używane do pobierania kluczy szyfrowania wiadomości Weave.
Ta wartość reprezentuje pierwsze 4 bajty HASH SHA-1 „Nest Weave Message EK i AK” do wyrażenia.
Funkcje
AppGroupMasterKeyIdFromAuthMode
uint8_t AppGroupMasterKeyIdFromAuthMode( WeaveAuthMode authMode )
Zwraca identyfikator głównego klucza grupy aplikacji powiązany z trybem uwierzytelniania.
CASEAuthMode
WeaveAuthMode CASEAuthMode( uint8_t certType )
Zwraca odpowiedni 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 )
Z powodu błędu Weave zwraca zrozumiały dla człowieka ciąg znaków C z zakończeniem NULL i opisujący błąd.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwroty |
true: jeśli ciąg opisu został zapisany w podanym buforze.
|
||||||
Zwroty |
false Jeśli podany błąd nie był 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 silne kryptograficznie losowe źródło danych, aby zagwarantować niepowtarzalność wygenerowanej wartości. Bit 57 wygenerowanego identyfikatora węzła Weave ma wartość 1, co wskazuje, że wygenerowany identyfikator węzła Weave jest unikalny lokalnie (nie globalnie).
Szczegóły | |||
---|---|---|---|
Parametry |
|
||
Zwracane wartości |
|
GetFibonacciForIndex
uint32_t GetFibonacciForIndex( uint32_t index )
Ta funkcja generuje 32-bitową liczbę Fibonacci dla danego 32-bitowego indeksu.
Szczegóły | |
---|---|
Zwroty |
32-bitowa nieoznaczona 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ą liczbę losową bez znaku.
Szczegóły | |
---|---|
Zwroty |
16-bitowa losowa liczba całkowita bez znaku.
|
GetRandU32
uint32_t GetRandU32( void )
Ta funkcja generuje 32-bitową liczbę losową bez znaku.
Szczegóły | |
---|---|
Zwroty |
32-bitowa nieoznaczona losowa liczba całkowita.
|
GetRandU64
uint64_t GetRandU64( void )
Ta funkcja generuje 64-bitową liczbę losową bez znaku.
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.
IdentyfikatorInterfaceIdToWeaveNodeId IPv6
uint64_t IPv6InterfaceIdToWeaveNodeId( uint64_t interfaceId )
Przekonwertuj identyfikator interfejsu adresu IPv6 na identyfikator węzła Weave.
Aby ułatwić testowanie, identyfikatory węzłów mniejsze lub równe #kMaxZawszeLocalWeaveNodeId (65535) są uważane za „lokalne”, a ich bit uniwersalny/lokalny ma wartość 0. Upraszcza to reprezentację odpowiednich adresów IPv6 w postaci ciągu. Na przykład identyfikator ULA dla identyfikatora węzła 10
miałby postać FD00:0
:1:1::A.
Szczegóły | |||
---|---|---|---|
Parametry |
|
||
Zwroty |
zmapowany 64-bitowy identyfikator węzła Weave.
|
IsCASEAuthMode
bool IsCASEAuthMode( WeaveAuthMode authMode )
Prawda, jeśli tryb uwierzytelniania jest oparty na protokole Weave CASE.
IsCertAuthMode
bool IsCertAuthMode( WeaveAuthMode authMode )
Prawda, jeśli tryb uwierzytelniania opiera się na posiadaniu klucza prywatnego powiązanego z certyfikatem.
IsGroupKeyAuthMode
bool IsGroupKeyAuthMode( WeaveAuthMode authMode )
Prawda, jeśli tryb uwierzytelniania opiera się na posiadaniu wspólnego klucza grupy.
IsPASEAuthMode
bool IsPASEAuthMode( WeaveAuthMode authMode )
Prawda, jeśli tryb uwierzytelniania jest oparty na protokole Weave PASE.
IsPasswordAuthMode
bool IsPasswordAuthMode( WeaveAuthMode authMode )
Prawda, jeśli tryb uwierzytelniania opiera się na posiadaniu wspólnego hasła.
IsTAKEAuthMode
bool IsTAKEAuthMode( WeaveAuthMode authMode )
Prawda, jeśli tryb uwierzytelniania opiera się 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 )
Identyfikator_globalny_IDFabryku_firmy Weave
uint64_t WeaveFabricIdToIPv6GlobalId( uint64_t fabricId )
Konwertuj identyfikator tkaniny Weave na globalny identyfikator ULA IPv6.
Globalny identyfikator ULA adresu tkanin to dolne 40 bitów 64-bitowego identyfikatora tkaniny.
Szczegóły | |||
---|---|---|---|
Parametry |
|
||
Zwroty |
zmapowany globalny identyfikator IPv6.
|
WeaveMessageSourceToStr
void WeaveMessageSourceToStr( char *buf, uint32_t bufSize, const WeaveMessageInfo *msgInfo )
WYCOFANY Użyj w zamian metody WeaveMessageLayer::GetPeerDescription().
WeaveNodeAddrToStr
void WeaveNodeAddrToStr( char *buf, uint32_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, WeaveConnection *con )
WYCOFANY Użyj w zamian metody WeaveMessageLayer::GetPeerDescription().
WeaveNodeIdToIPv6InterfaceId
uint64_t WeaveNodeIdToIPv6InterfaceId( uint64_t nodeId )
Konwertowanie identyfikatora węzła Weave na identyfikator interfejsu adresu IPv6.
Identyfikatory węzłów Weave to uniwersalne/lokalne kody 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).
Aby ułatwić testowanie, identyfikatory węzłów mniejsze lub równe #kMaxZawszeLocalWeaveNodeId (65535) są uważane za „lokalne”, a ich bit uniwersalny/lokalny ma wartość 0. Upraszcza to reprezentację odpowiednich adresów IPv6 w postaci ciągu. Na przykład identyfikator ULA dla identyfikatora węzła 10
miałby postać FD00:0
:1:1::A.
Szczegóły | |||
---|---|---|---|
Parametry |
|
||
Zwroty |
identyfikator interfejsu IPv6.
|
maksimum
const _T & max( const _T & a, const _T & b )
min
const _T & min( const _T & a, const _T & b )