nl:: 編織
總結
Typedefs |
|
---|---|
FabricSecretRotationScheme
|
typedefuint8_t
|
FabricSecretScope
|
nl::編織::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
與內送或外寄訊息相關的標記。 |
WeaveMessageHeader
|
typedefstruct WeaveMessageInfo
|
WeaveMessageVersion
|
typedefenum nl::Weave::WeaveMessageVersion
Weave Message 格式的版本。 |
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 位 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:: |
|
nl:: |
WRMP 設定。 |
nl:: |
有關傳送或接收的 Weave 訊息的相關資訊。 |
聯集 |
|
---|---|
nl:: |
命名空間 |
|
---|---|
nl:: |
這個命名空間包含 Weave 中用於處理抽象語法法 (ASN.1) 的所有介面。 |
nl:: |
此命名空間包含 Weave 內所有支援共用加密支援的介面。 |
nl:: |
|
nl:: |
|
nl:: |
此命名空間提供下列功能: |
nl:: |
這個命名空間包含 Weave 內所有可共用共用記錄的介面。 |
nl:: |
|
nl:: |
這個命名空間包含 Weave for Weave 設定檔中的所有介面 (包括 Common 和 Nest Labs 的廠商專屬介面)。 |
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
適用於使用 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
@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
|
對等點未通過驗證。 |
@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 識別碼。 |
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_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 字串,用來說明該錯誤。
詳細資料 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
||||||
傳回 |
true:如果將說明字串寫入提供的緩衝區,
|
||||||
傳回 |
false 如果提供的錯誤不是 Weave 錯誤。
|
產生 WeaveNodeId
NL_DLL_EXPORT WEAVE_ERROR GenerateWeaveNodeId( uint64_t & nodeId )
產生隨機 Weave 節點 ID。
此函式會產生 64 位元的本機專屬 Weave 節點 ID。此函式使用加密高強度隨機資料來源,確保產生的值具有獨特性。請注意,產生的 Weave 節點 ID 的第 57 位元已設為 1,代表產生的 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。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
對應的 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 全域識別碼。
—
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
對應的 IPv6 全域識別碼。
|
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 節點識別碼轉換成 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。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
IPv6 介面 ID。
|
最大值
const _T & max( const _T & a, const _T & b )
分
const _T & min( const _T & a, const _T & b )