nl::編織

總結

列舉

@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 識別碼的位元定義。
@57{
  kMaxAlwaysLocalWeaveNodeId = 0x000000000000FFFFULL
}
列舉
Weave Node 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
}
列舉
與內送或外寄訊息相關的標記。
WeaveMessageVersion{
  kWeaveMessageVersion_Unspecified = 0,
  kWeaveMessageVersion_V1 = 1,
  kWeaveMessageVersion_V2 = 2
}
列舉
Weave Message 格式的版本。
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::編織::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
與內送或外寄訊息相關的標記。
WeaveMessageHeader typedef
WeaveMessageVersion typedef
enum nl::Weave::WeaveMessageVersion
Weave Message 格式的版本。
WeaveSubnetId typedef
enum nl::Weave::WeaveSubnetId
Weave 有一些預留的子網路編號,用來在一般裝置上區分不同的網路介面。

變數

ExchangeMgr
NL_DLL_EXPORT WeaveExchangeManager
FabricState
NL_DLL_EXPORT WeaveFabricState
MessageLayer
NL_DLL_EXPORT WeaveMessageLayer
SecurityMgr
NL_DLL_EXPORT WeaveSecurityManager
WeaveConnection
class NL_DLL_EXPORT
WeaveExchangeManager
class NL_DLL_EXPORT
WeaveMessageLayer
class NL_DLL_EXPORT
gDefaultWRMPConfig = { WEAVE_CONFIG_WRMP_DEFAULT_INITIAL_RETRANS_TIMEOUT, WEAVE_CONFIG_WRMP_DEFAULT_ACTIVE_RETRANS_TIMEOUT, WEAVE_CONFIG_WRMP_DEFAULT_ACK_TIMEOUT, WEAVE_CONFIG_WRMP_DEFAULT_MAX_RETRANS }
const WRMPConfig
kWeaveMsgEncAppKeyDiversifier = { 0xB1, 0x1D, 0xAE, 0x5B }[]
const uint8_t
用於 Weave 訊息加密金鑰衍生的金鑰分割工具。

函式

AppGroupMasterKeyIdFromAuthMode(WeaveAuthMode authMode)
uint8_t
傳回與驗證模式相關聯的應用程式群組主金鑰 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 位 Fibonacci 數。
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
如果驗證模式是由與憑證相關的私密金鑰擁有,則傳回 true。
IsGroupKeyAuthMode(WeaveAuthMode authMode)
bool
如果驗證模式是以共用群組金鑰為基礎,則值為 True。
IsPASEAuthMode(WeaveAuthMode authMode)
bool
如果驗證模式採用 Weave PASE 通訊協定,則傳回 true。
IsPasswordAuthMode(WeaveAuthMode authMode)
bool
如果驗證模式是以共用密碼為準,則傳回 True。
IsTAKEAuthMode(WeaveAuthMode authMode)
bool
如果驗證模式採用 Weave TAKE 通訊協定,則傳回 true。
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 全域識別碼。
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 節點識別碼轉換成 IPv6 位址介面 ID。
max(const _T & a, const _T & b)
const _T &
min(const _T & a, const _T & b)
const _T &

類別

nl::編織::繫結

擷取 Weave 通訊的預期目標和相關設定資訊。

nl::編織::計數器

用於管理計數器值的介面。

nl::編織::ExchangeContext

此類別代表兩個以上節點之間的持續對話 (ExchangeContext)。

nl::編織::FabricStateDelegate

這個抽象委任類別可傳達布料狀態異動。

nl::編織::HostPortList

用於管理及操控主機通訊埠清單,這是由與 Weave Service Directory 相關聯的主機和通訊埠 ID 組合 (由二進位編碼);

nl::編織::JNIUtils
nl::編織::MonotonicalIncrReduceCounter

用來管理單調遞增計數器的類別。

nl::編織::PersistedCounter

用於管理計數器的類別,此整數值是為會在重新啟動後持續保留的整數值。

nl::Weave::WeaveConnection

Weave Connection 類別的定義。

nl::Weave::WeaveConnectionTunnel

WeaveConnectionTunnel 類別的定義,用來管理一對原始的 WeaveConnections 已連線的 TCPEndPoints,WeaveMessageLayer 則會轉送所有資料和連線關閉。

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

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

nl::Weave::WeaveExchangeManager

此類別可用來管理 Exchangeas 與其他 Weave 節點。

nl::編織::WeaveFabricState

轉寄 WeaveFabricState

nl::Weave::WeaveKeyId

Weave Key 識別碼的定義。

nl::Weave::WeaveMessageLayer

