nl::การสาน

สรุป

การแจกแจง

@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
ขนาดเครื่องมือสําคัญของคีย์การเข้ารหัสแอปพลิเคชัน Weave
@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
คําจํากัดความของช่องบิตสําหรับตัวระบุ EUI-64 ของ IEEE
@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
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

ประเภทคําจํากัดความ

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
ฟังก์ชันนี้สร้างหมายเลข Fibonacci แบบ 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
เป็นจริงหากโหมดการตรวจสอบสิทธิ์อิงตามโปรโตคอล Weave CASE
IsCertAuthMode(WeaveAuthMode authMode)
bool
เป็นจริงหากโหมดการตรวจสอบสิทธิ์อิงตามการมีคีย์ส่วนตัวที่เชื่อมโยงกับใบรับรอง
IsGroupKeyAuthMode(WeaveAuthMode authMode)
bool
เป็นจริงหากโหมดการตรวจสอบสิทธิ์อิงตามการเป็นเจ้าของคีย์กลุ่มที่แชร์
IsPASEAuthMode(WeaveAuthMode authMode)
bool
เป็นจริงหากโหมดการตรวจสอบสิทธิ์อิงตามโปรโตคอล Weave PASE
IsPasswordAuthMode(WeaveAuthMode authMode)
bool
เป็นจริงหากโหมดการตรวจสอบสิทธิ์เป็นเจ้าของรหัสผ่านที่แชร์
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 และข้อมูลการกําหนดค่าที่เกี่ยวข้อง

nl:: Weave::ตัวนับ

อินเทอร์เฟซสําหรับจัดการตัวนับเป็นค่าจํานวนเต็ม

nl:: Weave::ExchangeContext

ชั้นเรียนนี้แสดงถึงการสนทนาที่ดําเนินอยู่ (ExchangeContext) ระหว่างโหนด 2 โหนดขึ้นไป

nl::Weave::FabricStateDelegate

ชั้นเรียนที่ให้สิทธิ์แบบนามธรรมนี้จะสื่อสารการเปลี่ยนแปลงสถานะผ้า

nl:: Weave::HostPortList

สําหรับการจัดการและแทรกแซงรายการโฮสต์ของโฮสต์ คอลเล็กชันของโฮสต์และตัวระบุพอร์ตขนาดกะทัดรัดที่เข้ารหัสแบบไบนารีซึ่งเชื่อมโยงกับ Weave Service Directory

nl:: Weave::JNIUtils
nl::Weave::MonotonicallyIncrisingCounter

คลาสสําหรับจัดการตัวนับการเพิ่มแบบโมโนติกเป็นค่าจํานวนเต็ม

nl:: Weave::PersistedCounter

คลาสสําหรับจัดการตัวนับเป็นค่าจํานวนเต็มที่ตั้งใจจะคงอยู่ในการรีบูต

nl::Weave::WeaveConnection

คําจํากัดความของคลาส Weave Connection

nl::Weave::WeaveConnectionTunnel

คําจํากัดความของคลาส WeaveConnectionTunnel ซึ่งจัดการ TCP-Point-1 คู่ที่มี 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 ซึ่งครอบคลุมการตรวจสอบคําขอที่ตรวจสอบสิทธิ์แล้วและการรายงานสถานะ และให้พื้นที่เก็บข้อมูลสมาชิกแบบทั่วไปสําหรับสถานะผ้าและผู้จัดการ Exchange

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 ไวยากรณ์ Notation One (ASN.1)

nl:: Weave::Crypto

เนมสเปซนี้รวมอินเทอร์เฟซทั้งหมดภายใน Weave สําหรับการรองรับการเข้ารหัสลับที่แชร์

nl:: Weave::DeviceLayer
nl:: Weave::DeviceManager
nl:: Weave::การเข้ารหัส

เนมสเปซนี้มีฟังก์ชันดังต่อไปนี้

nl:: Weave::การบันทึก

เนมสเปซนี้ประกอบด้วยอินเทอร์เฟซทั้งหมดภายใน Weave สําหรับการสนับสนุนการบันทึกที่ใช้ร่วมกัน

nl:: Weave::แพลตฟอร์ม
nl:: Weave::โปรไฟล์

เนมสเปซนี้ประกอบด้วยอินเทอร์เฟซทั้งหมดภายใน Weave สําหรับโปรไฟล์ Weave ทั้งสําหรับผู้ให้บริการทั่วไป เฉพาะและ Nest Labs

