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 列舉
編織訊息加密應用程式金鑰多樣性。
@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 ID 的位元欄位定義。
@57{
  kMaxAlwaysLocalWeaveNodeId = 0x000000000000FFFFULL
}
列舉
Weave 節點 ID 的特殊範圍。
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
傳回與驗證模式相關聯的應用程式群組主金鑰 ID。
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 錯誤,系統會傳回使用者可理解的 NULL 結尾 C 字串說明錯誤。
GenerateWeaveNodeId(uint64_t & nodeId)
NL_DLL_EXPORT WEAVE_ERROR
產生隨機 Weave 節點 ID。
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
傳回指定金鑰 ID 的對應群組金鑰驗證模式。
IPv6InterfaceIdToWeaveNodeId(uint64_t interfaceId)
uint64_t
將 IPv6 位址介面 ID 轉換為 Weave 節點 ID。
IsCASEAuthMode(WeaveAuthMode authMode)
bool
如果驗證模式是以 Weave CASE 通訊協定為基礎,則傳回 true。
IsCertAuthMode(WeaveAuthMode authMode)
bool
如果驗證模式主要是透過與憑證相關聯的私密金鑰擁有,則為「是」。
IsGroupKeyAuthMode(WeaveAuthMode authMode)
bool
如果驗證模式是以共用群組金鑰的擁有者為基準,則為「true」。
IsPASEAuthMode(WeaveAuthMode authMode)
bool
如果驗證模式是以 Weave PASE 通訊協定為基礎,則傳回「是」。
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 布料 ID 轉換為 IPv6 ULA 全球 ID。
WeaveMessageSourceToStr(char *buf, uint32_t bufSize, const WeaveMessageInfo *msgInfo)
void
WeaveNodeAddrToStr(char *buf, uint32_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, WeaveConnection *con)
void
WeaveNodeIdToIPv6InterfaceId(uint64_t nodeId)
uint64_t
將 Weave 節點 ID 轉換為 IPv6 位址介面 ID。
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 服務目錄相關聯的主機及通訊埠 ID 組合,採二進位編碼的精簡編碼集合。

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

這會指定 ExchangeContext 中特定 Weave 訊息的 Weave 設定檔和郵件類型。

nl::Weave::WeaveExchangeManager

這個類別可用於管理具有其他 Weave 節點的 ExchangeContext。

nl::Weave::WeaveFabricState

WeaveFabricState 的前向宣告。

nl::Weave::WeaveKeyId

Weave 金鑰 ID 的定義。

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

傳達與其他節點收發訊息所需的通訊狀態。

Structs

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

WRMP 設定。

nl::Weave::WeaveMessageInfo

正在進行收發的 Weave 訊息相關資訊。

聯合工會

nl::Weave::WeaveEncryptionKey

命名空間

nl::Weave::ASN1

此命名空間包含 Weave 中所有與抽象語法 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 設定檔的所有介面 (一般通用和 Nest Labs 供應商專屬),

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

以 Weave TLV 格式編碼的資料如何運作。

nl::Weave::Warm

這個命名空間包含 Weave Address 和 Route Module 的介面,這是一種可攜式模組,可用來設定 Weave IP 位址和路徑。

列舉

21 次

 @21
屬性
kFlagAckPending

預期的訊息有回應。

kFlagAutoReleaseConnection

交換內容無虞後,自動釋出訊息加密金鑰。

kFlagAutoReleaseKey

設定後,表示系統已在這個交換平台收到至少一則訊息。

kFlagAutoRequestAck

這個內容與 WeaveConnection 相關聯。

kFlagConnectionClosed

也就是廣告交易平台的發起人。

kFlagDropAck

如果設定這項政策,每次透過 UDP 傳送訊息時,系統都會自動要求確認。

kFlagMsgRcvdFromPeer

設定後,表示這個廣告交易平台收到至少一則訊息要求確認。

應用程式會讀取此旗標,判斷是否需要針對即將傳送的回應訊息要求確認。這個標記也可以指出對等點是否正在使用 WRMP。

kFlagPeerRequestedAck

設定後,代表有尚未傳回的確認訊息。

kFlagResponseExpected

僅限內部和偵錯:設定後,交換層不會傳送確認。

kFlagUseEphemeralUDPPort

當交換庫內容釋放後,自動釋出相關聯的 WeaveConnection

@36

 @36

37 次

 @37

38 人

 @38
屬性
kFabricIdDefaultForTest

預設架構 ID,僅供測試用途。

@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

