nl::Weave

摘要

枚举

@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 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
}
枚举
与入站或出站 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 位的斐波那契数。
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::Binding

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

nl::Weave::Counter

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

nl::Weave::ExchangeContext

此类表示两个或多个节点之间正在进行的对话 (ExchangeContext)。

nl::Weave::FabricStateDelegate

此抽象委托类可传达结构脉络状态变化。

nl::Weave::HostPortList

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

nl::Weave::JNIUtils
nl::Weave::MonotonicallyIncreasingCounter

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

nl::Weave::PersistedCounter

以整数值形式管理计数器的类,这些值会在重新启动后保留。

nl::Weave::WeaveConnection

Weave Connection 类的定义。

nl::Weave::WeaveConnectionTunnel

WeaveConnectionTunnel 类的定义,该类管理一对 TCPEndPoint,它们的原始 WeaveConnection 已耦合,WeaveMessageLayer 转发所有数据和连接关闭。

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

此参数用于指定 ExchangeContext 中特定 Weave 邮件的 Weave 配置文件和邮件类型。

nl::Weave::WeaveExchangeManager

此类用于管理与其他 Weave 节点的 ExchangeContexts。

nl::Weave::WeaveFabricState

前向声明 WeaveFabricState

nl::Weave::WeaveKeyId

Weave Key 标识符的定义。

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 中的所有接口,可与 Abstract Syntax Notation One (ASN.1) 搭配使用。

nl::Weave::Crypto

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

nl::Weave::DeviceLayer
nl::Weave::DeviceManager
nl::Weave::Encoding

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

nl::Weave::Logging

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

nl::Weave::Platform
nl::Weave::Profiles

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

nl::Weave::SecuritySupport
nl::Weave::Stats
nl::Weave::Support
nl::Weave::System
nl::Weave::TLV

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

nl::Weave::Warm

此命名空间包含 Weave 地址和路由模块的接口,Weave 地址和路由模块是用于配置 Weave IP 地址和路由的可移植模块。

枚举

@21 岁

 @21
属性
kFlagAckPending

正在发送的消息应收到响应。

kFlagAutoReleaseConnection

当交换上下文被释放后,自动释放消息加密密钥。

kFlagAutoReleaseKey

如果设置,就表示至少已针对此广告交易平台上下文收到来自对等方的一条消息。

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

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

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 Node ID 的特殊范围。

属性
kMaxAlwaysLocalWeaveNodeId

为方便测试,小于或等于此值的 Weave 节点标识符会被视为本地节点。

WeaveEncryptionType

 WeaveEncryptionType

Weave 邮件的加密类型。

属性
kWeaveEncryptionType_AES128CTRSHA1

消息使用 HMAC-SHA-1 消息完整性的 AES-128-CTR 加密技术进行了加密。

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_DefaultMulticastSourceAddress 别名。

kWeaveMessageFlag_PeerGroupMsgIdNotSynchronized

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

kWeaveMessageFlag_PeerRequestedAck

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

kWeaveMessageFlag_RetainBuffer

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

kWeaveMessageFlag_ReuseMessageId

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

kWeaveMessageFlag_ReuseSourceId

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

kWeaveMessageFlag_SourceNodeId

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

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。

WeaveSubnetId

 WeaveSubnetId

Weave 为典型设备上的区分网络接口提供了一些预留子网编号。

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

属性
kWeaveSubnetId_MobileDevice

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

kWeaveSubnetId_NotSpecified

预留为未指定值或 null 值。

kWeaveSubnetId_PrimaryWiFi

Wi-Fi 无线接口子网编号。

kWeaveSubnetId_Service

Nest 服务端点的子网标识符。

kWeaveSubnetId_ThreadAlarm

线程警报无线接口子网编号。

kWeaveSubnetId_ThreadMesh

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

kWeaveSubnetId_WiFiAP

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

WeaveVendorId

 WeaveVendorId

类型定义符

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 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 哈希的前 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 字符串来描述错误。

详细信息
参数
[in] buf
要放置错误字符串的缓冲区。
[in] bufSize
提供的缓冲区的大小(以字节为单位)。
[in] err
要描述的错误。
返回值
如果说明字符串已写入提供的缓冲区,则为 true。
返回值
false 如果提供的错误不是 Weave 错误。

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 位的斐波那契数。

详细信息
返回值
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 地址接口标识符转换为 Weave 节点标识符。

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

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

IsCASEAuthMode

bool IsCASEAuthMode(
  WeaveAuthMode authMode
)

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

IsCertAuthMode

bool IsCertAuthMode(
  WeaveAuthMode authMode
)

如果身份验证模式取决于拥有与证书关联的私钥,则为 true。

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 织物标识符转换为 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 地址接口标识符。

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

为方便测试,小于或等于 #kMaxAlwaysLocalWeaveNodeId (65535) 的节点标识符会被视为“本地”,并会将其通用/本地位设置为零。这简化了相应 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
)