nl:: Weave::ฝ่ายสนับสนุนด้านความปลอดภัย
nl:: Weave::สถิติ
nl:: Weave::การสนับสนุน
nl:: Weave::ระบบ
nl:: Weave::TLV

คํานิยามสําหรับการทํางานกับข้อมูลที่เข้ารหัสในรูปแบบ Weave TLV

nl::เวฟ:Warm

เนมสเปซนี้ประกอบด้วยอินเทอร์เฟซสําหรับที่อยู่ Weave และ Routing Module ซึ่งเป็นโมดูลแบบพกพาสําหรับการกําหนดค่าที่อยู่ IP และเส้นทางของ Weave

การแจกแจง

21 ขวบ

 @21
พร็อพเพอร์ตี้
kFlagAckPending

หากคาดว่าจะได้รับการตอบกลับสําหรับข้อความที่กําลังส่ง

kFlagAutoReleaseConnection

ปล่อยคีย์การเข้ารหัสข้อความโดยอัตโนมัติเมื่อพ้นบริบทของ Exchange

kFlagAutoReleaseKey

เมื่อตั้งค่าแล้ว แสดงว่าได้รับข้อความอย่างน้อย 1 ข้อความจากเพื่อนในบริบทของ Exchange นี้

kFlagAutoRequestAck

บริบทนี้เชื่อมโยงกับ WeaveConnection

kFlagConnectionClosed

บริบทนี้เป็นที่มาของการแลกเปลี่ยน

kFlagDropAck

เมื่อตั้งค่าไว้ ให้ส่งคําขอรับทราบโดยอัตโนมัติเมื่อส่งข้อความผ่าน UDP

kFlagMsgRcvdFromPeer

เมื่อตั้งค่าแล้ว หมายความว่ามีอย่างน้อย 1 ข้อความที่ได้รับใน Exchange นี้ซึ่งขอการตอบรับ

แอปพลิเคชันจะอ่านแฟล็กนี้เพื่อพิจารณาว่าต้องขอการตอบกลับสําหรับข้อความตอบกลับที่กําลังจะส่งหรือไม่ แฟล็กนี้ยังระบุได้ว่าแอปเทียบเท่ากําลังใช้ WRMP หรือไม่

kFlagPeerRequestedAck

เมื่อตั้งค่าแล้ว ให้ระบุว่ามีการรับทราบที่จะส่งคืน

kFlagResponseExpected

ภายในและแก้ไขข้อบกพร่องเท่านั้น: เมื่อตั้งค่าแล้ว เลเยอร์ของ Exchange ไม่ได้ส่งข้อมูลรับทราบ

kFlagUseEphemeralUDPPort

ปล่อย WeaveConnection ที่เกี่ยวข้องโดยอัตโนมัติเมื่อบริบทของ Exchange ว่าง

@36

 @36

@77

 @37

@38

 @38
พร็อพเพอร์ตี้
kFabricIdDefaultForTest

รหัสผ้าเริ่มต้น ซึ่งควรใช้เพื่อจุดประสงค์ในการทดสอบเท่านั้น

@39

 @39

ระบุวัตถุประสงค์หรือการใช้ใบรับรอง

ประเภทใบรับรองคือป้ายกํากับที่อธิบายวัตถุประสงค์ของแอปพลิเคชันหรือแอปพลิเคชัน ใบรับรองไม่ใช่ประเภทใบรับรองที่ตรงกัน แต่มาจากโครงสร้างของใบรับรองและ/หรือบริบทที่ใช้งาน การแจกแจงประเภทใบรับรองประกอบด้วยชุดค่าที่กําหนดไว้ล่วงหน้าซึ่งอธิบายแอปพลิเคชันใบรับรองที่ใช้กันโดยทั่วไป นอกจากนี้ นักพัฒนาซอฟต์แวร์ยังขยายช่วงค่าประเภทใบรับรองได้ด้วยประเภทเฉพาะแอปพลิเคชันที่อธิบายใบรับรองที่กําหนดเองหรือใบรับรองที่มีพร็อพเพอร์ตี้ความปลอดภัยที่ไม่ซ้ํากัน

