nl::Weave

סיכום

ערכים של ספירה

@21{
  kFlagConnectionClosed = 0x0002,
  kFlagAutoRequestAck = 0x0004,
  kFlagDropAck = 0x0008,
  kFlagResponseExpected = 0x0010,
  kFlagAckPending = 0x0020,
  kFlagPeerRequestedAck = 0x0040,
  kFlagMsgRcvdFromPeer = 0x0080,
  kFlagAutoReleaseKey = 0x0100,
  kFlagAutoReleaseConnection = 0x0200,
  kFlagUseEphemeralUDPPort = 0x0400
}
טיפוסים בני מנייה (enum)
@36 טיפוסים בני מנייה (enum)
@37 טיפוסים בני מנייה (enum)
@38{
  kFabricIdDefaultForTest = 1ULL
}
טיפוסים בני מנייה (enum)
@39{
  kCertType_NotSpecified = 0x00,
  kCertType_General = 0x01,
  kCertType_Device = 0x02,
  kCertType_ServiceEndpoint = 0x03,
  kCertType_FirmwareSigning = 0x04,
  kCertType_AccessToken = 0x05,
  kCertType_CA = 0x06,
  kCertType_AppDefinedBase = 0x7F,
  kCertType_Max = 0xFF
}
טיפוסים בני מנייה (enum)
משמש לזיהוי המטרה או היישום של האישור.
@40 טיפוסים בני מנייה (enum)
זיהוי המקור של הסיסמה שנעשה בה שימוש בפרוטוקול אימות מבוסס סיסמה (למשל,
@41{
  kWeaveAuthMode_NotSpecified = 0x0000,
  kWeaveAuthModeCategory_General = 0x0000,
  kWeaveAuthModeCategory_PASE = 0x1000,
  kWeaveAuthModeCategory_CASE = 0x2000,
  kWeaveAuthModeCategory_TAKE = 0x3000,
  kWeaveAuthModeCategory_GroupKey = 0x4000,
  kWeaveAuthModeCategory_AppDefinedBase = 0xC000,
  kWeaveAuthMode_Unauthenticated = kWeaveAuthModeCategory_General | 0x001,
  kWeaveAuthMode_PASE_PairingCode = kWeaveAuthModeCategory_PASE | kPasswordSource_PairingCode,
  kWeaveAuthMode_CASE_AnyCert = kWeaveAuthModeCategory_CASE | kCertType_NotSpecified,
  kWeaveAuthMode_CASE_GeneralCert = kWeaveAuthModeCategory_CASE | kCertType_General,
  kWeaveAuthMode_CASE_Device = kWeaveAuthModeCategory_CASE | kCertType_Device,
  kWeaveAuthMode_CASE_ServiceEndPoint = kWeaveAuthModeCategory_CASE | kCertType_ServiceEndpoint,
  kWeaveAuthMode_CASE_AccessToken = kWeaveAuthModeCategory_CASE | kCertType_AccessToken,
  kWeaveAuthMode_TAKE_IdentificationKey = kWeaveAuthModeCategory_TAKE | 0x001
}
טיפוסים בני מנייה (enum)
@42{
  kFabricSecretScope_All = 0x00
}
טיפוסים בני מנייה (enum)
@43{
  kTestKey_AES128CTRSHA1_DataKeyByte = 0xAB,
  kTestKey_AES128CTRSHA1_IntegrityKeyByte = 0xBA
}
טיפוסים בני מנייה (enum)
@44 טיפוסים בני מנייה (enum)
שזירה של גודל משתנה מפתח האפליקציה להצפנת הודעות.
@45 טיפוסים בני מנייה (enum)
@53 טיפוסים בני מנייה (enum)
@54{
  kWeavePeerDescription_MaxLength = 100
}
טיפוסים בני מנייה (enum)
@55{
  kWeaveHeaderFlag_DestNodeId = 0x0100,
  kWeaveHeaderFlag_SourceNodeId = 0x0200,
  kWeaveHeaderFlag_TunneledData = 0x0400,
  kWeaveHeaderFlag_MsgCounterSyncReq = 0x0800
}
טיפוסים בני מנייה (enum)
הגדרות שקשורות לכותרת של הודעת 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)
הגדרות של שדות ביט למזהי IEEE EUI-64.
@57{
  kMaxAlwaysLocalWeaveNodeId = 0x000000000000FFFFULL
}
טיפוסים בני מנייה (enum)
טווחים מיוחדים של מזהים של צומתי Weave.
WeaveEncryptionType{
  kWeaveEncryptionType_None = 0,
  kWeaveEncryptionType_AES128CTRSHA1 = 1
}
טיפוסים בני מנייה (enum)
סוגי ההצפנה של הודעת Weave.
WeaveExchangeFlags{
  kWeaveExchangeFlag_Initiator = 0x1,
  kWeaveExchangeFlag_AckId = 0x2,
  kWeaveExchangeFlag_NeedsAck = 0x4
}
טיפוסים בני מנייה (enum)
ביטים של דגל הכותרת של Weave Exchange.
WeaveExchangeVersion טיפוסים בני מנייה (enum)
גרסת הכותרת של 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)
סימונים המשויכים להודעת Weave נכנסת או יוצאת.
WeaveMessageVersion{
  kWeaveMessageVersion_Unspecified = 0,
  kWeaveMessageVersion_V1 = 1,
  kWeaveMessageVersion_V2 = 2
}
טיפוסים בני מנייה (enum)
גרסת הפורמט של Weave Message.
WeaveSubnetId{
  kWeaveSubnetId_NotSpecified = 0,
  kWeaveSubnetId_PrimaryWiFi = 1,
  kWeaveSubnetId_ThreadAlarm = 2,
  kWeaveSubnetId_WiFiAP = 3,
  kWeaveSubnetId_MobileDevice = 4,
  kWeaveSubnetId_Service = 5,
  kWeaveSubnetId_ThreadMesh = 6
}
טיפוסים בני מנייה (enum)
ל-Weave יש כמה מספרי משנה שמורים של ממשקי רשת נפרדים במכשירים אופייניים.
WeaveVendorId טיפוסים בני מנייה (enum)

