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 枚举
Weave 消息加密应用密钥分流器大小。
@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 节点 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 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 枚举

类型定义符

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 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 地址接口标识符转换为 Weave 节点标识符。
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 织物标识符转换为 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 地址接口标识符。
max(const _T & a, const _T & b)
const _T &
min(const _T & a, const _T & b)
const _T &

nl::Weave::绑定

捕获 Weave 通信和关联配置信息的预期目标。

nl::Weave::计数器

用于管理计数器值的整数值接口。

nl::Weave::ExchangeContext

此类表示两个或多个节点之间的持续对话 (ExchangeContext)。

nl::Weave::FabricStateDelegate

此抽象委托类用于传达结构状态变化。

nl::Weave::HostPortList

用于管理和操纵主机端口列表,这是与 Weave Service Directory 关联的一组主机和端口标识符元组的紧凑编码(二进制编码)。

nl::Weave::JNIUtils
nl::Weave:: MonotonicalIncreaseCounter

用于管理单调递增计数器的整数值的类。

nl::Weave::PersistedCounter

用于管理计数器值的整数类,旨在在每次重新启动时保留。

nl::Weave::WeaveConnection

Weave Connection 类的定义。

nl::Weave::WeaveConnectionTunnel

WeaveConnectionTunnel 类的定义,该类管理一对最初连接 WeaveConnection 的 TCPEndPoint,并且 WeaveMessageLayer 会在这之间转发所有数据和连接关闭。

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

这指定 ExchangeContext 中特定 Weave 消息的 Weave 配置文件和消息类型。

nl::Weave::WeaveExchangeManager

此类用于管理与其他 Weave 节点关联的 ExchangeContext。

nl::Weave::WeaveFabricState

WeaveFabricState 的向前声明。

nl::Weave::WeaveKeyId

Weave 密钥标识符的定义。

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

传递与其他节点发送/接收消息所需的通信状态。

结构体

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

WRMP 配置。

nl::Weave::WeaveMessageInfo

发送或接收过程中的 Weave 消息的相关信息。

联合

nl::Weave::WeaveEncryptionKey

命名空间

nl::Weave::ASN1

此命名空间包括 Weave 中所有使用抽象语法表示法一 (ASN.1) 的接口。

nl::Weave::加密

此命名空间包括 Weave 中的所有接口,用于提供共享加密支持。

nl::Weave::DeviceLayer
nl::Weave::设备管理器
nl::Weave::编码

此命名空间为以下函数提供函数:

nl::Weave::日志记录

此命名空间包括 Weave 中的所有接口,用于提供共享日志记录支持。

nl::Weave::平台
nl::Weave::个人资料

此命名空间包括 Weave 中适用于 Weave 配置文件的所有接口,包括 Common 和 Nest Labs 供应商专用接口。

nl::Weave::SecuritySupport
nl::Weave::统计信息
nl::Weave::支持
nl::Weave::系统
nl::Weave::TLV

使用以 Weave TLV 格式编码的数据的定义。

nl:: Weave:: 暖通

此命名空间包含 Weave 地址和路由模块的接口,Weave 地址和路由模块的便携式模块,用于配置 Weave IP 地址和路由。

枚举

@21

 @21
属性
kFlagAckPending

系统是否针对所发送的邮件返回响应。

kFlagAutoReleaseConnection

释放 Exchange 上下文时,自动释放消息加密密钥。

kFlagAutoReleaseKey

设置后,表示至少有 1 条消息来自此交换上下文中的对等端。

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

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 标识符的位字段定义。

属性
kEUI64_IG_Group

指示群组地址 EUI-64 标识符的单个/群组位值。

kEUI64_IG_Individual

代表单个地址 EUI-64 标识符的单个/组位值。

kEUI64_IG_Mask

EUI-64 标识符中个别/组 (I/G) 位的位掩码。

如果值为 0,则表示 ID 为单个地址。如果值为 1,则表示 ID 是群组地址。

kEUI64_UL_Local

表示本地管理的 EUI-64 标识符的通用/本地位值。

kEUI64_UL_Mask

EUI-64 标识符中的通用/本地 (U/L) 位的位掩码。

值为 0 表示 ID 是通用(全局)管理。如果值为 1,则表示 ID 由本地管理。

kEUI64_UL_Unversal

表示全局管理的 EUI-64 标识符的通用/局部位值。

@57

 @57

特殊范围的 Weave 节点 ID。

属性
kMaxAlwaysLocalWeaveNodeId