ประเภทใบรับรองจะใช้เป็นหลักในการใช้นโยบายควบคุมการเข้าถึง โดยการเข้าถึงฟีเจอร์ของแอปพลิเคชันจะขึ้นอยู่กับประเภทใบรับรองที่ผู้ขอนําเสนอ

พร็อพเพอร์ตี้
kCertType_AccessToken

ใบรับรองโทเค็นการเข้าถึง Weave

kCertType_AppDefinedBase

ประเภทใบรับรองเฉพาะแอปพลิเคชันควรมีค่า >= ค่านี้

kCertType_CA

ใบรับรอง 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

อุปกรณ์ทั้งหมดอาจมีข้อมูลลับของผ้าที่เกี่ยวข้อง

@33

 @43
พร็อพเพอร์ตี้
kTestKey_AES128CTRSHA1_DataKeyByte

ค่าไบต์ที่สร้างคีย์การเข้ารหัสซึ่งใช้สําหรับการทดสอบเท่านั้น

kTestKey_AES128CTRSHA1_IntegrityKeyByte

ค่าไบต์ที่สร้างคีย์ความสมบูรณ์ ซึ่งใช้สําหรับการทดสอบเท่านั้น

@44

 @44

ขนาดเครื่องมือสําคัญของคีย์การเข้ารหัสแอปพลิเคชัน Weave

@45

 @45

@53

 @53

@44

 @54
พร็อพเพอร์ตี้
kWeavePeerDescription_MaxLength

ความยาวสูงสุดของสตริง (รวมถึงอักขระ NUL) ที่แสดงโดย WeaveMessageLayer::GetPeerDescription()

@55

 @55

คําจํากัดความที่เกี่ยวข้องกับส่วนหัวของข้อความ Weave ที่เข้ารหัส

พร็อพเพอร์ตี้
kWeaveHeaderFlag_DestNodeId

บ่งบอกว่ามีรหัสโหนดปลายทางในส่วนหัวของข้อความ Weave

kWeaveHeaderFlag_MsgCounterSyncReq

ระบุว่าผู้ส่งขอให้ซิงค์ตัวนับข้อความ

kWeaveHeaderFlag_SourceNodeId

บ่งบอกว่ามีรหัสโหนดต้นทางในส่วนหัวของข้อความ Weave

kWeaveHeaderFlag_TunneledData

บ่งบอกว่าเพย์โหลดข้อความ Weave เป็นแพ็กเก็ต IP แบบ Tunnel

@66

 @56

คําจํากัดความของช่องบิตสําหรับตัวระบุ EUI-64 ของ IEEE

พร็อพเพอร์ตี้
kEUI64_IG_Group

ค่าของบิต/กลุ่มที่ระบุตัวระบุกลุ่ม EUI-64 ของกลุ่ม

kEUI64_IG_Individual

ค่าของบิต/กลุ่มเดี่ยวซึ่งระบุตัวระบุ EUI-64 ของที่อยู่แต่ละรายการ

kEUI64_IG_Mask

ดอกสว่านสําหรับบิต/กลุ่ม (I/G) ภายในตัวระบุ EUI-64

หากค่า 0 แสดงว่ารหัสดังกล่าวเป็นที่อยู่แต่ละรายการ โดยค่า 1 หมายความว่ารหัสเป็นที่อยู่กลุ่ม

kEUI64_UL_Local

ค่าบิตสากล/ท้องถิ่นที่ระบุตัวระบุ EUI-64 สําหรับการดูแลระบบภายใน

kEUI64_UL_Mask

อัตราบิตของบิตสําหรับ Universal/Local (U/L) ภายในตัวระบุ EUI-64

ค่า 0 หมายความว่ารหัสดังกล่าวได้รับการจัดการทั่วโลก (ทั่วโลก) ค่า 1 หมายความว่ารหัสนั้นมีการดูแลระบบภายใน

kEUI64_UL_Unversal

ค่าบิตสากล/ท้องถิ่นที่ระบุตัวระบุ EUI-64 สากลที่มีการดูแลจัดการ

@57

 @57

ช่วงพิเศษของรหัสโหนด Weave

พร็อพเพอร์ตี้
kMaxAlwaysLocalWeaveNodeId

ตัวระบุโหนด Weave น้อยกว่าหรือเท่ากับค่านี้จะถือว่าอยู่ในเครื่องเพื่ออํานวยความสะดวกในการทดสอบ