Typedefs

FabricSecretRotationScheme typedef
uint8_t
FabricSecretScope nl::Weave::FabricSecretScope
uint8_t
מזהה את קטגוריית המכשירים שיכולים להיות בעלי סוד בדים ולהשתמש בהם.
WeaveAuthMode typedef
uint16_t
מזהה את אופן האימות של צומת של אפליקציה להשוואה.
WeaveEncryptionKey typedef
WeaveEncryptionType typedef
enum nl::Weave::WeaveEncryptionType
סוגי ההצפנה של הודעת Weave.
WeaveExchangeFlags typedef
enum nl::Weave::WeaveExchangeFlags
ביטים של דגל הכותרת של Weave Exchange.
WeaveExchangeVersion typedef
enum nl::Weave::WeaveExchangeVersion
גרסת הכותרת של Weave Exchange.
WeaveMessageFlags typedef
enum nl::Weave::WeaveMessageFlags
סימונים המשויכים להודעת Weave נכנסת או יוצאת.
WeaveMessageHeader typedef
WeaveMessageVersion typedef
enum nl::Weave::WeaveMessageVersion
גרסת הפורמט של Weave Message.
WeaveSubnetId typedef
enum nl::Weave::WeaveSubnetId
ל-Weave יש כמה מספרי משנה שמורים של ממשקי רשת ייחודיים במכשירים אופייניים.

משתנים

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
מגף מפתחות המשמש לנגזרת מפתחות הצפנה של הודעות Weave.

פונקציות

AppGroupMasterKeyIdFromAuthMode(WeaveAuthMode authMode)
uint8_t
הפונקציה מחזירה את מזהה מפתח המאסטר של קבוצת האפליקציות שמשויך למצב האימות.
CASEAuthMode(uint8_t certType)
WeaveAuthMode
מחזירה מצב אימות CASE תואם לסוג אישור נתון.
CertTypeFromAuthMode(WeaveAuthMode authMode)
uint8_t
מחזירה את מקור הסיסמה עבור מצב האימות הנתון.
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
בהינתן שגיאת Weave, הפונקציה מחזירה מחרוזת C עם סיום קריא לאנשים (NULL), שמתארת את השגיאה.
GenerateWeaveNodeId(uint64_t & nodeId)
NL_DLL_EXPORT WEAVE_ERROR
יצירת מזהה צומת אקראי של Weave.
GetFibonacciForIndex(uint32_t index)
uint32_t
הפונקציה הזו יוצרת מספר פיבונאצ'י של 32 ביט עבור אינדקס נתון של 32 ביט.
GetMessageName(uint32_t profileId, uint8_t msgType)
const char *
GetProfileName(uint32_t profileId)
const char *
GetRandU16(void)
uint16_t
הפונקציה הזו יוצרת מספר אקראי לא חתום באורך 16 ביט.
GetRandU32(void)
uint32_t
הפונקציה הזו יוצרת מספר אקראי לא חתום בגודל 32 סיביות.
GetRandU64(void)
uint64_t
הפונקציה הזו יוצרת מספר אקראי לא חתום בגודל 64 ביט.
GetRandU8(void)
uint8_t
הפונקציה הזו יוצרת מספר אקראי לא חתום באורך 8 ביט.
GetVendorName(uint16_t vendorId)
const char *
GroupKeyAuthMode(uint32_t keyId)
WeaveAuthMode
הפונקציה מחזירה את מצב האימות של מפתח קבוצה תואם למזהה מפתח נתון.
IPv6InterfaceIdToWeaveNodeId(uint64_t interfaceId)
uint64_t
המרה של מזהה ממשק כתובות של IPv6 למזהה צומת של Weave.
IsCASEAuthMode(WeaveAuthMode authMode)
bool
הערך הוא True אם מצב האימות מבוסס על פרוטוקול Weave CASE.
IsCertAuthMode(WeaveAuthMode authMode)
bool
הערך הוא True אם מצב האימות מבוסס על החזקה של מפתח פרטי שמשויך לאישור.
IsGroupKeyAuthMode(WeaveAuthMode authMode)
bool
הערך הוא True אם מצב האימות מבוסס על החזקה של מפתח קבוצה משותף.
IsPASEAuthMode(WeaveAuthMode authMode)
bool
הערך הוא True אם מצב האימות מבוסס על פרוטוקול Weave PASE.
IsPasswordAuthMode(WeaveAuthMode authMode)
bool
הערך הוא True אם מצב האימות מבוסס על החזקה של סיסמה משותפת.
IsTAKEAuthMode(WeaveAuthMode authMode)
bool
הערך יהיה True אם מצב האימות מבוסס על פרוטוקול 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
מחזירה מצב אימות PASE תואם למקור סיסמה נתון.
PasswordSourceFromAuthMode(WeaveAuthMode authMode)
uint8_t
מחזירה את מקור הסיסמה עבור מצב האימות הנתון.
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
המרה של מזהה מבד של Weave למזהה גלובלי של IPv6 ULA.
WeaveMessageSourceToStr(char *buf, uint32_t bufSize, const WeaveMessageInfo *msgInfo)
void
הוצא משימוש צריך להשתמש בפונקציה WeaveMessageLayer::GetPeerDescription() במקום זאת.
WeaveNodeAddrToStr(char *buf, uint32_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, WeaveConnection *con)
void
הוצא משימוש צריך להשתמש בפונקציה WeaveMessageLayer::GetPeerDescription() במקום זאת.
WeaveNodeIdToIPv6InterfaceId(uint64_t nodeId)
uint64_t
המרה של מזהה צומת של Weave למזהה ממשק כתובות של IPv6.
max(const _T & a, const _T & b)
const _T &
min(const _T & a, const _T & b)
const _T &

