nl:: 编织
摘要
类型定义符 |
|
---|---|
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 为典型设备上的一些专用网络接口预留了一些子网编号。 |
变量 |
|
---|---|
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:: |
|
nl:: |
WRMP 配置。 |
nl:: |
发送或接收过程中的 Weave 消息的相关信息。 |
联合 |
|
---|---|
nl:: |
命名空间 |
|
---|---|
nl:: |
此命名空间包括 Weave 中所有使用抽象语法表示法一 (ASN.1) 的接口。 |
nl:: |
此命名空间包括 Weave 中的所有接口,用于提供共享加密支持。 |
nl:: |
|
nl:: |
|
nl:: |
此命名空间为以下函数提供函数: |
nl:: |
此命名空间包括 Weave 中的所有接口,用于提供共享日志记录支持。 |
nl:: |
|
nl:: |
此命名空间包括 Weave 中适用于 Weave 配置文件的所有接口,包括 Common 和 Nest Labs 供应商专用接口。 |
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
使用以 Weave TLV 格式编码的数据的定义。 |
nl:: |
此命名空间包含 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
@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
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 标识符的通用/局部位值。 |
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_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 字符串来描述错误。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
||||||
返回值 |
如果将说明字符串写入提供的缓冲区,则为 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 位无符号 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。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
映射的 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 位。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
映射的 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 地址接口标识符。
编织节点标识符是通用/本地 EUI-64,它们通过反转通用/局部位(将 LSB 计为 0 位)来转换为接口标识符(根据 RFC-3513)。
为方便测试,小于或等于 #kMaxAlwaysLocalWeaveNodeId (65535) 的节点标识符会被视为本地标识符,且其通用/本地位设为 0。这简化了相应 IPv6 地址的字符串表示。例如,节点标识符 10
的 ULA 为 FD00:0
:1:1::A。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
IPv6 接口标识符。
|
max
const _T & max( const _T & a, const _T & b )
分钟
const _T & min( const _T & a, const _T & b )