nl::Weave

خلاصه

فهرست‌ها

@21{
  kFlagConnectionClosed = 0x0002,
  kFlagAutoRequestAck = 0x0004,
  kFlagDropAck = 0x0008,
  kFlagResponseExpected = 0x0010,
  kFlagAckPending = 0x0020,
  kFlagPeerRequestedAck = 0x0040,
  kFlagMsgRcvdFromPeer = 0x0080,
  kFlagAutoReleaseKey = 0x0100,
  kFlagAutoReleaseConnection = 0x0200,
  kFlagUseEphemeralUDPPort = 0x0400
}
شمارشی
@36 شمارشی
@37 شمارشی
@38{
  kFabricIdDefaultForTest = 1ULL
}
شمارشی
@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
}
شمارشی
هدف یا کاربرد گواهینامه را مشخص می‌کند.
@40 شمارشی
منبع گذرواژه مورداستفاده در پروتکل اصالت‌سنجی مبتنی بر گذرواژه را شناسایی می‌کند (مثلاً
@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
}
شمارشی
@42{
  kFabricSecretScope_All = 0x00
}
شمارشی
@43{
  kTestKey_AES128CTRSHA1_DataKeyByte = 0xAB,
  kTestKey_AES128CTRSHA1_IntegrityKeyByte = 0xBA
}
شمارشی
@44 شمارشی
اندازه تنوع‌بخش کلید برنامه رمزگذاری پیام Weave.
@45 شمارشی
@53 شمارشی
@54{
  kWeavePeerDescription_MaxLength = 100
}
شمارشی
@55{
  kWeaveHeaderFlag_DestNodeId = 0x0100,
  kWeaveHeaderFlag_SourceNodeId = 0x0200,
  kWeaveHeaderFlag_TunneledData = 0x0400,
  kWeaveHeaderFlag_MsgCounterSyncReq = 0x0800
}
شمارشی
تعاریف مربوط به سرایند پیام کدبندی‌شده 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
}
شمارشی
تعریف‌های فیلد بیت برای «شناسه‌های IEEE EUI-64».
@57{
  kMaxAlwaysLocalWeaveNodeId = 0x000000000000FFFFULL
}
شمارشی
محدوده‌های ویژه شناسه‌های گره Weave.
WeaveEncryptionType{
  kWeaveEncryptionType_None = 0,
  kWeaveEncryptionType_AES128CTRSHA1 = 1
}
شمارشی
انواع رمزگذاری برای پیام Weave.
WeaveExchangeFlags{
  kWeaveExchangeFlag_Initiator = 0x1,
  kWeaveExchangeFlag_AckId = 0x2,
  kWeaveExchangeFlag_NeedsAck = 0x4
}
شمارشی
بیت‌های پرچم سرصفحه Weave Exchange.
WeaveExchangeVersion شمارشی
نسخه سرایند 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
}
شمارشی
پرچم‌های مرتبط با پیام Weave ورودی یا خروجی.
WeaveMessageVersion{
  kWeaveMessageVersion_Unspecified = 0,
  kWeaveMessageVersion_V1 = 1,
  kWeaveMessageVersion_V2 = 2
}
شمارشی
نسخه قالب «پیام Weave».
WeaveSubnetId{
  kWeaveSubnetId_NotSpecified = 0,
  kWeaveSubnetId_PrimaryWiFi = 1,
  kWeaveSubnetId_ThreadAlarm = 2,
  kWeaveSubnetId_WiFiAP = 3,
  kWeaveSubnetId_MobileDevice = 4,
  kWeaveSubnetId_Service = 5,
  kWeaveSubnetId_ThreadMesh = 6
}
شمارشی
Weave چند شماره زیرشبکه رزروشده برای میاناهای شبکه متمایز در دستگاه‌های معمولی دارد.
WeaveVendorId شمارشی

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».
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
این تابع عدد فیبوناچی ۳۲ بیتی را برای نمایه ۳۲ بیتی داده‌شده تولید می‌کند.
GetMessageName(uint32_t profileId, uint8_t msgType)
const char *
GetProfileName(uint32_t profileId)
const char *
GetRandU16(void)
uint16_t
این تابع عدد تصادفی بدون علامت ۱۶ بیتی تولید می‌کند.
GetRandU32(void)
uint32_t
این تابع عدد تصادفی بدون علامت ۳۲ بیتی تولید می‌کند.
GetRandU64(void)
uint64_t
این تابع عدد تصادفی بدون علامت ۶۴ بیتی تولید می‌کند.
GetRandU8(void)
uint8_t
این تابع عدد تصادفی بدون علامت ۸ بیتی تولید می‌کند.
GetVendorName(uint16_t vendorId)
const char *
GroupKeyAuthMode(uint32_t keyId)
WeaveAuthMode
حالت اصالت‌سنجی کلید گروه مربوطه را برای شناسه کلید ارائه‌شده برمی‌گرداند.
IPv6InterfaceIdToWeaveNodeId(uint64_t interfaceId)
uint64_t
شناسه واسط نشانی IPv6 را به شناسه گره Weave تبدیل کنید.
IsCASEAuthMode(WeaveAuthMode authMode)
bool
اگر حالت اصالت‌سنجی براساس پروتکل Weave CASE باشد، درست است.
IsCertAuthMode(WeaveAuthMode authMode)
bool
اگر حالت اصالت‌سنجی براساس داشتن کلید خصوصی مرتبط با گواهی باشد، True است.
IsGroupKeyAuthMode(WeaveAuthMode authMode)
bool
اگر حالت اصالت‌سنجی براساس داشتن کلید گروه هم‌رسانی‌شده باشد، درست است.
IsPASEAuthMode(WeaveAuthMode authMode)
bool
اگر حالت اصالت‌سنجی براساس پروتکل Weave PASE باشد، مقدار True (درست) است.
IsPasswordAuthMode(WeaveAuthMode authMode)
bool
اگر حالت اصالت‌سنجی براساس داشتن گذرواژه مشترک باشد، True است.
IsTAKEAuthMode(WeaveAuthMode authMode)
bool
اگر حالت اصالت‌سنجی براساس پروتکل 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».

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