שיעורים

nl::Weave::Binding

מתעד את היעד המיועד של תקשורת Weave ומידע על ההגדרות האישיות המשויכות.

nl::Weave::Counter

ממשק לניהול מונה כערך מספר שלם.

nl::Weave::ExchangeContext

המחלקה הזו מייצגת שיחה מתמשכת (ExchangeContext) בין שני צמתים או יותר.

nl::Weave::FabricStateDelegate

המחלקה המופשטת הזו של נציגים מתוכננת מדווחת על שינויים במצב הבד.

nl::Weave::HostPortList

לניהול ולמניפולציה של רשימת יציאות של מארחים, אוסף קומפקטי בקידוד בינארי של צמדים של מזהי מארח ויציאות שמשויכים ל-Weave Service Directory.

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

מחלקה לניהול מונה הגדלה באופן מונוטוני כערך מספר שלם.

nl::Weave::PersistedCounter

מחלקה לניהול מונה כערך מספר שלם המיועד למשך הפעלות מחדש.

nl::Weave::WeaveConnection

ההגדרה של סיווג Weave Connection.

nl::Weave::WeaveConnectionTunnel

ההגדרה של המחלקה WeaveConnectionTunnel, שמנהלת זוג נקודות TCPEndPoints המקוריות שחוברו עם WeaveConnections, וביניהן ה-WeaveMessageLayer מעביר את כל הנתונים והסגירות של החיבורים.

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

פעולה זו מציינת את פרופיל Weave ואת סוג ההודעה של הודעת Weave מסוימת בתוך ExchangeContext.

nl::Weave::WeaveExchangeManager

המחלקה הזו משמשת לניהול ExchangeContexts עם צומתי Weave אחרים.

nl::Weave::WeaveFabricState

העברת ההצהרה של WeaveFabricState.

nl::Weave::WeaveKeyId

ההגדרה של מזהה מפתח Weave.

nl::Weave::WeaveMessageLayer

ההגדרה של המחלקה WeaveMessageLayer, שמנהלת את התקשורת עם צמתים אחרים של Weave.

nl::Weave::WeaveMsgEncryptionKey

מכיל מידע על מפתח להצפנת הודעות של Weave.

nl::Weave::WeaveMsgEncryptionKeyCache

מטמון מפתחות למפתחות הצפנה של הודעות ב-Weave.

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

אובייקט בסיסי נפוץ להטמעה של משיבים (שרתים) לא רצויים של פרופיל Weave, שכולל אימות של בקשות מאומתות ושליחה של דוחות סטטוס, ומספק אחסון משותף של חבר נתונים למצב של מבדים ולמנהל בורסה.

nl::Weave::WeaveServerDelegateBase

מחלקת בסיס נפוצה להטמעת אובייקטים עם הרשאות גישה לשרת של Weave.

nl::Weave::WeaveSessionKey

מכיל מידע על מפתח סשן של Weave.

nl::Weave::WeaveSessionState

מעביר את מצב התקשורת הנדרש כדי לשלוח ולקבל הודעות עם צומת אחר.

מבנים

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

הגדרות ה-WRMP.

nl::Weave::WeaveMessageInfo

מידע על הודעת Weave שנמצאת בתהליך שליחה או קבלה.

איגודים

nl::Weave::WeaveEncryptionKey

מרחבי שמות

nl::Weave::ASN1

מרחב השמות הזה כולל את כל הממשקים ב-Weave לעבודה עם Abstract Syntax Notation One (ASN.1).

nl::Weave::Crypto

מרחב השמות הזה כולל את כל הממשקים ב-Weave לתמיכה קריפטוגרפית משותפת.

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

מרחב השמות הזה מספק פונקציות עבור:

nl::Weave::Logging

מרחב השמות הזה כולל את כל הממשקים ב-Weave לתמיכה משותפת ברישום ביומן.

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

מרחב השמות הזה כולל את כל הממשקים בפרופילים של Weave for Weave, גם בממשק Common וגם בממשקים ספציפיים לספק של Nest Labs.

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

הגדרות לעבודה עם נתונים שמקודדים בפורמט Weave TLV.

nl::Weave::Warm

מרחב השמות הזה כולל ממשקים עבור מודול הניתוב והכתובת של Weave, מודול נייד להגדרת כתובות IP ומסלולים של Weave.

ערכים של ספירה

21@

 @21
מאפיינים
kFlagAckPending

אם צפויה תשובה להודעה שנשלחת.

kFlagAutoReleaseConnection

משחררים את המפתח להצפנת הודעות באופן אוטומטי כשההקשר של ההחלפה פנוי.

