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 Message 格式的版本。 |
WeaveSubnetId
|
typedefenum nl::Weave::WeaveSubnetId
Weave 有部分保留的子網路號碼,用於一般裝置上的專用網路介面。 |
Variables |
|
---|---|
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
如果驗證模式是根據與憑證相關聯的私密金鑰所擁有,則為「是」。
|
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 全域 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:: |
|
nl:: |
WRMP 設定。 |
nl:: |
接收或接收的 Weave 訊息相關資訊。 |
工會 |
|
---|---|
nl:: |
命名空間 |
|
---|---|
nl:: |
這個命名空間包含 Weave 內所有可使用 Abstract Syntax Notation One (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 Address 和路由模組的介面,這是一種可設定 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
用於識別密碼式驗證通訊協定 (例如
編織紋)
@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
Weave 訊息加密應用程式金鑰簡化器大小。
@45
@45
@53
@53
@54 號
@54
屬性 | |
---|---|
kWeavePeerDescription_MaxLength
|
WeaveMessageLayer::GetPeerDescription() 傳回的字串長度上限 (包括 NUL 字元)。 |
@55
@55
與已編碼的 Weave 訊息標頭相關的定義。
屬性 | |
---|---|
kWeaveHeaderFlag_DestNodeId
|
表示 Weave 訊息標頭中含有目的地節點 ID。 |
kWeaveHeaderFlag_MsgCounterSyncReq
|
表示寄件者要求郵件計數器同步處理。 |
kWeaveHeaderFlag_SourceNodeId
|
表示來源節點 ID 出現在 Weave 郵件標頭中。 |
kWeaveHeaderFlag_TunneledData
|
表示 Weave 訊息酬載是通道 IP 封包。 |
@56
@56
IEEE EUI-64 ID 的位元欄位定義。
屬性 | |
---|---|
kEUI64_IG_Group
|
代表群組地址 EUI-64 識別碼的個別/群組位元值。 |
kEUI64_IG_Individual
|
代表個別地址 EUI-64 識別碼的個別/群組位元值。 |
kEUI64_IG_Mask
|
EUI-64 ID 中的個人/群組 (I/G) 位元位元遮罩。 如果值為 0,表示 ID 是個別地址。如果值為 1,表示 ID 是群組地址。 |
kEUI64_UL_Local
|
通用/本機位元值,表示本機管理的 EUI-64 ID。 |
kEUI64_UL_Mask
|
EUI-64 ID 中的通用/本機 (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
|
表示 Weave 訊息標頭中含有目的地節點 ID。 |
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 Message 格式的版本。
Weave 會根據 Weave 訊息所需的頁框格式,選擇適當的訊息版本。根據預設,訊息版本為 kWeaveMessageVersion_V1。使用 Weave 可靠訊息時,例如 kWeaveMessageVersion_V2。
屬性 | |
---|---|
kWeaveMessageVersion_Unspecified
|
未指定的訊息版本。 |
kWeaveMessageVersion_V1
|
郵件標頭格式 V1。 |
kWeaveMessageVersion_V2
|
郵件標頭格式 V2。 |
WeaveSubnetId
WeaveSubnetId
Weave 有部分保留的子網路號碼,用於一般裝置上的專用網路介面。
這些數字會指派給符號常數。Weave 會透過這些子網路編號,在適當的介面上設定 IPv6 ULA 位址。
屬性 | |
---|---|
kWeaveSubnetId_MobileDevice
|
所有行動裝置的子網路 ID。 |
kWeaveSubnetId_NotSpecified
|
保留為未指定或空值。 |
kWeaveSubnetId_PrimaryWiFi
|
Wi-Fi 無線電介面子網路號碼。 |
kWeaveSubnetId_Service
|
Nest Service 端點的子網路 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,這種模式可以附加至特定加密金鑰。
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 Message 格式的版本。
Weave 會根據 Weave 訊息所需的頁框格式,選擇適當的訊息版本。根據預設,訊息版本為 kWeaveMessageVersion_V1。使用 Weave 可靠訊息時,例如 kWeaveMessageVersion_V2。
WeaveSubnetId
enum nl::Weave::WeaveSubnetId WeaveSubnetId
Weave 有部分保留的子網路號碼,用於一般裝置上的專用網路介面。
這些數字會指派給符號常數。Weave 會透過這些子網路編號,在適當的介面上設定 IPv6 ULA 位址。
Variables
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 位元的 Fibonacci 號碼。
詳細說明 | |
---|---|
傳回 |
32 位元無正負號的傳真號碼。
|
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。
為方便測試,系統會將小於或等於 #kMaxAlwaysWeaveNodeId (65535) 的節點 ID 視為「本機」,並將通用/本機位元設為零。這樣可以簡化對應 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 通訊協定為基礎,則為 True。
IsPasswordAuthMode
bool IsPasswordAuthMode( WeaveAuthMode authMode )
如果驗證模式係由共用密碼而成,則為 True。
IsTAKEAuthMode
bool IsTAKEAuthMode( WeaveAuthMode authMode )
如果驗證模式採用 Weave TAKE 通訊協定,則為 True。
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-64s,依 RFC-3513 反轉通用/本機位元 (位元 57 將 LSB 計算為 0) 來轉換為介面 ID。
為方便測試,系統會將小於或等於 #kMaxAlwaysWeaveNodeId (65535) 的節點 ID 視為「本機」,並將通用/本機位元設為零。這樣可以簡化對應 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 )