用於識別密碼式驗證通訊協定 (例如

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

已透過 Weave 裝置憑證使用 CASE 完成對等互連驗證。

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

WeaveMessageLayer::GetPeerDescription() 傳回的字串長度上限 (包括 NUL 字元)。

55 次

 @55

與已編碼 Weave 訊息標頭相關的定義。

屬性
kWeaveHeaderFlag_DestNodeId

指出目的地節點 ID 出現在 Weave 訊息標頭中。

kWeaveHeaderFlag_MsgCounterSyncReq

表示傳送者要求訊息計數器同步處理。

kWeaveHeaderFlag_SourceNodeId

指出來源節點 ID 出現在 Weave 郵件標頭中。

kWeaveHeaderFlag_TunneledData

表示 Weave 訊息酬載是通道的 IP 封包。

56 次

 @56

IEEE EUI-64 ID 的位元欄位定義。

屬性
kEUI64_IG_Group

個人/群組位元值,代表群組地址 EUI-64 ID。

kEUI64_IG_Individual

個人/群組位元值,代表個別地址 EUI-64 ID。

kEUI64_IG_Mask

EUI-64 ID 中的個人/群組 (I/G) 位元位元遮罩。

值為 0 時,ID 是個別地址。如果值為 1,表示 ID 是群組地址。

kEUI64_UL_Local

通用/本機位元值,表示本機管理的 EUI-64 ID。

kEUI64_UL_Mask

EUI-64 ID 中的 Universal/Local (U/L) 位元位元遮罩。

如果值為 0,表示 ID 由通用 (全域) 管理。如果值為 1,表示 ID 是由本機管理。

kEUI64_UL_Unversal

通用/本機位元值,表示受通用管理的 EUI-64 ID。

57 次

 @57

Weave 節點 ID 的特殊範圍。

屬性
kMaxAlwaysLocalWeaveNodeId

為方便測試,系統會將節點 ID 小於或等於這個值,視為本機 ID。

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

指出目的地節點 ID 出現在 Weave 訊息標頭中。

kWeaveMessageFlag_DuplicateMessage

表示該郵件與先前收到的訊息重複。

kWeaveMessageFlag_FromInitiator

表示訊息來源是 Weave 交換作業的發起人。

kWeaveMessageFlag_MessageEncoded

表示 Weave 訊息已編碼。

kWeaveMessageFlag_MsgCounterSyncReq

表示傳送者要求對等者要求計數器同步處理作業。

kWeaveMessageFlag_MulticastFromLinkLocal

kWeaveMessageFlag_DefaultMulticastSourceAddress 的別名已淘汰,

kWeaveMessageFlag_PeerGroupMsgIdNotSynchronized

表示同業的群組主要訊息計數器並未同步處理。

kWeaveMessageFlag_PeerRequestedAck

表示訊息寄件者要求確認。

kWeaveMessageFlag_RetainBuffer

表示訊息緩衝區在傳送後不應釋出。

kWeaveMessageFlag_ReuseMessageId

表示現有的訊息 ID 必須重複使用。

kWeaveMessageFlag_ReuseSourceId

表示必須重複使用現有的來源節點 ID。

kWeaveMessageFlag_SourceNodeId

指出來源節點 ID 出現在 Weave 郵件標頭中。

kWeaveMessageFlag_TunneledData

表示 Weave 訊息酬載是通道的 IP 封包。

kWeaveMessageFlag_ViaEphemeralUDPPort

表示正在透過本機暫時 UDP 通訊埠傳送/接收訊息。

WeaveMessageVersion

 WeaveMessageVersion

Weave 訊息格式的版本。

Weave 會根據 Weave 訊息所需的畫面格式,選擇適當的訊息版本。預設的訊息版本為 kWeaveMessageVersion_V1。使用 Weave Reliable Messaging 時,例如 kWeaveMessageVersion_V2。

屬性
kWeaveMessageVersion_Unspecified

未指定訊息版本。

kWeaveMessageVersion_V1

郵件標頭格式第 1 版。

kWeaveMessageVersion_V2

郵件標頭格式第 2 版。

WeaveSubnetId

 WeaveSubnetId

Weave 有一些保留的子網路號碼,可用於區分一般裝置上的網路介面。

這些數字會指派給符號常數。Weave 會使用這些子網路號碼,在適當的介面上設定 IPv6 ULA 位址。

屬性
kWeaveSubnetId_MobileDevice

所有行動裝置的子網路 ID。

kWeaveSubnetId_NotSpecified

保留為未指定或空值。

kWeaveSubnetId_PrimaryWiFi

Wi-Fi 無線電介面子網路號碼。

kWeaveSubnetId_Service

Nest 服務端點的子網路 ID。

kWeaveSubnetId_ThreadAlarm

Thread 鬧鐘無線電介面子網路號碼。

kWeaveSubnetId_ThreadMesh

Thread 網格無線電介面子網路 ID。

kWeaveSubnetId_WiFiAP

本機 Wi-Fi AP 介面子網路號碼。

WeaveVendorId

 WeaveVendorId

Typedefs

FabricSecretRotationScheme

uint8_t FabricSecretRotationScheme

FabricSecretScope

uint8_t FabricSecretScope

識別可擁有及使用布料密鑰的裝置類別。

WeaveAuthMode

uint16_t WeaveAuthMode

識別對等互連節點的驗證方式。

WeaveAuthMode 說明在 Weave 郵件交換期間,對等節點已經或應該通過哪些驗證的方式。在啟動情境中,應用程式會使用 WeaveAuthMode 來表示交換項目的所需對等互連驗證模式,藉此指示 Weave 安全性和訊息層達到所需模式,或是導致通訊失敗。在回應內容中,WeaveAuthMode 會識別要求節點 (對等點) 如何驗證,讓回應應用程式根據這項資訊強制執行存取權控管機制。

指派給傳入 Weave 訊息的 WeaveAuthMode 與用來加密該訊息的金鑰有關。WeaveAuthMode 衍生自建立金鑰時所用的機制,以及金鑰建立時用來驗證通訊方身分的標準。

WeaveAuthMode 包含一組用來說明常見驗證模式的預先定義值。這些會依照主要協議機制 (CASE、PASE、GroupKey 等) 細分。開發人員可以定義應用程式專用模式,將 WeaveAuthMode 附加至特定加密金鑰,藉此擴充 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 Reliable Messaging 時,例如 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」 SHA-1 HASH 的前 4 個位元組詞組。

函式

AppGroupMasterKeyIdFromAuthMode

uint8_t AppGroupMasterKeyIdFromAuthMode(
  WeaveAuthMode authMode
)

傳回與驗證模式相關聯的應用程式群組主金鑰 ID。

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 錯誤,系統會傳回使用者可理解的 NULL 結尾 C 字串說明錯誤。

詳細資料
參數
[in] buf
要放置錯誤字串的緩衝區。
[in] bufSize
提供的緩衝區大小 (以位元組為單位)。
[in] err
要說明的錯誤。
傳回
如果說明字串寫入提供的緩衝區中,則為 true。
傳回
如果提供的錯誤不是 Weave 錯誤,則傳回 false。

GenerateWeaveNodeId

NL_DLL_EXPORT WEAVE_ERROR GenerateWeaveNodeId(
  uint64_t & nodeId
)

產生隨機 Weave 節點 ID。

這個函式會在本機產生 64 位元不重複的 Weave 節點 ID。這個函式會使用經過加密處理的隨機資料來源,確保產生的值不重複。請注意,所產生 Weave 節點 ID 的位元 57 將設為 1,表示產生的 Weave 節點 ID 是在本機 (而非全域) 的唯一值。

詳細資料
參數
nodeId
64 位元 Weave 節點 ID 的參照。
傳回值
WEAVE_NO_ERROR
如果 Weave 節點 ID 已成功產生,

GetFibonacciForIndex

uint32_t GetFibonacciForIndex(
  uint32_t index
)

這個函式會為指定的 32 位元索引產生 32 位元的費波那契數。

詳細資料
傳回
32 位元無正負號的 fibonacci 號碼。

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
)