为方便测试,将小于或等于此值的编织节点标识符视为本地标识符。

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 Exchange 的发起者。

kWeaveMessageFlag_MessageEncoded

表示 Weave 消息已编码。

kWeaveMessageFlag_MsgCounterSyncReq

表示发件人请求类似应用的消息计数器同步。

kWeaveMessageFlag_MulticastFromLinkLocal

弃用了 kWeaveMessageFlag_DefaultMulticastSourceAddress 的别名。

kWeaveMessageFlag_PeerGroupMsgIdNotSynchronized

表示对等方的群组密钥消息计数器未同步。

kWeaveMessageFlag_PeerRequestedAck

表示消息的发送者请求确认。

kWeaveMessageFlag_RetainBuffer

表示发送后不应释放消息缓冲区。

kWeaveMessageFlag_ReuseMessageId

表示必须重复使用现有消息标识符。

kWeaveMessageFlag_ReuseSourceId

表示必须重复使用现有源节点标识符。

kWeaveMessageFlag_SourceNodeId

表示源节点 ID 出现在 Weave 消息标头中。

kWeaveMessageFlag_TunneledData

表示 Weave 消息载荷是隧道式 IP 数据包。

kWeaveMessageFlag_ViaEphemeralUDPPort

指示消息通过本地临时 UDP 端口发送/接收。

WeaveMessageVersion

 WeaveMessageVersion

Weave Message 格式的版本。

Weave 会根据 Weave 消息所需的帧格式选择适当的消息版本。默认情况下,消息版本为 kWeaveMessageVersion_V1。例如,使用 Weave Reliable Messaging 时,版本为 kWeaveMessageVersion_V2。

属性
kWeaveMessageVersion_Unspecified

未指定消息版本。

kWeaveMessageVersion_V1

邮件标头格式版本 V1。

kWeaveMessageVersion_V2

邮件标头格式版本 V2。

Weave 子网 ID

 WeaveSubnetId

Weave 为典型设备上的一些专用网络接口预留了一些子网编号。

这些数字在此处分配给符号常量。Weave 使用这些子网编号在适当的接口上配置 IPv6 ULA 地址。

属性
kWeaveSubnetId_MobileDevice

所有移动设备的子网标识符。

kWeaveSubnetId_NotSpecified

预留为未指定值或 null 值。

kWeaveSubnetId_PrimaryWiFi

Wi-Fi 电台接口子网编号。

kWeaveSubnetId_Service

Nest Service 端点的子网标识符。

kWeaveSubnetId_ThreadAlarm

Thread 警报无线装置子网编号。

kWeaveSubnetId_ThreadMesh

线程网格无线接口子网标识符。

kWeaveSubnetId_WiFiAP

本地 Wi-Fi AP 接口子网编号。

WeaveVendorId

 WeaveVendorId

类型定义符

FabricSecretRotationScheme

uint8_t FabricSecretRotationScheme

FabricSecretScope

uint8_t FabricSecretScope

标识可以拥有和使用面料密钥的设备类别。

WeaveAuth 模式

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 Reliable Messaging 时,版本为 kWeaveMessageVersion_V2。

Weave 子网 ID

enum nl::Weave::WeaveSubnetId WeaveSubnetId

Weave 为典型设备上的一些专用网络接口预留了一些子网编号。

这些数字在此处分配给符号常量。Weave 使用这些子网编号在适当的接口上配置 IPv6 ULA 地址。

变量

广告交易平台

NL_DLL_EXPORT WeaveExchangeManager ExchangeMgr

FabricState

NL_DLL_EXPORT WeaveFabricState FabricState

消息层

NL_DLL_EXPORT WeaveMessageLayer MessageLayer

安全管理

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 和 AK”短语的 SHA-1 HASH 的前 4 个字节。

函数

AppGroupMasterKeyIdFromAuthMode

uint8_t AppGroupMasterKeyIdFromAuthMode(
  WeaveAuthMode authMode
)

返回与身份验证模式关联的应用组主密钥 ID。

案例身份验证模式

WeaveAuthMode CASEAuthMode(
  uint8_t certType
)

返回给定证书类型的相应 CASE 身份验证模式。

AuthTypeFromAuthMode 类中的方法

uint8_t CertTypeFromAuthMode(
  WeaveAuthMode authMode
)

返回给定身份验证模式的密码源。

解码标头字段

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
)

EncodeHeader 字段

uint16_t EncodeHeaderField(
  const WeaveMessageInfo *msgInfo
)