kFlagAutoReleaseKey

כאשר מוגדר, פירושו שהתקבלה לפחות הודעה אחת מעמית בהקשר של Exchange זה.

kFlagAutoRequestAck

ההקשר הזה שויך ל-WeaveConnection.

kFlagConnectionClosed

ההקשר הזה הוא יוזם הבורסה.

kFlagDropAck

כשההגדרה מופעלת, מבקשים אישור באופן אוטומטי בכל פעם שהודעה נשלחת באמצעות UDP.

kFlagMsgRcvdFromPeer

כשההגדרה מוגדרת, היא מציינת שלפחות הודעה אחת שהתקבלה ב-Exchange ביקשה אישור.

הסימון הזה נקרא על ידי האפליקציה כדי לקבוע אם היא צריכה לבקש אישור להודעת התשובה שהיא עומדת לשלוח. הדגל הזה יכול גם לציין אם אפליקציה להשוואה משתמשת ב-WRMP.

kFlagPeerRequestedAck

אם השדה מוגדר, המשמעות היא שיש אישור בהמתנה לשליחה בחזרה.

kFlagResponseExpected

פנימי וניפוי באגים בלבד: לאחר ההגדרה, שכבת ה-Exchange לא שולחת אישור.

kFlagUseEphemeralUDPPort

שחרור אוטומטי של ה-WeaveConnection המשויך כשההקשר של ההחלפה פנוי.

36@

 @36

37@

 @37

38@

 @38
מאפיינים
kFabricIdDefaultForTest

מזהה בד שמוגדר כברירת מחדל, ויש להשתמש בו רק למטרות בדיקה.

@39

 @39

משמש לזיהוי המטרה או היישום של האישור.

סוג האישור הוא תווית שמתארת את המטרה או האפליקציה של האישור. סוגי אישורים לא מועברים כמאפיינים של האישורים המתאימים, אלא נגזרים ממבנה האישור ו/או מההקשר שבו נעשה בו שימוש. ספירת סוגי האישורים כוללת קבוצה של ערכים מוגדרים מראש שמתארים אפליקציות אישורים נפוצות. מפתחים יכולים גם להרחיב את טווח הערכים של סוגי האישור באמצעות סוגים ספציפיים לאפליקציה שמתארים אישורים או אישורים מותאמים אישית עם מאפייני אבטחה ייחודיים.

סוגי האישורים משמשים בעיקר ביישום מדיניות בקרת גישה. הגישה לתכונות של האפליקציה מושפעת מסוג האישור שמוצג על ידי מגיש הבקשה.

מאפיינים
kCertType_AccessToken

אישור של אסימון גישה ל-Weave.

kCertType_AppDefinedBase

לסוגי אישורים ספציפיים לאפליקציה צריך להיות ערך >= ערך זה.

kCertType_CA

אישור של רשות אישורים.

kCertType_Device

אישור של מכשיר Weave.

kCertType_FirmwareSigning

אישור לחתימת קושחה של Weave.

kCertType_General

האישור הוא מסוג כללי או לא ספציפי.

kCertType_Max

סוגי האישורים לא יכולים להיות גדולים מהערך הזה.

kCertType_NotSpecified

סוג האישור לא צוין.

kCertType_ServiceEndpoint

אישור נקודת קצה של שירות Weave.

40@

 @40

זיהוי המקור של הסיסמה שנעשה בה שימוש בפרוטוקול אימות מבוסס סיסמה (למשל,

שזירה של PASE)

41@

 @41
מאפיינים
kWeaveAuthModeCategory_AppDefinedBase

ערך בסיסי לקטגוריות אימות בהגדרת האפליקציה.

kWeaveAuthModeCategory_CASE

בוצע אימות של עמית באמצעות פרוטוקול Weave CASE.

kWeaveAuthModeCategory_General

בוצע אימות בין רשתות שכנות באמצעות אחד מתוך קבוצה של מנגנונים כלליים.

kWeaveAuthModeCategory_GroupKey

הקישור בוצע אימות באמצעות מפתח קבוצה משותף.

kWeaveAuthModeCategory_PASE

בוצע אימות של עמיתים באמצעות פרוטוקול Weave PASE.

kWeaveAuthModeCategory_TAKE

העמית בוצע אימות באמצעות פרוטוקול Weave TAKE.

kWeaveAuthMode_CASE_AccessToken

הקישור אומת באמצעות CASE עם אישור אסימון גישה של Weave.

kWeaveAuthMode_CASE_AnyCert

אפליקציה שאומתה באמצעות CASE עם אישור שרירותי או אישור מסוג לא ידוע.

kWeaveAuthMode_CASE_Device

הקישור בין האפליקציות אומת באמצעות CASE עם אישור של מכשיר Weave.

kWeaveAuthMode_CASE_GeneralCert

אפליקציה שאומתה באמצעות CASE עם סוג אישור כללי או לא ספציפי.

kWeaveAuthMode_CASE_ServiceEndPoint

הקישור אומת באמצעות CASE עם אישור נקודת קצה של שירות Weave.

kWeaveAuthMode_NotSpecified

מצב האימות לא צוין.

kWeaveAuthMode_PASE_PairingCode

הקישור בוצע אימות באמצעות PASE עם קוד התאמה של המכשיר.

kWeaveAuthMode_TAKE_IdentificationKey

הקישור בוצע אימות באמצעות TAKE באמצעות מפתח זיהוי אסימון.

kWeaveAuthMode_Unauthenticated