ประเภทการเข้ารหัส Weave

 WeaveEncryptionType

ประเภทการเข้ารหัสสําหรับข้อความ Weave

พร็อพเพอร์ตี้
kWeaveEncryptionType_AES128CTRSHA1

ข้อความที่เข้ารหัสโดยใช้การเข้ารหัส AES-128-CTR พร้อมด้วยความสมบูรณ์ของข้อความ HMAC-SHA-1

kWeaveEncryptionType_None

ข้อความไม่ได้เข้ารหัส

ธง WeaveExchange

 WeaveExchangeFlags

บิตแฟล็กส่วนหัวของ Weave Exchange

พร็อพเพอร์ตี้
kWeaveExchangeFlag_AckId

ระบุเวลาที่รับทราบข้อความที่ได้รับก่อนหน้านี้

kWeaveExchangeFlag_Initiator

กําหนดเมื่อผู้เริ่ม Exchange ส่งข้อความปัจจุบัน

kWeaveExchangeFlag_NeedsAck

ตั้งค่าเมื่อข้อความปัจจุบันกําลังขอการตอบรับจากผู้รับ

เวอร์ชัน WeaveExchange

 WeaveExchangeVersion

เวอร์ชันส่วนหัวของ Weave Exchange

ธง WeaveMessage

 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 แบบ Tunnel

kWeaveMessageFlag_ViaEphemeralUDPPort

ระบุว่ากําลังส่ง/รับผ่านพอร์ต UDP ชั่วคราวในพื้นที่

เวอร์ชัน WeaveMessage

 WeaveMessageVersion

เวอร์ชันของรูปแบบข้อความ Weave

Weave จะเลือกเวอร์ชันข้อความที่เหมาะสมตามรูปแบบเฟรมที่จําเป็นสําหรับข้อความ Weave ตามค่าเริ่มต้น เวอร์ชันข้อความคือ kWeaveMessageVersion_V1 เช่น เมื่อใช้ Weave Reliable Messaging เช่น เวอร์ชันคือ kWeaveMessageVersion_V2

พร็อพเพอร์ตี้
kWeaveMessageVersion_Unspecified

เวอร์ชันของข้อความที่ระบุไม่ได้

kWeaveMessageVersion_V1

รูปแบบส่วนหัวของข้อความเวอร์ชัน V1

kWeaveMessageVersion_V2

รูปแบบส่วนหัวของข้อความเวอร์ชัน 2

รหัสย่อยของ Weave

 WeaveSubnetId

Weave มีหมายเลขซับเน็ตที่สงวนไว้สําหรับอินเทอร์เฟซเครือข่ายที่แตกต่างกันในอุปกรณ์ทั่วไป

ตัวเลขเหล่านี้กําหนดให้กับค่าคงที่เชิงสัญลักษณ์ Weave ใช้หมายเลขซับเน็ตเหล่านี้เพื่อกําหนดค่าที่อยู่ IPv6 ULA ในอินเทอร์เฟซที่เหมาะสม

พร็อพเพอร์ตี้
kWeaveSubnetId_MobileDevice

ตัวระบุซับเน็ตสําหรับอุปกรณ์เคลื่อนที่ทั้งหมด

kWeaveSubnetId_NotSpecified

สงวนไว้เป็นค่าที่ไม่ได้ระบุหรือเป็นค่าว่าง

kWeaveSubnetId_PrimaryWiFi

หมายเลขซับเน็ตของอินเทอร์เฟซวิทยุ Wi-Fi

kWeaveSubnetId_Service

ตัวระบุซับเน็ตสําหรับปลายทางบริการ Nest

kWeaveSubnetId_ThreadAlarm

หมายเลขซับเน็ตของอินเทอร์เฟซวิทยุบนเทรด

kWeaveSubnetId_ThreadMesh

ตัวระบุซับเน็ตอินเทอร์เฟซวิทยุของเทรด

kWeaveSubnetId_WiFiAP

หมายเลขซับเน็ตของอินเทอร์เฟซ Wi-Fi AP ในระบบ

รหัสผู้ให้บริการทอ

 WeaveVendorId

ประเภทคําจํากัดความ

ผ้าเช็ดหน้าผ้า

uint8_t FabricSecretRotationScheme

ข้อมูลลับของสิ่งทอ

uint8_t FabricSecretScope