WeaveMessageLayer 類別的定義,可管理與其他 Weave 節點之間的通訊。

nl::Weave::WeaveMsgEncryptionKey

內含 Weave 郵件加密金鑰的相關資訊。

nl::Weave::WeaveMsgEncryptionKeyCache

用於刪除 Weveve 訊息加密金鑰的金鑰快取。

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

實作 Weave 個人資料的來路不明的回應伺服器 (伺服器),用於驗證驗證要求和傳送狀態報告,並且提供有關資料狀態和交換管理員的通用資料成員儲存空間。

nl::Weave::WeaveServerDelegateBase

實作 Weave 伺服器委派物件的常見基本類別。

nl::Weave::WeaveSessionKey

內含 Weave 工作階段金鑰的相關資訊。

nl::編織::WeaveSessionState

可收發與其他節點收發所需的通訊狀態。

結構

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

WRMP 設定。

nl::Weave::WeaveMessageInfo

有關傳送或接收的 Weave 訊息的相關資訊。

聯集

nl::Weave::WeaveEncryptionKey

命名空間

nl::編織::ASN1

這個命名空間包含 Weave 中用於處理抽象語法法 (ASN.1) 的所有介面。

nl::編織::Crypto

此命名空間包含 Weave 內所有支援共用加密支援的介面。

nl::編織::裝置層
nl::Weave::DeviceManager
nl::編織::編碼

此命名空間提供下列功能:

nl::編織::記錄

這個命名空間包含 Weave 內所有可共用共用記錄的介面。

nl::編織::平台
nl::編織:: 設定檔

這個命名空間包含 Weave for Weave 設定檔中的所有介面 (包括 Common 和 Nest Labs 的廠商專屬介面)。

nl::Weave::SecuritySupport
nl::編織::統計資料
nl::編織::支援
nl::編織::系統
nl::編織::TLV

適用於使用 Weave TLV 格式編碼的資料定義。

nl::編織::

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

列舉

@21

 @21
屬性
kFlagAckPending

如為正在傳送的郵件預期回覆。

kFlagAutoReleaseConnection

釋出 Exchange 內容後,自動釋出郵件加密金鑰。

kFlagAutoReleaseKey

設定後,即表示系統從這個 Exchange 內容收到同事至少收到一封郵件。

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

對等透過 CASE 和 Weave 裝置憑證進行驗證。

kWeaveAuthMode_CASE_GeneralCert

使用 CASE 與一般或非特定憑證類型進行驗證的對等點。

kWeaveAuthMode_CASE_ServiceEndPoint

使用 CASE 搭配 Weave 服務端點憑證來驗證對等點。

kWeaveAuthMode_NotSpecified

未指定驗證模式。

kWeaveAuthMode_PASE_PairingCode

對等連線使用 PASE 搭配裝置配對碼進行驗證。

kWeaveAuthMode_TAKE_IdentificationKey

使用 TAKE 驗證憑證的對等節點。

kWeaveAuthMode_Unauthenticated

對等點未通過驗證。

@42

 @42
屬性
kFabricSecretScope_All

所有裝置都能具備對應的布料秘密。

@43

 @43
屬性
kTestKey_AES128CTRSHA1_DataKeyByte

建構加密金鑰的位元組值,僅用於測試。

kTestKey_AES128CTRSHA1_IntegrityKeyByte

用來建立完整性金鑰的位元組值,僅用於測試。

@44

 @44

應用程式訊息加密應用程式金鑰多樣性的大小。

@45

 @45

@53

 @53

@54

 @54
屬性
kWeavePeerDescription_MaxLength

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

@55

 @55

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

屬性
kWeaveHeaderFlag_DestNodeId

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

kWeaveHeaderFlag_MsgCounterSyncReq

表示寄件者要求郵件計數器同步處理功能。

kWeaveHeaderFlag_SourceNodeId

表示來源節點 ID 出現在 Weave 訊息標頭中。

kWeaveHeaderFlag_TunneledData

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

@66

 @56

IEEE EUI-64 識別碼的位元定義。

屬性
kEUI64_IG_Group

表示群組地址 EUI-64 識別碼的個別/群組位元值。

kEUI64_IG_Individual

表示個別地址 EUI-64 識別碼的個別/群組位元值。

kEUI64_IG_Mask

在歐盟 I-64 識別碼中的個人/群組 (I/G) 位元位元位元。

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

kEUI64_UL_Local

通用/本機位元值,代表本機管理的 EUI-64 識別碼。

kEUI64_UL_Mask

用於歐盟/本機 (U/L) 位元位元的 Bitmask。

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

kEUI64_UL_Unversal