האפליקציה להשוואה לא אומתה.

42@

 @42
מאפיינים
kFabricSecretScope_All

לכל המכשירים יכול להיות סוד בד תואם.

43@

 @43
מאפיינים
kTestKey_AES128CTRSHA1_DataKeyByte

ערך בייט שיוצר מפתח הצפנה ומשמש רק לבדיקה.

kTestKey_AES128CTRSHA1_IntegrityKeyByte

ערך בייט שבונה מפתח תקינות שמשמש לבדיקה בלבד.

44@

 @44

שזירה של גודל משתנה מפתח האפליקציה להצפנת הודעות.

45@

 @45

53@

 @53

54@

 @54
מאפיינים
kWeavePeerDescription_MaxLength

האורך המקסימלי של מחרוזת (כולל תו NUL) שהוחזר על ידי WeaveMessageLayer::GetPeerDescription().

55@

 @55

הגדרות שקשורות לכותרת של הודעת Weave מקודדת.

מאפיינים
kWeaveHeaderFlag_DestNodeId

מציין שמזהה צומת היעד נמצא בכותרת ההודעה של Weave.

kWeaveHeaderFlag_MsgCounterSyncReq

מציין שהשולח מבקש סנכרון מונה של הודעות.

kWeaveHeaderFlag_SourceNodeId

מציין שמזהה הצומת של המקור נמצא בכותרת ההודעה של Weave.

kWeaveHeaderFlag_TunneledData

מציין שהמטען הייעודי (payload) של הודעת Weave הוא חבילת IP משורשרת.

56@

 @56

הגדרות של שדות ביט למזהי IEEE EUI-64.

מאפיינים
kEUI64_IG_Group

ערך ביט אישי/קבוצתי שמציין מזהה EUI-64 של כתובת קבוצה.

kEUI64_IG_Individual

ערך ביט אישי/קבוצתי שמציין מזהה EUI-64 של כתובת בודדת.

kEUI64_IG_Mask

Bitmask לביט של המשתמש הפרטי/קבוצה (I/G) בתוך מזהה של EUI-64.

הערך 0 מציין שהמזהה הוא כתובת בודדת. הערך 1 מציין שהמזהה הוא כתובת של קבוצה.

kEUI64_UL_Local

ערך ביט אוניברסלי/מקומי שמציין מזהה EUI-64 שמנוהל באופן מקומי.

kEUI64_UL_Mask

Bitmask לביט אוניברסלי/מקומי (U/L) בתוך מזהה EUI-64.

הערך 0 מציין שהמזהה מנוהל באופן אוניברסלי (גלובלי). הערך 1 מציין שהמזהה מנוהל באופן מקומי.

kEUI64_UL_Unversal

ערך ביט אוניברסלי/מקומי שמציין מזהה EUI-64 המנוהל באופן אוניברסלי.

57@

 @57

טווחים מיוחדים של מזהים של צומתי Weave.

מאפיינים
kMaxAlwaysLocalWeaveNodeId

מזהים של צמתים עם הטלת שפחות מהערך הזה או שווים לו, נחשבים מקומיים לצורך בדיקות נוחות.

WeaveEncryptionType

 WeaveEncryptionType

סוגי ההצפנה של הודעת Weave.

מאפיינים
kWeaveEncryptionType_AES128CTRSHA1

ההודעה הוצפנה באמצעות הצפנת AES-128-CTR עם תקינות ההודעה HMAC-SHA-1.

kWeaveEncryptionType_None

ההודעה לא מוצפנת.

WeaveExchangeFlags

 WeaveExchangeFlags

ביטים של דגל הכותרת של Weave Exchange.

מאפיינים
kWeaveExchangeFlag_AckId

הגדרה מתי ההודעה הנוכחית היא אישור להודעה שהתקבלה בעבר.

kWeaveExchangeFlag_Initiator

ההגדרה קובעת מתי ההודעה הנוכחית תישלח על ידי יוזם ההחלפה.

kWeaveExchangeFlag_NeedsAck

מגדירים מתי ההודעה הנוכחית מבקשת אישור מהנמען.

WeaveExchangeVersion

 WeaveExchangeVersion

גרסת הכותרת של Weave Exchange.

WeaveMessageFlags

 WeaveMessageFlags

סימונים המשויכים להודעת Weave נכנסת או יוצאת.

הערכים שמוגדרים כאן מיועדים לשימוש בשדה WeaveMessageInfo.Flags.

מאפיינים
kWeaveMessageFlag_DefaultMulticastSourceAddress

מציין שצריך להשתמש בברירת המחדל של כתובת המקור של IPv6 כששולחים הודעות של IPv6 עם Multicast.

kWeaveMessageFlag_DelaySend

מציין שיש עיכוב בשליחת ההודעה.

kWeaveMessageFlag_DestNodeId

מציין שמזהה צומת היעד נמצא בכותרת ההודעה של Weave.

kWeaveMessageFlag_DuplicateMessage

מציין שההודעה היא כפילות של הודעה שהתקבלה בעבר.

kWeaveMessageFlag_FromInitiator

מציין שמקור ההודעה הוא יוזם ההחלפה של Weave.

kWeaveMessageFlag_MessageEncoded

מציין שההודעה של Weave כבר מקודדת.

kWeaveMessageFlag_MsgCounterSyncReq

מציין שהשולח מבקש סנכרון מונה של הודעות מהעמיתים.

kWeaveMessageFlag_MulticastFromLinkLocal