ระบุหมวดหมู่ของอุปกรณ์ที่ครอบครองและใช้ข้อมูลลับในผ้าได้

โหมดการตรวจสอบสิทธิ์

uint16_t WeaveAuthMode

ระบุวิธีตรวจสอบสิทธิ์โหนดเพียร์

WeaveAuthMode อธิบายวิธีการที่โหนดเทียบเท่าได้หรือควรตรวจสอบสิทธิ์ระหว่างการแลกเปลี่ยนข้อความ Weave ในบริบทที่เริ่มต้น แอปพลิเคชันจะใช้ WeaveAuthMode เพื่อแสดงโหมดการตรวจสอบสิทธิ์เพียร์ที่ต้องการสําหรับ Exchange ซึ่งเป็นการแจ้งให้เลเยอร์ความปลอดภัยและการรับส่งข้อความของ Weave ทํางานในโหมดที่ต้องการหรือล้มเหลวในการสื่อสาร ในบริบทของการตอบกลับ WeaveAuthMode จะระบุว่าโหนดที่ขอ (เพียร์) ได้รับการตรวจสอบสิทธิ์อย่างไร ซึ่งทําให้แอปพลิเคชันการตอบกลับสามารถบังคับใช้การควบคุมการเข้าถึงตามข้อมูลนี้

WeaveAuthMode ที่กําหนดให้กับข้อความ Weave ขาเข้าจะเกี่ยวข้องกับลักษณะของคีย์ที่ใช้เข้ารหัสข้อความนั้นๆ WeaveAuthMode มาจากกลไกที่มีการสร้างคีย์และเกณฑ์ที่ใช้ในการยืนยันข้อมูลประจําตัวของฝ่ายการสื่อสารในขณะที่ก่อตั้งคีย์

WeaveAuthMode ประกอบด้วยชุดค่าที่กําหนดไว้ล่วงหน้าซึ่งอธิบายถึงโหมดการตรวจสอบสิทธิ์ที่ใช้กันทั่วไป มิติข้อมูลเหล่านี้ได้รับการแบ่งตามกลไกข้อตกลงที่สําคัญ (CASE, PASE, GroupKey ฯลฯ) นักพัฒนาซอฟต์แวร์ขยาย WeaveAuthMode ได้ด้วยการกําหนดโหมดเฉพาะแอปพลิเคชัน ซึ่งใช้กับคีย์การเข้ารหัสที่เจาะจงได้

คีย์การเข้ารหัส Weave

union nl::Weave::WeaveEncryptionKey WeaveEncryptionKey

ประเภทการเข้ารหัส Weave

enum nl::Weave::WeaveEncryptionType WeaveEncryptionType

ประเภทการเข้ารหัสสําหรับข้อความ Weave

ธง WeaveExchange

enum nl::Weave::WeaveExchangeFlags WeaveExchangeFlags

บิตแฟล็กส่วนหัวของ Weave Exchange

เวอร์ชัน WeaveExchange

enum nl::Weave::WeaveExchangeVersion WeaveExchangeVersion

เวอร์ชันส่วนหัวของ Weave Exchange

ธง WeaveMessage

enum nl::Weave::WeaveMessageFlags WeaveMessageFlags

แฟล็กที่เชื่อมโยงกับข้อความ Weave ขาเข้าหรือขาออก

ค่าที่ระบุที่นี่ใช้ภายในช่อง WeaveMessageInfo.Flags

ไอคอนข้อความ WeaveMessageHeader

struct WeaveMessageInfo WeaveMessageHeader

เวอร์ชัน WeaveMessage

enum nl::Weave::WeaveMessageVersion WeaveMessageVersion

เวอร์ชันของรูปแบบข้อความ Weave

Weave จะเลือกเวอร์ชันข้อความที่เหมาะสมตามรูปแบบเฟรมที่จําเป็นสําหรับข้อความ Weave ตามค่าเริ่มต้น เวอร์ชันข้อความคือ kWeaveMessageVersion_V1 เช่น เมื่อใช้ Weave Reliable Messaging เช่น เวอร์ชันคือ kWeaveMessageVersion_V2

รหัสย่อยของ Weave

enum nl::Weave::WeaveSubnetId WeaveSubnetId

Weave มีหมายเลขซับเน็ตที่สงวนไว้สําหรับอินเทอร์เฟซเครือข่ายที่แตกต่างกันในอุปกรณ์ทั่วไป