通用/本機位元值,代表通用管理的 EUI-64 識別碼。

@57

 @57

Weave Node ID 的特殊範圍。

屬性
kMaxAlwaysLocalWeaveNodeId

為方便測試,如果節點 ID 的值小於或等於這個值,就會被視為本機。

WeaveEncryptionEncryption 類型

 WeaveEncryptionType

Weave 訊息的加密類型。

屬性
kWeaveEncryptionType_AES128CTRSHA1

郵件使用 AES-128-CTR 加密,搭配 HMAC-SHA-1 訊息完整性保護。

kWeaveEncryptionType_None

郵件未加密。

WeaveExchangeFlags

 WeaveExchangeFlags

Weave Exchange 標頭旗標。

屬性
kWeaveExchangeFlag_AckId

將目前訊息設為先前收到郵件的確認訊息。

kWeaveExchangeFlag_Initiator

設定由廣告交易平台的啟動者傳送目前訊息的時間。

kWeaveExchangeFlag_NeedsAck

設定目前訊息向收件者要求確認的時機。

WeaveExchange 版本

 WeaveExchangeVersion

Weave Exchange 標頭版本。

WeaveMessageFlags

 WeaveMessageFlags

與內送或外寄訊息相關的標記。

這裡定義的值可用於 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 通訊埠傳送/接收。

WeaveMessage 版本

 WeaveMessageVersion

Weave Message 格式的版本。

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

屬性
kWeaveMessageVersion_Unspecified

未指定訊息版本。

kWeaveMessageVersion_V1

郵件標頭格式第 1 版。

kWeaveMessageVersion_V2

郵件標頭格式第 2 版。

網路子網路 ID

 WeaveSubnetId

Weave 有一些預留的子網路編號,用來在一般裝置上區分不同的網路介面。

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

屬性
kWeaveSubnetId_MobileDevice

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

kWeaveSubnetId_NotSpecified

保留為未指定或空值。

kWeaveSubnetId_PrimaryWiFi

WiFi 無線電介面子網路編號。

kWeaveSubnetId_Service

Nest 服務端點的子網路 ID。

kWeaveSubnetId_ThreadAlarm

Thread 鬧鐘電台介面子網路編號。

kWeaveSubnetId_ThreadMesh

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

kWeaveSubnetId_WiFiAP

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

網路供應商 ID

 WeaveVendorId

Typedefs

FabricSecretRotation 配置

uint8_t FabricSecretRotationScheme

法布里克秘密範圍

uint8_t FabricSecretScope

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

WeaveAuthMode

uint16_t WeaveAuthMode

指出對等節點的驗證方式。

WeaveAuthMode 說明瞭在 Weave 訊息交換過程中,對等節點已經過或應進行驗證的途徑。在啟動情境中,應用程式會使用 WeaveAuthMode 代表交換作業所需的對等互連驗證模式,藉此指示 Weave 安全性和訊息層達到所需模式或導致通訊失敗。在回應內容中,WeaveAuthMode 可識別要求節點 (對等點) 的驗證方式,讓回應應用程式根據這項資訊強制執行存取權控管。

指派給收到的 Weave 訊息的 WeaveAuthMode 與用來加密該訊息的金鑰本質有關。WeaveAuthMode 來自建立金鑰的機制,以及在建立金鑰時驗證通訊方身分的條件。

WeaveAuthMode 包含一組預先定義的值,用來說明常見的驗證模式。這些金鑰是按照主要協議機制 (CASE、PASE、GroupKey 等) 細分。開發人員可以定義特定的應用程式模式來擴充 WeaveAuthMode,進而附加至特定加密金鑰。

WeaveEncryptionKey 金鑰

union nl::Weave::WeaveEncryptionKey WeaveEncryptionKey

WeaveEncryptionEncryption 類型

enum nl::Weave::WeaveEncryptionType WeaveEncryptionType

Weave 訊息的加密類型。

WeaveExchangeFlags

enum nl::Weave::WeaveExchangeFlags WeaveExchangeFlags

Weave Exchange 標頭旗標。

WeaveExchange 版本

enum nl::Weave::WeaveExchangeVersion WeaveExchangeVersion

Weave Exchange 標頭版本。

WeaveMessageFlags

enum nl::Weave::WeaveMessageFlags WeaveMessageFlags

與內送或外寄訊息相關的標記。

這裡定義的值可用於 WeaveMessageInfo.Flags 欄位中。

WeaveMessageHeader

struct WeaveMessageInfo WeaveMessageHeader

WeaveMessage 版本

enum nl::Weave::WeaveMessageVersion WeaveMessageVersion

Weave Message 格式的版本。

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

網路子網路 ID