کلاسی برای مدیریت شمارنده یکنواخت افزایشی به‌عنوان مقدار صحیح.

nl::Weave::PersistedCounter

کلاسی برای مدیریت شمارنده به‌عنوان مقدار عدد صحیح که برای ماندگاری در راه‌اندازی‌های مجدد درنظر گرفته شده است.

nl::Weave::WeaveConnection

تعریف کلاس «اتصال Weave».

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 برای کار با «نشان‌گذاری نحوی انتزاعی یک» (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 برای نمایه‌های Weave، هم مشترک و هم مختص فروشنده Nest Labs است.

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

تعاریف کار با داده‌های کدبندی‌شده در قالب TLV در Weave.

nl::Weave::Warm

این فضای نام شامل رابط‌هایی برای «نشانی Weave» و «واحد مسیریابی» است، یک «واحد» قابل‌حمل برای پیکربندی نشانی‌های IP و «مسیرهای» Weave.

فهرست‌ها

‫@21

 @21
مشخصات
kFlagAckPending

اگر برای پیامی که درحال ارسال است پاسخی انتظار می‌رود.

kFlagAutoReleaseConnection

وقتی بافت مبادله آزاد می‌شود، کلید رمزگذاری پیام به‌طور خودکار آزاد می‌شود.

kFlagAutoReleaseKey

وقتی تنظیم شود، نشان می‌دهد که حداقل یک پیام از همتا در این زمینه تبادل دریافت شده است.

kFlagAutoRequestAck

این زمینه با WeaveConnection مرتبط است.

kFlagConnectionClosed

این بافت آغازگر تبادل است.

kFlagDropAck

وقتی تنظیم شود، هروقت پیامی ازطریق UDP ارسال شود، به‌طور خودکار درخواست تأییدیه می‌کند.

kFlagMsgRcvdFromPeer

وقتی تنظیم شود، نشان می‌دهد که حداقل یک پیام دریافت‌شده در این تبادل درخواست تأیید کرده است.

این پرچم توسط برنامه خوانده می‌شود تا تصمیم بگیرد که آیا باید برای پیام پاسخی که قرار است ارسال کند، درخواست تأییدیه کند یا نه. این پرچم همچنین می‌تواند نشان دهد که آیا همتا از WRMP استفاده می‌کند یا خیر.

kFlagPeerRequestedAck

وقتی تنظیم شود، نشان می‌دهد که تأییدیه‌ای درانتظار ارسال است.

kFlagResponseExpected

فقط داخلی و اشکال‌زدایی: وقتی تنظیم شود، لایه تبادل تأییدیه ارسال نمی‌کند.

kFlagUseEphemeralUDPPort

وقتی زمینه تبادل آزاد می‌شود، WeaveConnection مرتبط به‌طور خودکار آزاد می‌شود.

@36

 @36

@37

 @37

‫@38

 @38
مشخصات
kFabricIdDefaultForTest

شناسه پیش‌فرض Fabric که فقط باید برای اهداف آزمایشی استفاده شود.

@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

منبع گذرواژه مورداستفاده در پروتکل اصالت‌سنجی مبتنی بر گذرواژه را شناسایی می‌کند (مثلاً

Weave 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

اندازه تنوع‌بخش کلید برنامه رمزگذاری پیام Weave.

@45

 @45

@53

 @53

@۵۴

 @54
مشخصات
kWeavePeerDescription_MaxLength

حداکثر طول رشته (شامل نویسه NUL) که توسط WeaveMessageLayer::GetPeerDescription() برگردانده شده است.

@۵۵

 @55

تعاریف مربوط به سرصفحه پیام کدگذاری‌شده Weave.

مشخصات
kWeaveHeaderFlag_DestNodeId

نشان می‌دهد که شناسه گره مقصد در سرایند پیام Weave وجود دارد.

kWeaveHeaderFlag_MsgCounterSyncReq

نشان می‌دهد که فرستنده درخواست همگام‌سازی شمارنده پیام دارد.

kWeaveHeaderFlag_SourceNodeId

نشان می‌دهد که شناسه گره منبع در سرایند پیام Weave وجود دارد.

kWeaveHeaderFlag_TunneledData

نشان می‌دهد که بار پیام Weave یک بسته IP تونل‌دار است.

@۵۶

 @56

تعریف‌های فیلد بیت برای «شناسه‌های IEEE EUI-64».

مشخصات
kEUI64_IG_Group

مقدار بیت فردی/گروهی که نشان‌دهنده شناسه EUI-64 نشانی گروه است.

kEUI64_IG_Individual

مقدار بیت «فرد/گروه» که نشان‌دهنده شناسه نشانی فردی EUI-64 است.

kEUI64_IG_Mask

ماسک بیتی برای بیت «فردی/گروهی» (I/G) در شناسه EUI-64.

مقدار ۰ نشان می‌دهد که شناسه یک نشانی فردی است. مقدار ۱ نشان می‌دهد که شناسه نشانی گروه است.

kEUI64_UL_Local

مقدار بیت همگانی/محلی که نشان‌دهنده شناسه EUI-64 مدیریت‌شده به‌صورت محلی است.

kEUI64_UL_Mask

ماسک بیت برای بیت «جهانی/محلی» (U/L) در شناسه EUI-64.

مقدار ۰ نشان می‌دهد که شناسه به‌صورت جهانی مدیریت می‌شود. مقدار ۱ نشان می‌دهد که شناسه به‌صورت محلی مدیریت می‌شود.

kEUI64_UL_Unversal

مقدار بیت همگانی/محلی که نشان‌دهنده شناسه EUI-64 مدیریت‌شده به‌صورت همگانی است.

@57

 @57

محدوده‌های ویژه «شناسه‌های گره Weave».

مشخصات
kMaxAlwaysLocalWeaveNodeId

شناسه‌های گره Weave که کمتر یا مساوی این مقدار باشند، برای راحتی آزمایش، محلی درنظر گرفته می‌شوند.

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 پیش‌فرض استفاده شود.

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

نشان می‌دهد که بار مفید پیام Weave یک بسته IP تونل‌شده است.

kWeaveMessageFlag_ViaEphemeralUDPPort

نشان می‌دهد که پیام ازطریق درگاه UDP زودگذر محلی ارسال/دریافت می‌شود.

WeaveMessageVersion

 WeaveMessageVersion

نسخه قالب «پیام Weave».

Weave نسخه پیام مناسب را براساس قالب قاب موردنیاز برای پیام Weave انتخاب خواهد کرد. به‌طور پیش‌فرض، نسخه پیام kWeaveMessageVersion_V1 است. برای مثال، هنگام استفاده از Weave Reliable Messaging، نسخه kWeaveMessageVersion_V2 است.

مشخصات
kWeaveMessageVersion_Unspecified

نسخه پیام نامشخص.

kWeaveMessageVersion_V1

نسخه قالب سرایند پیام V1.

kWeaveMessageVersion_V2

نسخه قالب سرصفحه پیام V2.

WeaveSubnetId

 WeaveSubnetId

Weave چند شماره زیرشبکه رزروشده برای میاناهای شبکه متمایز در دستگاه‌های معمولی دارد.

این اعداد در اینجا به ثابت‌های نمادین اختصاص داده شده‌اند. Weave از این شماره‌های زیرشبکه برای پیکربندی نشانی‌های IPv6 ULA در میاناهای مناسب استفاده می‌کند.

مشخصات
kWeaveSubnetId_MobileDevice

شناسه زیرشبکه برای همه دستگاه‌های همراه.

kWeaveSubnetId_NotSpecified

به‌عنوان مقدار نامشخص یا تهی رزرو شده است.

kWeaveSubnetId_PrimaryWiFi

شماره زیرشبکه میانای رادیویی Wi-Fi.

kWeaveSubnetId_Service

شناسه زیرشبکه برای نقاط پایانی «سرویس Nest».

kWeaveSubnetId_ThreadAlarm

شماره زیرشبکه رابط رادیویی زنگ خطر Thread.

kWeaveSubnetId_ThreadMesh

شناسه زیرشبکه میانای رادیویی مش Thread.

kWeaveSubnetId_WiFiAP

شماره زیرشبکه رابط «نقطه دسترسی Wi-Fi محلی».

WeaveVendorId

 WeaveVendorId

Typedefs

FabricSecretRotationScheme

uint8_t FabricSecretRotationScheme

FabricSecretScope

uint8_t FabricSecretScope

دسته دستگاه‌هایی را که می‌توانند راز ساختار را داشته باشند و از آن استفاده کنند شناسایی می‌کند.

WeaveAuthMode

uint16_t WeaveAuthMode

نحوه اصالت‌سنجی گره همتا را مشخص می‌کند.

‫WeaveAuthMode روشی را که براساس آن گره همتا درطول تبادل پیام Weave اصالت‌سنجی شده است یا باید اصالت‌سنجی شود توصیف می‌کند. در بافت آغازین، برنامه‌ها از WeaveAuthMode برای بیان حالت اصالت‌سنجی همتا برای تبادل استفاده می‌کنند، درنتیجه به لایه‌های امنیتی و پیام‌رسانی 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».

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.

این مقدار نشان‌دهنده ۴ بایت اول «درهم‌سازی اس‌اچ‌اِی-۱» عبارت «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 یکتای محلی ۶۴ بیتی تولید می‌کند. این تابع از منبع داده تصادفی قوی رمزنگاری‌شده استفاده می‌کند تا یکتا بودن مقدار تولیدشده را تضمین کند. توجه داشته باشید که بیت ۵۷ شناسه گره Weave تولیدشده روی ۱ تنظیم شده است تا نشان دهد شناسه گره Weave تولیدشده به‌صورت محلی (نه جهانی) منحصربه‌فرد است.

جزئیات
پارامترها
nodeId
ارجاع به شناسه گره Weave‏ ۶۴ بیتی.
مقادیر برگشتی
WEAVE_NO_ERROR
اگر شناسه گره Weave باموفقیت تولید شد.

GetFibonacciForIndex

uint32_t GetFibonacciForIndex(
  uint32_t index
)

این تابع عدد فیبوناچی ۳۲ بیتی را برای نمایه ۳۲ بیتی داده‌شده تولید می‌کند.

جزئیات
برگرداندن
عدد فیبوناچی ۳۲ بیتی بدون علامت.

GetMessageName

const char * GetMessageName(
  uint32_t profileId,
  uint8_t msgType
)

GetProfileName

const char * GetProfileName(
  uint32_t profileId
)

GetRandU16

uint16_t GetRandU16(
  void
)

این تابع عدد تصادفی بدون علامت ۱۶ بیتی تولید می‌کند.

جزئیات
کالاهای مرجوعی
عدد صحیح تصادفی ۱۶ بیتی بدون علامت.

GetRandU32

uint32_t GetRandU32(
  void
)

این تابع عدد تصادفی بدون علامت ۳۲ بیتی تولید می‌کند.

جزئیات
برگرداندن
عدد صحیح تصادفی بدون علامت ۳۲ بیتی.

GetRandU64

uint64_t GetRandU64(
  void
)

این تابع عدد تصادفی بدون علامت ۶۴ بیتی تولید می‌کند.

جزئیات
برگرداندن
عدد صحیح تصادفی بدون علامت ۶۴ بیتی.

GetRandU8

uint8_t GetRandU8(
  void
)

این تابع عدد تصادفی بدون علامت ۸ بیتی تولید می‌کند.

جزئیات
کالاهای مرجوعی
عدد صحیح تصادفی بدون علامت ۸ بیتی.

GetVendorName

const char * GetVendorName(
  uint16_t vendorId
)

GroupKeyAuthMode

WeaveAuthMode GroupKeyAuthMode(
  uint32_t keyId
)

حالت اصالت‌سنجی کلید گروه مربوطه را برای شناسه کلید ارائه‌شده برمی‌گرداند.

‫IPv6InterfaceIdToWeaveNodeId

uint64_t IPv6InterfaceIdToWeaveNodeId(
  uint64_t interfaceId
)

شناسه واسط نشانی IPv6 را به شناسه گره Weave تبدیل کنید.

برای سهولت در آزمایش، شناسه‌های گره کمتر یا مساوی با #kMaxAlwaysLocalWeaveNodeId (۶۵۵۳۵) «محلی» درنظر گرفته می‌شوند و بیت جهانی/محلی آن‌ها روی صفر تنظیم می‌شود. این کار نمایش رشته نشانی‌های IPv6 مربوطه را ساده می‌کند. برای مثال، ULA برای شناسه گره 10 به‌صورت FD00:0:1:1::A خواهد بود.

جزئیات
پارامترها
[in] interfaceId
شناسه میانای ۶۴ بیتی.
کالاهای مرجوعی
شناسه گره Weave‏ ۶۴ بیتی تخصیص‌داده‌شده.

IsCASEAuthMode

bool IsCASEAuthMode(
  WeaveAuthMode authMode
)

اگر حالت اصالت‌سنجی براساس پروتکل Weave CASE باشد، درست است.

IsCertAuthMode

bool IsCertAuthMode(
  WeaveAuthMode authMode
)

اگر حالت اصالت‌سنجی براساس داشتن کلید خصوصی مرتبط با گواهی باشد، True است.

IsGroupKeyAuthMode

bool IsGroupKeyAuthMode(
  WeaveAuthMode authMode
)

اگر حالت اصالت‌سنجی براساس داشتن کلید گروه هم‌رسانی‌شده باشد، درست است.

IsPASEAuthMode

bool IsPASEAuthMode(
  WeaveAuthMode authMode
)

اگر حالت اصالت‌سنجی براساس پروتکل Weave PASE باشد، مقدار True (درست) است.

IsPasswordAuthMode

bool IsPasswordAuthMode(
  WeaveAuthMode authMode
)

اگر حالت اصالت‌سنجی براساس داشتن گذرواژه مشترک باشد، True است.

IsTAKEAuthMode

bool IsTAKEAuthMode(
  WeaveAuthMode authMode
)

اگر حالت اصالت‌سنجی براساس پروتکل 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 برای نشانی پارچه، ۴۰ بیت پایین‌تر از شناسه پارچه ۶۴ بیتی پارچه است.

جزئیات
پارامترها
[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.

شناسه‌های گره Weave عبارت‌اند از EUI-64 جهانی/محلی که طبق RFC-3513 با وارونه کردن بیت جهانی/محلی (بیت ۵۷ با احتساب LSB به‌عنوان ۰) به شناسه‌های میانای تبدیل می‌شوند.

برای سهولت در آزمایش، شناسه‌های گره کمتر یا مساوی با #kMaxAlwaysLocalWeaveNodeId (۶۵۵۳۵) «محلی» درنظر گرفته می‌شوند و بیت جهانی/محلی آن‌ها روی صفر تنظیم می‌شود. این کار نمایش رشته نشانی‌های IPv6 مربوطه را ساده می‌کند. برای مثال، یک ULA برای شناسه گره 10 به‌صورت FD00:0:1:1::A خواهد بود.

جزئیات
پارامترها
[in] nodeId
شناسه گره Weave‏ ۶۴ بیتی.
برگرداندن
شناسه میانای IPv6.

حداکثر

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

دقیقه

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