ตัวเลขเหล่านี้กําหนดให้กับค่าคงที่เชิงสัญลักษณ์ Weave ใช้หมายเลขซับเน็ตเหล่านี้เพื่อกําหนดค่าที่อยู่ IPv6 ULA ในอินเทอร์เฟซที่เหมาะสม

ตัวแปร

ExchangeMgr

NL_DLL_EXPORT WeaveExchangeManager ExchangeMgr

ผ้า

NL_DLL_EXPORT WeaveFabricState FabricState

เลเยอร์ข้อความ

NL_DLL_EXPORT WeaveMessageLayer MessageLayer

ความปลอดภัย Security

NL_DLL_EXPORT WeaveSecurityManager SecurityMgr

การเชื่อมต่อแบบ Weave

class NL_DLL_EXPORT WeaveConnection

ผู้จัดการด้านการแลกเปลี่ยน

class NL_DLL_EXPORT WeaveExchangeManager

เลเยอร์ข้อความ

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 และ AK"

ฟังก์ชัน

AppGroupMasterKeyIdFromAuthMode

uint8_t AppGroupMasterKeyIdFromAuthMode(
  WeaveAuthMode authMode
)

แสดงผลรหัสคีย์หลักของกลุ่มแอปพลิเคชันที่เชื่อมโยงกับโหมดการตรวจสอบสิทธิ์

CASEAuthMode

WeaveAuthMode CASEAuthMode(
  uint8_t certType
)

แสดงผลโหมดการตรวจสอบสิทธิ์ CASE ที่เกี่ยวข้องสําหรับประเภทใบรับรองที่ระบุ

โหมด CertTypeFromAuthAuth

uint8_t CertTypeFromAuthMode(
  WeaveAuthMode authMode
)

แสดงแหล่งที่มาของรหัสผ่านสําหรับโหมดการตรวจสอบสิทธิ์ที่ระบุ

ช่องส่วนหัวถอดรหัส

void DecodeHeaderField(
  const uint16_t headerField,
  WeaveMessageInfo *msgInfo
)

ค่าเริ่มต้นของ OnOnMessageReceived

void DefaultOnMessageReceived(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

ช่องส่วนหัว Encode

uint16_t EncodeHeaderField(
  const WeaveMessageInfo *msgInfo
)

ชื่อ FindMessage

const char * FindMessageName(
  uint32_t inProfileId,
  uint8_t inMsgType
)

ชื่อโปรไฟล์การค้นหา

const char * FindProfileName(
  uint32_t inProfileId
)

ข้อผิดพลาดของรูปแบบ Weave

bool FormatWeaveError(
  char *buf,
  uint16_t bufSize,
  int32_t err
)

หากมีข้อผิดพลาด Weave ให้แสดงสตริง C ที่สิ้นสุดโดย NULL ที่มนุษย์อ่านได้และอธิบายข้อผิดพลาดดังกล่าว

รายละเอียด
พารามิเตอร์
[in] buf
บัฟเฟอร์ที่จะวางสตริงข้อผิดพลาด
[in] bufSize
ขนาดของบัฟเฟอร์ในหน่วยไบต์
[in] err
ข้อผิดพลาดที่อธิบาย
การคืนสินค้า
true หากเขียนสตริงคําอธิบายลงในบัฟเฟอร์ที่ระบุ
การคืนสินค้า
false หากข้อผิดพลาดที่ระบุไม่ใช่ข้อผิดพลาด Weave

สร้าง WeaveNodeId

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
)

ฟังก์ชันนี้สร้างหมายเลข Fibonacci แบบ 32 บิตสําหรับดัชนี 32 บิตที่ระบุ

รายละเอียด
การคืนสินค้า
หมายเลข fibonacci ที่ไม่มีลายเซ็น 32 บิต

ชื่อ GetMessage

const char * GetMessageName(
  uint32_t profileId,
  uint8_t msgType
)

ชื่อ GetProfile

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 บิต

ชื่อ GetVendor

const char * GetVendorName(
  uint16_t vendorId
)

โหมดคีย์กลุ่ม

WeaveAuthMode GroupKeyAuthMode(
  uint32_t keyId
)

แสดงผลโหมดการตรวจสอบสิทธิ์คีย์กลุ่มที่เกี่ยวข้องสําหรับรหัสคีย์ที่ระบุ