enum nl::Weave::WeaveSubnetId WeaveSubnetId

Weave 有一些預留的子網路編號,用來在一般裝置上區分不同的網路介面。

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

變數

交易所

NL_DLL_EXPORT WeaveExchangeManager ExchangeMgr

法布里奇州

NL_DLL_EXPORT WeaveFabricState FabricState

郵件圖層

NL_DLL_EXPORT WeaveMessageLayer MessageLayer

安全性

NL_DLL_EXPORT WeaveSecurityManager SecurityMgr

WeaveConnection 連線

class NL_DLL_EXPORT WeaveConnection

WeaveExchange 經理

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 和 AK」詞組 SHA-1 HASH 的前 4 個位元組。

函式

AppGroupMasterKeyIdFromAuthMode

uint8_t AppGroupMasterKeyIdFromAuthMode(
  WeaveAuthMode authMode
)

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

CASEAuthMode

WeaveAuthMode CASEAuthMode(
  uint8_t certType
)

傳回指定憑證類型的相應 CASE 驗證模式。

特定類型寄件者驗證模式

uint8_t CertTypeFromAuthMode(
  WeaveAuthMode authMode
)

傳回指定驗證模式的密碼來源。

解碼標頭欄位

void 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
)

編碼標頭欄位

uint16_t EncodeHeaderField(
  const WeaveMessageInfo *msgInfo
)

尋找訊息名稱

const char * FindMessageName(
  uint32_t inProfileId,
  uint8_t inMsgType
)

尋找設定檔名稱

const char * FindProfileName(
  uint32_t inProfileId
)

格式化 WeaveError

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

假設有 Weave 錯誤,會傳回一個使用者可理解的 NULL 結尾 C 字串,用來說明該錯誤。

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

產生 WeaveNodeId

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。

取得 FibonacciForIndex

uint32_t GetFibonacciForIndex(
  uint32_t index
)

此函數為指定的 32 位索引生成 32 位 Fibonacci 數。

詳細資料
傳回
32 位元未簽署的纖維。

取得訊息名稱

const char * GetMessageName(
  uint32_t profileId,
  uint8_t msgType
)

取得設定檔名稱

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 位元不帶正負號隨機整數。

取得供應商名稱

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)的數據識符被為“#39;local'”,它們的通用/本地位為零。如此可以簡化對應 IPv6 位址的字串表示方式。舉例來說,節點 ID 10 的 ULA 應為 FD00:0:1:1::A。

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

支援驗證模式

bool IsCASEAuthMode(
  WeaveAuthMode authMode
)

如果驗證模式採用 Weave CASE 通訊協定,則傳回 true。

驗證模式

bool IsCertAuthMode(
  WeaveAuthMode authMode
)

如果驗證模式是由與憑證相關的私密金鑰擁有,則傳回 true。

是群組金鑰驗證模式

bool IsGroupKeyAuthMode(
  WeaveAuthMode authMode
)

如果驗證模式是以共用群組金鑰為基礎,則值為 True。

是方法

bool IsPASEAuthMode(
  WeaveAuthMode authMode
)

如果驗證模式採用 Weave PASE 通訊協定,則傳回 true。

是密碼驗證模式

bool IsPasswordAuthMode(
  WeaveAuthMode authMode
)

如果驗證模式是以共用密碼為準,則傳回 True。

.ISKEAuthMode

bool IsTAKEAuthMode(
  WeaveAuthMode authMode
)

如果驗證模式採用 Weave TAKE 通訊協定,則傳回 true。

WWMPControlMessage

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
)

PASEAuthMode

WeaveAuthMode PASEAuthMode(
  uint8_t pwSource
)

傳回指定密碼來源的對應 PASE 驗證模式。

密碼來源寄件者驗證模式

uint8_t PasswordSourceFromAuthMode(
  WeaveAuthMode authMode
)

傳回指定驗證模式的密碼來源。

PrintTunnel 資訊

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
)

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 全域識別碼。

詳細資料
參數
[in] fabricId
Weave 織布 ID。
傳回
對應的 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 位址介面 ID。

Weave 節點 ID 是 Universal/Local EUI-64,根據 RFC-3513 對通用/本機位元進行轉換即可轉換為介面 ID (第 57 位元將 LSB 計算為 0)。

作為檢測的便利性,小於或等於 #kMaxAlwaysLocalWeaveNodeId (65535)的數據識符被為“#39;local'”,它們的通用/本地位為零。如此可以簡化對應 IPv6 位址的字串表示方式。舉例來說,節點 ID 10 的 ULA 應為 FD00:0:1:1::A。

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

最大值

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

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