查找消息名称

const char * FindMessageName(
  uint32_t inProfileId,
  uint8_t inMsgType
)

查找个人资料名称

const char * FindProfileName(
  uint32_t inProfileId
)

格式错误

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 位的 Fibonacci 数字。

详细信息
返回值
32 位无符号 fibonacci 号。

GetMessageName

const char * GetMessageName(
  uint32_t profileId,
  uint8_t msgType
)

GetProfileName

const char * GetProfileName(
  uint32_t profileId
)

获取 RUU16

uint16_t GetRandU16(
  void
)

此函数生成 16 位无符号随机数字。

详细信息
返回值
16 位无符号随机整数。

获取 RUU32

uint32_t GetRandU32(
  void
)

此函数会生成 32 位无符号随机数字。

详细信息
返回值
32 位无符号随机整数。

获取 RUU64

uint64_t GetRandU64(
  void
)

此函数生成 64 位未签名随机数字。

详细信息
返回值
64 位无符号随机整数。

GetRandU8

uint8_t GetRandU8(
  void
)

此函数会生成 8 位无符号随机数字。

详细信息
返回值
8 位无符号随机整数。

GetVendorName

const char * GetVendorName(
  uint16_t vendorId
)

组密钥身份验证模式

WeaveAuthMode GroupKeyAuthMode(
  uint32_t keyId
)

返回给定密钥 ID 的对应组密钥身份验证模式。

IPv6InterfaceIdToWeaveNodeId

uint64_t IPv6InterfaceIdToWeaveNodeId(
  uint64_t interfaceId
)

将 IPv6 地址接口标识符转换为 Weave 节点标识符。

为方便测试,小于或等于 #kMaxAlwaysLocalWeaveNodeId (65535) 的节点标识符会被视为本地标识符,且其通用/本地位设为 0。这简化了相应 IPv6 地址的字符串表示。例如,节点标识符 10 的 ULA 为 FD00:0:1:1::A。

详细信息
参数
[in] interfaceId
64 位接口标识符。
返回值
映射的 64 位 Weave 节点标识符。

IsCASEAuth 模式

bool IsCASEAuthMode(
  WeaveAuthMode authMode
)

如果身份验证模式基于 Weave CASE 协议,则为 true。

IsCertAuth 模式

bool IsCertAuthMode(
  WeaveAuthMode authMode
)

如果身份验证模式基于与证书关联的私钥,则为 True。

组密钥身份验证模式

bool IsGroupKeyAuthMode(
  WeaveAuthMode authMode
)

如果身份验证模式基于拥有共享群组密钥的情况,则为 true。

IsPASEAuth 模式

bool IsPASEAuthMode(
  WeaveAuthMode authMode
)

如果身份验证模式基于 Weave PASE 协议,则为 true。

密码身份验证模式

bool IsPasswordAuthMode(
  WeaveAuthMode authMode
)

如果身份验证模式拥有共享密码,则为 true。

IsTAKEAuth 模式

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
)

PASEAuth 模式

WeaveAuthMode PASEAuthMode(
  uint8_t pwSource
)

返回给定密码来源的相应 PASE 身份验证模式。

密码来源

uint8_t PasswordSourceFromAuthMode(
  WeaveAuthMode authMode
)

返回给定身份验证模式的密码源。

PrintTunnelInfo

void PrintTunnelInfo(
  const WeaveConnectionTunnel & tun,
  const TCPEndPoint & fromEndPoint,
  const TCPEndPoint & toEndPoint,
  const PacketBuffer & data
)

十六进制

char ToHex(
  const uint8_t data
)

十六进制字符串

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 织物标识符转换为 IPv6 ULA 全局标识符。

结构地址的 ULA 全局标识符是结构 64 位结构 ID 的低 40 位。

详细信息
参数
[in] fabricId
Weave 面料标识符。
返回值
映射的 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 地址接口标识符。

编织节点标识符是通用/本地 EUI-64,它们通过反转通用/局部位(将 LSB 计为 0 位)来转换为接口标识符(根据 RFC-3513)。

为方便测试,小于或等于 #kMaxAlwaysLocalWeaveNodeId (65535) 的节点标识符会被视为本地标识符,且其通用/本地位设为 0。这简化了相应 IPv6 地址的字符串表示。例如,节点标识符 10 的 ULA 为 FD00:0:1:1::A。

详细信息
参数
[in] nodeId
64 位 Weave 节点标识符。
返回值
IPv6 接口标识符。

max

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

分钟

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