כינוי שהוצא משימוש עבור kWeaveMessageFlag_DefaultMulticastSourceAddress.

kWeaveMessageFlag_PeerGroupMsgIdNotSynchronized

מציין שמונה ההודעות של מפתח הקבוצה של האפליקציה להשוואה לא מסונכרן.

kWeaveMessageFlag_PeerRequestedAck

מציין ששולח ההודעה ביקש אישור.

kWeaveMessageFlag_RetainBuffer

מציין שאין לפנות את מאגר הנתונים הזמני של ההודעות אחרי השליחה.

kWeaveMessageFlag_ReuseMessageId

מציין שצריך לעשות שימוש חוזר במזהה ההודעה הקיים.

kWeaveMessageFlag_ReuseSourceId

מציין שצריך לעשות שימוש חוזר במזהה של צומת המקור הקיים.

kWeaveMessageFlag_SourceNodeId

מציין שמזהה הצומת של המקור נמצא בכותרת ההודעה של Weave.

kWeaveMessageFlag_TunneledData

מציין שהמטען הייעודי (payload) של הודעת Weave הוא חבילת IP משורשרת.

kWeaveMessageFlag_ViaEphemeralUDPPort

מציין שההודעה נשלחת או מתקבלת דרך יציאת ה-UDP הזמנית המקומית.

WeaveMessageVersion

 WeaveMessageVersion

גרסת הפורמט של Weave Message.

גרסת Weave תבחר את הגרסה המתאימה של ההודעה בהתאם לפורמט המסגרת שנדרש עבור ההודעה של Weave. כברירת מחדל, גרסת ההודעה היא kWeaveMessageVersion_V1. לדוגמה, כשמשתמשים בהודעות אמינות ב-Weave, הגרסה היא kWeaveMessageVersion_V2.

מאפיינים
kWeaveMessageVersion_Unspecified

גרסת ההודעה לא צוינה.

kWeaveMessageVersion_V1

גרסה 1 של פורמט כותרת ההודעה.

kWeaveMessageVersion_V2

גרסה 2 של הפורמט של כותרת ההודעה.

WeaveSubnetId

 WeaveSubnetId

ל-Weave יש כמה מספרי משנה שמורים של ממשקי רשת נפרדים במכשירים אופייניים.

המספרים האלה מוקצים כאן לקבועים סימבוליים. מספרי רשת המשנה האלה משמשים את Weave להגדרת כתובות IPv6 ULA בממשקים מתאימים.

מאפיינים
kWeaveSubnetId_MobileDevice

מזהה רשת המשנה לכל המכשירים הניידים.

kWeaveSubnetId_NotSpecified

שמור כערך לא צוין או ערך null.

kWeaveSubnetId_PrimaryWiFi

מספר רשת המשנה של ממשק הרדיו של Wi-Fi.

kWeaveSubnetId_Service

מזהה רשת המשנה של נקודות הקצה של שירות Nest.

kWeaveSubnetId_ThreadAlarm

מספר רשת המשנה של ממשק הרדיו של התראת פרוטוקול Thread.

kWeaveSubnetId_ThreadMesh

מזהה רשת המשנה של ממשק הרדיו של רשת פרוטוקול Thread.

kWeaveSubnetId_WiFiAP

מספר רשת המשנה של ממשק ה-AP המקומי של Wi-Fi.

WeaveVendorId

 WeaveVendorId

Typedefs

FabricSecretRotationScheme

uint8_t FabricSecretRotationScheme

FabricSecretScope

uint8_t FabricSecretScope

מזהה את קטגוריית המכשירים שיכולים להיות בעלי סוד בדים ולהשתמש בהם.

WeaveAuthMode

uint16_t WeaveAuthMode

מזהה את אופן האימות של צומת של אפליקציה להשוואה.

הערך של WeaveAuthMode מתאר את האמצעים שבהם צומת של אפליקציה עבר אימות או אמור להיות מאומת במהלך חילופי הודעות של Weave. בהקשר של התחלת התהליך, אפליקציות משתמשות ב-WeaveAuthMode כדי לבטא את מצב אימות האפליקציות הרצוי לפלטפורמת Exchange, וכך להורות לשכבות האבטחה וההעברת הודעות של Weave להגיע למצב הרצוי או להיכשל בתקשורת. בהקשר של תגובה, WeaveAuthMode מזהה את האופן שבו הצומת המבקש (העמית) אומת, וכך מאפשר לאפליקציה שמגיבה לאכוף בקרות גישה על סמך המידע הזה.

ה-WeaveAuthMode שהוקצתה להודעת Weave נכנסת קשורה לאופי של המפתח ששימש להצפנת ההודעה הזו. ה-WeaveAuthMode נגזר מהמנגנון שבאמצעותו נוצר המפתח ומהקריטריונים ששימשו לאימות הזהות של הצדדים הקשורים בזמן יצירת המפתח.