IPv6InterfaceIdToWeaveNodeId

uint64_t IPv6InterfaceIdToWeaveNodeId(
  uint64_t interfaceId
)

แปลงตัวระบุอินเทอร์เฟซที่อยู่ IPv6 เป็นตัวระบุโหนด Weave

เพื่อความสะดวกในการทดสอบ ตัวระบุโหนดน้อยกว่าหรือเท่ากับ #kMaxAlwaysLocalWeaveNodeId (65535) จะถือว่าเป็น 'local' และตั้งค่าบิต Universal/Local เป็น 0 วิธีนี้ทําให้การแสดงสตริงของที่อยู่ IPv6 ที่เกี่ยวข้องง่ายขึ้น เช่น ULA สําหรับตัวระบุโหนด 10 จะเป็น FD00:0:1:1::A

รายละเอียด
พารามิเตอร์
[in] interfaceId
ตัวระบุอินเทอร์เฟซ 64 บิต
การคืนสินค้า
ตัวระบุโหนด Weave แบบ 64 บิตที่แมปแล้ว

IsCASEAuthMode

bool IsCASEAuthMode(
  WeaveAuthMode authMode
)

เป็นจริงหากโหมดการตรวจสอบสิทธิ์อิงตามโปรโตคอล Weave CASE

IsCertAuthMode

bool IsCertAuthMode(
  WeaveAuthMode authMode
)

เป็นจริงหากโหมดการตรวจสอบสิทธิ์อิงตามการมีคีย์ส่วนตัวที่เชื่อมโยงกับใบรับรอง

โหมดคีย์กลุ่ม

bool IsGroupKeyAuthMode(
  WeaveAuthMode authMode
)

เป็นจริงหากโหมดการตรวจสอบสิทธิ์อิงตามการเป็นเจ้าของคีย์กลุ่มที่แชร์

IsPASEAuthMode

bool IsPASEAuthMode(
  WeaveAuthMode authMode
)

เป็นจริงหากโหมดการตรวจสอบสิทธิ์อิงตามโปรโตคอล Weave PASE

โหมดการตรวจสอบสิทธิ์รหัสผ่าน

bool IsPasswordAuthMode(
  WeaveAuthMode authMode
)

เป็นจริงหากโหมดการตรวจสอบสิทธิ์เป็นเจ้าของรหัสผ่านที่แชร์

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
)

ชื่อคลาส

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

โหมด PASEAuth

WeaveAuthMode PASEAuthMode(
  uint8_t pwSource
)

แสดงผลโหมดการตรวจสอบสิทธิ์ PASE ที่เกี่ยวข้องสําหรับแหล่งที่มาของรหัสผ่านที่ระบุ

PasswordSourceFromAuthMode

uint8_t PasswordSourceFromAuthMode(
  WeaveAuthMode authMode
)

แสดงแหล่งที่มาของรหัสผ่านสําหรับโหมดการตรวจสอบสิทธิ์ที่ระบุ

ข้อมูลงานพิมพ์

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

โทเฮกซ์

char ToHex(
  const uint8_t data
)

ToHexString

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

การเข้ารหัสคีย์ Weave

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

WeaveFabricIdToIPv6GlobalId

uint64_t WeaveFabricIdToIPv6GlobalId(
  uint64_t fabricId
)

แปลงตัวระบุผ้า Weave เป็นตัวระบุ IPv6 ULA ทั่วโลก

ตัวระบุส่วนกลางของ ULA สําหรับที่อยู่ผ้าคือรหัสผ้า 64 บิตที่อยู่ต่ํากว่า 40 บิต

รายละเอียด
พารามิเตอร์
[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 คือ Universal/Local EUI-64 ซึ่งเปลี่ยนตาม RFC-3513 เป็นตัวระบุอินเทอร์เฟซด้วยการเปลี่ยนบิต Universal/Local (บิต 57 ที่นับ LSB เป็น 0)

เพื่อความสะดวกในการทดสอบ ตัวระบุโหนดน้อยกว่าหรือเท่ากับ #kMaxAlwaysLocalWeaveNodeId (65535) จะถือว่าเป็น 'local' และตั้งค่าบิต Universal/Local เป็น 0 วิธีนี้ทําให้การแสดงสตริงของที่อยู่ 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
)