nl:: Weave
摘要
Typedefs |
|
---|---|
FabricSecretRotationScheme
|
typedefuint8_t
|
FabricSecretScope
|
nl::Weave::FabricSecretScopeuint8_t
識別可擁有及使用布料密鑰的裝置類別。 |
WeaveAuthMode
|
typedefuint16_t
識別對等互連節點的驗證方式。 |
WeaveEncryptionKey
|
typedef |
WeaveEncryptionType
|
typedefenum nl::Weave::WeaveEncryptionType
Weave 訊息的加密類型。 |
WeaveExchangeFlags
|
typedefenum nl::Weave::WeaveExchangeFlags
Weave Exchange 標頭旗標位元。 |
WeaveExchangeVersion
|
typedefenum nl::Weave::WeaveExchangeVersion
Weave Exchange 標頭版本。 |
WeaveMessageFlags
|
typedefenum nl::Weave::WeaveMessageFlags
與內送或外寄 Weave 訊息相關的旗標。 |
WeaveMessageHeader
|
typedefstruct WeaveMessageInfo
|
WeaveMessageVersion
|
typedefenum nl::Weave::WeaveMessageVersion
Weave 訊息格式的版本。 |
WeaveSubnetId
|
typedefenum 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 &
|
Structs |
|
---|---|
nl:: |
|
nl:: |
WRMP 設定。 |
nl:: |
正在進行收發的 Weave 訊息相關資訊。 |
聯合工會 |
|
---|---|
nl:: |
命名空間 |
|
---|---|
nl:: |
此命名空間包含 Weave 中所有與抽象語法 Notation One (ASN.1) 搭配使用的介面。 |
nl:: |
這個命名空間包含 Weave 中的所有介面,提供共用加密編譯支援。 |
nl:: |
|
nl:: |
|
nl:: |
此命名空間提供下列函式: |
nl:: |
這個命名空間包含 Weave 中的所有介面,提供共用記錄支援。 |
nl:: |
|
nl:: |
這個命名空間包括 Weave for Weave 設定檔的所有介面 (一般通用和 Nest Labs 供應商專屬), |
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
以 Weave TLV 格式編碼的資料如何運作。 |
nl:: |
這個命名空間包含 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
@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
|
對等點未通過驗證。 |
@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。 |
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_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 字串說明錯誤。
詳細資料 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
||||||
傳回 |
如果說明字串寫入提供的緩衝區中,則為 true。
|
||||||
傳回 |
如果提供的錯誤不是 Weave 錯誤,則傳回 false。
|
GenerateWeaveNodeId
NL_DLL_EXPORT WEAVE_ERROR GenerateWeaveNodeId( uint64_t & nodeId )
產生隨機 Weave 節點 ID。
這個函式會在本機產生 64 位元不重複的 Weave 節點 ID。這個函式會使用經過加密處理的隨機資料來源,確保產生的值不重複。請注意,所產生 Weave 節點 ID 的位元 57 將設為 1,表示產生的 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。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
對應的 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 位元。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
以及對應的 IPv6 全域 ID
|
WeaveMessageSourceToStr
void WeaveMessageSourceToStr( char *buf, uint32_t bufSize, const WeaveMessageInfo *msgInfo )
WeaveNodeAddrToStr
void WeaveNodeAddrToStr( char *buf, uint32_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, WeaveConnection *con )
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。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
IPv6 介面 ID
|
最高
const _T & max( const _T & a, const _T & b )
分鐘
const _T & min( const _T & a, const _T & b )