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 Identyfikuje źródło hasła używanego w protokole uwierzytelniania na podstawie hasła (np. |
@41{
|
enum | typ wyliczeniowy |
@42{
|
enum | typ wyliczeniowy |
@43{
|
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{
|
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 dla 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ącymi lub wychodzącymi wiadomościami Weave. |
WeaveMessageVersion{
|
enum | typ wyliczeniowy Wersja formatu wiadomości Weave. |
WeaveSubnetId{
|
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
|
typedefuint8_t
|
FabricSecretScope
|
nl::Weave::FabricSecretScopeuint8_t
Określa kategorię urządzeń, które mogą być posiadane i wykorzystywane do obiektów tajnych tkaniny. |
WeaveAuthMode
|
typedefuint16_t
Określa 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ącymi lub wychodzącymi wiadomościami Weave. |
WeaveMessageHeader
|
typedefstruct WeaveMessageInfo
|
WeaveMessageVersion
|
typedefenum nl::Weave::WeaveMessageVersion
Wersja formatu wiadomości Weave. |
WeaveSubnetId
|
typedefenum 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
WYCOFANE Użyj funkcji WeaveMessageLayer::GetPeerDescription().
|
WeaveNodeAddrToStr(char *buf, uint32_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, WeaveConnection *con)
|
void
WYCOFANE Użyj funkcji WeaveMessageLayer::GetPeerDescription().
|
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:: |
Przechwytuje zamierzony cel komunikacji Weave i powiązane informacje o konfiguracji. |
nl:: |
Interfejs do zarządzania licznikiem w postaci liczby całkowitej. |
nl:: |
Ta klasa reprezentuje trwającą rozmowę (ExchangeContext) między co najmniej 2 węzłami. |
nl:: |
Ta abstrakcyjna klasa delegata komunikuje zmiany stanu tkaniny. |
nl:: |
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:: |
|
nl:: |
Klasa zarządzania monotonicznie rosnącym licznikiem jako wartością całkowitą. |
nl:: |
Klasa zarządzania licznikiem w postaci liczby całkowitej, która ma być wykorzystywana po ponownym uruchomieniu. |
nl:: |
Definicja klasy połączenia Weave. |
nl:: |
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:: |
|
nl:: |
Określa profil Weave i typ komunikatu konkretnej wiadomości Weave w obrębie ExchangeContext. |
nl:: |
Ta klasa służy do zarządzania kontekstem ExchangeContext z innymi węzłami Weave. |
nl:: |
Deklaracja Forward 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 kluczy szyfrowania wiadomości Weave. |
nl:: |
|
nl:: |
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:: |
Wspólna klasa bazowa do implementowania obiektów delegata serwera Weave. |
nl:: |
Zawiera informacje o kluczu sesji Weave. |
nl:: |
Przekazuje stan komunikacji wymagany do wysyłania/odbierania wiadomości z innego węzła. |
Konstrukcja |
|
---|---|
nl:: |
|
nl:: |
Konfiguracja WRMP. |
nl:: |
Informacje o wiadomości Weave, która jest w trakcie wysyłania lub odbierania. |
Związki |
|
---|---|
nl:: |
Przestrzenie nazw |
|
---|---|
nl:: |
Ta przestrzeń nazw obejmuje wszystkie interfejsy weave na potrzeby pracy z notacją abstrakcyjną składni (ASN.1). |
nl:: |
Ta przestrzeń nazw obejmuje wszystkie interfejsy Weave do wspólnej obsługi kryptograficznej. |
nl:: |
|
nl:: |
|
nl:: |
Ta przestrzeń nazw zapewnia funkcje, które umożliwiają: |
nl:: |
Ta przestrzeń nazw obejmuje wszystkie interfejsy Weave do obsługi logowania współdzielonego. |
nl:: |
|
nl:: |
Ta przestrzeń nazw obejmuje wszystkie interfejsy w profilach Weave dla Weave, zarówno Common, jak i Nest Labs specyficzne dla dostawców. |
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
Definicje związane z pracą z danymi kodowanymi w formacie TLV Weave. |
nl:: |
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_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 |
|
||||||
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 |
|
||
Zwracane wartości |
|
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 |
|
||
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 |
|
||
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 |
|
||
Zwroty |
identyfikator interfejsu IPv6.
|
maksimum
const _T & max( const _T & a, const _T & b )
min
const _T & min( const _T & a, const _T & b )