傳回指定金鑰 ID 的對應群組金鑰驗證模式。

IPv6InterfaceIdToWeaveNodeId

uint64_t IPv6InterfaceIdToWeaveNodeId(
  uint64_t interfaceId
)

將 IPv6 位址介面 ID 轉換為 Weave 節點 ID。

為方便測試,系統會將小於或等於 #kMaxAlwaysLocalWeaveNodeId (65535) 的節點 ID 視為「local」,並將通用/本機位元設為零。以便簡化對應 IPv6 位址的字串形式。例如,節點 ID 10 的 ULA 為 FD00:0:1:1::A。

詳細資料
參數
[in] interfaceId
64 位元介面 ID。
傳回
對應的 64 位元 Weave 節點 ID

IsCASEAuthMode

bool IsCASEAuthMode(
  WeaveAuthMode authMode
)

如果驗證模式是以 Weave CASE 通訊協定為基礎,則傳回 true。

IsCertAuthMode

bool IsCertAuthMode(
  WeaveAuthMode authMode
)

如果驗證模式主要是透過與憑證相關聯的私密金鑰擁有,則為「是」。

IsGroupKeyAuthMode

bool IsGroupKeyAuthMode(
  WeaveAuthMode authMode
)

如果驗證模式是以共用群組金鑰的擁有者為基準,則為「true」。

IsPASEAuthMode

bool IsPASEAuthMode(
  WeaveAuthMode authMode
)

如果驗證模式是以 Weave PASE 通訊協定為基礎,則傳回「是」。

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 布料 ID 轉換為 IPv6 ULA 全球 ID。

織布地址的 ULA 全域 ID 是織布的 64 位元布料 ID 最低的 40 位元。

詳細資料
參數
[in] fabricId
Weave 布料 ID。
傳回
以及對應的 IPv6 全域 ID

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 節點 ID 轉換為 IPv6 位址介面 ID。

Weave 節點 ID 是 Universal/Local EUI-64,根據 RFC-3513 將通用/本機位元反轉 (bit 57 將 LSB 計算為 0),藉此轉換成介面 ID。

為方便測試,系統會將小於或等於 #kMaxAlwaysLocalWeaveNodeId (65535) 的節點 ID 視為「local」,並將通用/本機位元設為零。以便簡化對應 IPv6 位址的字串形式。例如,節點 ID 10 的 ULA 為 FD00:0:1:1::A。

詳細資料
參數
[in] nodeId
64 位元 Weave 節點 ID。
傳回
IPv6 介面 ID

最高

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

分鐘

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