WeaveAuthMode כוללת קבוצה של ערכים מוגדרים מראש שמתארים מצבי אימות נפוצים. הפרטים האלה מפורטים לפי מנגנון ההסכם המרכזי (CASE, PASE, GroupKey וכו'). מפתחים יכולים להרחיב את WeaveAuthMode על ידי הגדרת מצבים ספציפיים לאפליקציה, שבאמצעותם הם יכולים לחבר למפתחות הצפנה ספציפיים.

WeaveEncryptionKey

union nl::Weave::WeaveEncryptionKey WeaveEncryptionKey

WeaveEncryptionType

enum nl::Weave::WeaveEncryptionType WeaveEncryptionType

סוגי ההצפנה של הודעת Weave.

WeaveExchangeFlags

enum nl::Weave::WeaveExchangeFlags WeaveExchangeFlags

ביטים של דגל הכותרת של Weave Exchange.

WeaveExchangeVersion

enum nl::Weave::WeaveExchangeVersion WeaveExchangeVersion

גרסת הכותרת של Weave Exchange.

WeaveMessageFlags

enum nl::Weave::WeaveMessageFlags WeaveMessageFlags

סימונים המשויכים להודעת Weave נכנסת או יוצאת.

הערכים שמוגדרים כאן מיועדים לשימוש בשדה WeaveMessageInfo.Flags.

WeaveMessageHeader

struct WeaveMessageInfo WeaveMessageHeader

WeaveMessageVersion

enum nl::Weave::WeaveMessageVersion WeaveMessageVersion

גרסת הפורמט של Weave Message.

גרסת Weave תבחר את הגרסה המתאימה של ההודעה בהתאם לפורמט המסגרת שנדרש עבור ההודעה של Weave. כברירת מחדל, גרסת ההודעה היא kWeaveMessageVersion_V1. לדוגמה, כשמשתמשים בהודעות אמינות ב-Weave, הגרסה היא kWeaveMessageVersion_V2.

WeaveSubnetId

enum nl::Weave::WeaveSubnetId WeaveSubnetId

ל-Weave יש כמה מספרי משנה שמורים של ממשקי רשת נפרדים במכשירים אופייניים.

המספרים האלה מוקצים כאן לקבועים סימבוליים. מספרי רשת המשנה האלה משמשים את Weave להגדרת כתובות IPv6 ULA בממשקים מתאימים.

משתנים

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 }

מגף מפתחות המשמש לנגזרת מפתחות הצפנה של הודעות Weave.

הערך הזה מייצג את 4 הבייטים הראשונים של SHA-1 HASH של Nest Weave Message EK and AK לביטוי.

פונקציות

AppGroupMasterKeyIdFromAuthMode

uint8_t AppGroupMasterKeyIdFromAuthMode(
  WeaveAuthMode authMode
)

הפונקציה מחזירה את מזהה מפתח המאסטר של קבוצת האפליקציות שמשויך למצב האימות.

CASEAuthMode

WeaveAuthMode CASEAuthMode(
  uint8_t certType
)

מחזירה מצב אימות CASE תואם לסוג אישור נתון.

CertTypeFromAuthMode

uint8_t CertTypeFromAuthMode(
  WeaveAuthMode authMode
)

מחזירה את מקור הסיסמה עבור מצב האימות הנתון.

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
)

בהינתן שגיאת Weave, הפונקציה מחזירה מחרוזת C עם סיום קריא לאנשים (NULL), שמתארת את השגיאה.

פרטים
פרמטרים
[in] buf
מאגר נתונים זמני שבו תמוקם מחרוזת השגיאה.
[in] bufSize
גודל המאגר שסופק בבייטים.
[in] err
השגיאה שצריך לתאר.
החזרות
true אם מחרוזת תיאור נכתבה במאגר הנתונים הזמני.
החזרות
false אם השגיאה שסופקה לא הייתה שגיאת Weave.

GenerateWeaveNodeId

NL_DLL_EXPORT WEAVE_ERROR GenerateWeaveNodeId(
  uint64_t & nodeId
)

יצירת מזהה צומת אקראי של Weave.

הפונקציה הזו יוצרת מזהה צומת Weave ייחודי של 64 ביט. הפונקציה הזו משתמשת במקור נתונים אקראי חזק מבחינה קריפטוגרפית כדי להבטיח שהערך שנוצר יהיה ייחודי. שימו לב שביט 57 של מזהה צומת Weave שנוצר מוגדר ל-1 כדי לציין שמזהה צומת Weave שנוצר הוא ייחודי באופן מקומי (לא גלובלי) ייחודי.

פרטים
פרמטרים
nodeId
הפניה למזהה הצומת של Weave בגרסת 64 ביט.
מוחזר ערכים
WEAVE_NO_ERROR
אם מזהה הצומת של Weave נוצר בהצלחה.

GetFibonacciForIndex

uint32_t GetFibonacciForIndex(
  uint32_t index
)

הפונקציה הזו יוצרת מספר פיבונאצ'י 32-ביט עבור אינדקס נתון של 32 ביט.

פרטים
החזרות
מספר פיבונאצ'י לא חתום בגודל 32 ביט.

GetMessageName

const char * GetMessageName(
  uint32_t profileId,
  uint8_t msgType
)

GetProfileName

const char * GetProfileName(
  uint32_t profileId
)

GetRandU16

uint16_t GetRandU16(
  void
)

הפונקציה הזו יוצרת מספר אקראי לא חתום באורך 16 ביט.

פרטים
החזרות
מספר שלם אקראי לא חתום באורך 16 ביט.

GetRandU32

uint32_t GetRandU32(
  void
)

הפונקציה הזו יוצרת מספר אקראי לא חתום בגודל 32 סיביות.

פרטים
החזרות
מספר שלם אקראי לא חתום באורך 32 ביט.

GetRandU64

uint64_t GetRandU64(
  void
)

הפונקציה הזו יוצרת מספר אקראי לא חתום בגודל 64 ביט.

פרטים
החזרות
מספר שלם אקראי לא חתום באורך 64 ביט.

GetRandU8

uint8_t GetRandU8(
  void
)

הפונקציה הזו יוצרת מספר אקראי לא חתום באורך 8 ביט.

פרטים
החזרות
מספר שלם אקראי לא חתום באורך 8 ביט.

GetVendorName

const char * GetVendorName(
  uint16_t vendorId
)

GroupKeyAuthMode

WeaveAuthMode GroupKeyAuthMode(
  uint32_t keyId
)

הפונקציה מחזירה את מצב האימות של מפתח קבוצה תואם למזהה מפתח נתון.

IPv6InterfaceIdToWeaveNodeId

uint64_t IPv6InterfaceIdToWeaveNodeId(
  uint64_t interfaceId
)

המרה של מזהה ממשק כתובות של IPv6 למזהה צומת של Weave.

מטעמי נוחות לבצע בדיקה, מזהי צמתים שפחות מ- #kMaxOnlyLocalWeaveNodeId (65535) נחשבים כ'מקומיים' והביט האוניברסלי/מקומי שלהם מוגדר לאפס. התכונה הזו מפשטת את הייצוג במחרוזת של כתובות IPv6 המתאימות. לדוגמה, ערך ULA למזהה הצומת 10 יהיה FD00:0:1:1::A.

פרטים
פרמטרים
[in] interfaceId
מזהה הממשק של 64 ביט.
החזרות
המזהה הממופה של הצומת Weave של 64 ביט.

IsCASEAuthMode

bool IsCASEAuthMode(
  WeaveAuthMode authMode
)

הערך הוא True אם מצב האימות מבוסס על פרוטוקול Weave CASE.

IsCertAuthMode

bool IsCertAuthMode(
  WeaveAuthMode authMode
)

הערך הוא True אם מצב האימות מבוסס על החזקה של מפתח פרטי שמשויך לאישור.

IsGroupKeyAuthMode

bool IsGroupKeyAuthMode(
  WeaveAuthMode authMode
)

הערך הוא True אם מצב האימות מבוסס על החזקה של מפתח קבוצה משותף.

IsPASEAuthMode

bool IsPASEAuthMode(
  WeaveAuthMode authMode
)

הערך הוא True אם מצב האימות מבוסס על פרוטוקול Weave PASE.

IsPasswordAuthMode

bool IsPasswordAuthMode(
  WeaveAuthMode authMode
)

הערך הוא True אם מצב האימות מבוסס על החזקה של סיסמה משותפת.

IsTAKEAuthMode

bool IsTAKEAuthMode(
  WeaveAuthMode authMode
)

הערך יהיה True אם מצב האימות מבוסס על פרוטוקול 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
)

מחזירה מצב אימות PASE תואם למקור סיסמה נתון.

PasswordSourceFromAuthMode

uint8_t PasswordSourceFromAuthMode(
  WeaveAuthMode authMode
)

מחזירה את מקור הסיסמה עבור מצב האימות הנתון.

PrintTunnelInfo

void PrintTunnelInfo(
  const WeaveConnectionTunnel & tun,
  const TCPEndPoint & fromEndPoint,
  const TCPEndPoint & toEndPoint,
  const PacketBuffer & data
)

ToHex

char ToHex(
  const uint8_t data
)

ToHexString

void ToHexString(
  const uint8_t *data,
  size_t dataLen,
  char *& outBuf,
  size_t & outBufSize
)

WeaveEncryptionKeyToString

void WeaveEncryptionKeyToString(
  uint8_t encType,
  const WeaveEncryptionKey & key,
  char *buf,
  size_t bufSize
)

WeaveFabricIdToIPv6GlobalId

uint64_t WeaveFabricIdToIPv6GlobalId(
  uint64_t fabricId
)

המרה של מזהה מבד של Weave למזהה גלובלי של IPv6 ULA.

המזהה הגלובלי של ULA לכתובת בד הוא 40 הביטים התחתונים של מזהה הבד של 64 ביט.

פרטים
פרמטרים
[in] fabricId
מזהה הבד של Weave.
החזרות
של המזהה הגלובלי הממופה של IPv6.

WeaveMessageSourceToStr

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

הוצא משימוש צריך להשתמש בפונקציה WeaveMessageLayer::GetPeerDescription() במקום זאת.

WeaveNodeAddrToStr

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

הוצא משימוש צריך להשתמש בפונקציה WeaveMessageLayer::GetPeerDescription() במקום זאת.

WeaveNodeIdToIPv6InterfaceId

uint64_t WeaveNodeIdToIPv6InterfaceId(
  uint64_t nodeId
)

המרה של מזהה צומת של Weave למזהה ממשק כתובות של IPv6.

מזהי צומתי Weve הם מזהים אוניברסליים/מקומיים של EUI-64, אשר לפי RFC-3513 מומרים למזהי ממשק, על ידי היפוך הביט האוניברסלי/מקומי (ב-ביט 57 ה-LSB סופר כ-0).

מטעמי נוחות לבצע בדיקה, מזהי צמתים שפחות מ- #kMaxOnlyLocalWeaveNodeId (65535) נחשבים כ'מקומיים' והביט האוניברסלי/מקומי שלהם מוגדר לאפס. התכונה הזו מפשטת את הייצוג במחרוזת של כתובות IPv6 המתאימות. לדוגמה, ערך ULA למזהה הצומת 10 יהיה FD00:0:1:1::A.

פרטים
פרמטרים
[in] nodeId
מזהה הצומת של Weave בגרסת 64 ביט.
החזרות
מזהה הממשק של IPv6.

מקסימלי

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

דקה

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