nl::Weave

概要

列挙型

@21{
  kFlagConnectionClosed = 0x0002,
  kFlagAutoRequestAck = 0x0004,
  kFlagDropAck = 0x0008,
  kFlagResponseExpected = 0x0010,
  kFlagAckPending = 0x0020,
  kFlagPeerRequestedAck = 0x0040,
  kFlagMsgRcvdFromPeer = 0x0080,
  kFlagAutoReleaseKey = 0x0100,
  kFlagAutoReleaseConnection = 0x0200,
  kFlagUseEphemeralUDPPort = 0x0400
}
enum
@36 enum
@37 enum
@38{
  kFabricIdDefaultForTest = 1ULL
}
enum
@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
}
enum
証明書の目的または用途を識別します。
@40 enum
パスワード ベースの認証プロトコル(
@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
}
enum
@42{
  kFabricSecretScope_All = 0x00
}
enum
@43{
  kTestKey_AES128CTRSHA1_DataKeyByte = 0xAB,
  kTestKey_AES128CTRSHA1_IntegrityKeyByte = 0xBA
}
enum
@44 enum
Weave メッセージ暗号化アプリケーション キーの分散サイズ。
@45 enum
@53 enum
@54{
  kWeavePeerDescription_MaxLength = 100
}
enum
@55{
  kWeaveHeaderFlag_DestNodeId = 0x0100,
  kWeaveHeaderFlag_SourceNodeId = 0x0200,
  kWeaveHeaderFlag_TunneledData = 0x0400,
  kWeaveHeaderFlag_MsgCounterSyncReq = 0x0800
}
enum
エンコードされた 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
}
enum
IEEE EUI-64 識別子のビット フィールド定義
@57{
  kMaxAlwaysLocalWeaveNodeId = 0x000000000000FFFFULL
}
enum
Weave ノード ID の特殊な範囲。
WeaveEncryptionType{
  kWeaveEncryptionType_None = 0,
  kWeaveEncryptionType_AES128CTRSHA1 = 1
}
enum
Weave メッセージの暗号化タイプ。
WeaveExchangeFlags{
  kWeaveExchangeFlag_Initiator = 0x1,
  kWeaveExchangeFlag_AckId = 0x2,
  kWeaveExchangeFlag_NeedsAck = 0x4
}
enum
Weave Exchange ヘッダー フラグビット。
WeaveExchangeVersion enum
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
}
enum
インバウンドまたはアウトバウンドの Weave メッセージに関連付けられたフラグ。
WeaveMessageVersion{
  kWeaveMessageVersion_Unspecified = 0,
  kWeaveMessageVersion_V1 = 1,
  kWeaveMessageVersion_V2 = 2
}
enum
Weave Message 形式のバージョン。
WeaveSubnetId{
  kWeaveSubnetId_NotSpecified = 0,
  kWeaveSubnetId_PrimaryWiFi = 1,
  kWeaveSubnetId_ThreadAlarm = 2,
  kWeaveSubnetId_WiFiAP = 3,
  kWeaveSubnetId_MobileDevice = 4,
  kWeaveSubnetId_Service = 5,
  kWeaveSubnetId_ThreadMesh = 6
}
enum
Weave には、一般的なデバイスの識別ネットワーク インターフェース用に予約済みのサブネット番号があります。
WeaveVendorId enum

Typedef

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 ファブリック ID を IPv6 ULA グローバル ID に変換します。
WeaveMessageSourceToStr(char *buf, uint32_t bufSize, const WeaveMessageInfo *msgInfo)
void
非推奨 代わりに WeaveMessageLayer::GetPeerDescription() を使用してください。
WeaveNodeAddrToStr(char *buf, uint32_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, WeaveConnection *con)
void
非推奨 代わりに WeaveMessageLayer::GetPeerDescription() を使用してください。
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::Weave::Binding

Weave 通信の意図されたターゲットと関連する構成情報をキャプチャします。

nl::Weave::Counter

カウンタを整数値として管理するためのインターフェース。

nl::Weave::ExchangeContext

このクラスは、2 つ以上のノード間の進行中の会話(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 クラスの定義。これは、元の WeaveConnections が結合された 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 Key ID の定義。

nl::Weave::WeaveMessageLayer

他の Weave ノードとの通信を管理する WeaveMessageLayer クラスの定義。

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

Namespace

nl::Weave::ASN1

この名前空間には、Abstract Syntax Notation One(ASN.1)と連携するための Weave 内のすべてのインターフェースが含まれます。

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 の IP アドレスとルートを設定するためのポータブル モジュールである Weave アドレスおよびルーティング モジュールのインターフェースが含まれています。

列挙型

@21

 @21
プロパティ
kFlagAckPending

送信中のメッセージに対するレスポンスが想定されているかどうか。

kFlagAutoReleaseConnection

交換コンテキストが解放されたら、メールの暗号鍵を自動的に解放します。

kFlagAutoReleaseKey

設定されている場合、この交換コンテキストでピアから少なくとも 1 つのメッセージを受信したことを示します。

kFlagAutoRequestAck

このコンテキストは WeaveConnection に関連付けられていました。

kFlagConnectionClosed

このコンテキストがエクスチェンジの開始元です。

kFlagDropAck

設定すると、UDP 経由でメッセージを送信するたびに、確認応答が自動的にリクエストされます。

kFlagMsgRcvdFromPeer

設定されている場合、このエクスチェンジで受信した 1 つ以上のメッセージが確認応答をリクエストしたことを示します。

アプリケーションはこのフラグを読み取って、送信しようとしているレスポンス メッセージの確認応答をリクエストする必要があるかどうかを判断します。このフラグは、ピアが 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

ピアは、Weave アクセス トークン証明書の CASE により認証されます。

kWeaveAuthMode_CASE_AnyCert

ピアは、任意の証明書または不明なタイプの証明書で CASE を使って認証されました。

kWeaveAuthMode_CASE_Device

ピアは、Weave デバイス証明書の CASE を使って認証されました。

kWeaveAuthMode_CASE_GeneralCert

ピアは、一般的な証明書タイプまたは特定のタイプの証明書以外の CASE 文を使って認証されます。

kWeaveAuthMode_CASE_ServiceEndPoint

ピアは、Weave サービス エンドポイント証明書の CASE を使って認証されます。

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

宛先ノード ID が Weave メッセージ ヘッダーに存在することを示します。

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

この値以下の Weave ノード ID は、テストの便宜上ローカルと見なされます。

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

宛先ノード ID が Weave メッセージ ヘッダーに存在することを示します。

kWeaveMessageFlag_DuplicateMessage

メッセージが以前に受信したメッセージと重複していることを示します。

kWeaveMessageFlag_FromInitiator

メッセージの送信元が Weave エクスチェンジのイニシエータであることを示します。

kWeaveMessageFlag_MessageEncoded

Weave メッセージがすでにエンコードされていることを示します。

kWeaveMessageFlag_MsgCounterSyncReq

送信者がピアのメッセージ カウンタの同期をリクエストしていることを示します。

kWeaveMessageFlag_MulticastFromLinkLocal

kWeaveMessageFlag_DefaultMulticastSourceAddress のエイリアスは非推奨になりました。

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 Reliable Messaging を使用する場合のバージョンは kWeaveMessageVersion_V2 です。

プロパティ
kWeaveMessageVersion_Unspecified

メッセージ バージョンが指定されていません。

kWeaveMessageVersion_V1

メッセージ ヘッダー形式バージョン V1。

kWeaveMessageVersion_V2

メッセージ ヘッダー形式バージョン V2。

WeaveSubnetId

 WeaveSubnetId

Weave には、一般的なデバイスの識別ネットワーク インターフェース用に予約済みのサブネット番号があります。

これらの数値は、ここではシンボリック定数に割り当てられます。これらのサブネット番号は、Weave が適切なインターフェースで IPv6 ULA アドレスを構成するために使用されます。

プロパティ
kWeaveSubnetId_MobileDevice

すべてのモバイル デバイスのサブネット ID。

kWeaveSubnetId_NotSpecified

未指定または null 値として予約されています。

kWeaveSubnetId_PrimaryWiFi

Wi-Fi 無線インターフェースのサブネット番号。

kWeaveSubnetId_Service

Nest Service エンドポイントのサブネット ID。

kWeaveSubnetId_ThreadAlarm

Thread アラームの無線インターフェースのサブネット番号。

kWeaveSubnetId_ThreadMesh

Thread メッシュ無線インターフェースのサブネット ID。

kWeaveSubnetId_WiFiAP

ローカル Wi-Fi AP インターフェースのサブネット番号。

WeaveVendorId

 WeaveVendorId

Typedef

FabricSecretRotationScheme

uint8_t FabricSecretRotationScheme

FabricSecretScope

uint8_t FabricSecretScope

ファブリック シークレットを所有および使用できるデバイスのカテゴリを示します。

WeaveAuthMode

uint16_t WeaveAuthMode

ピアノードの認証方法を指定します。

WeaveAuthMode は、Weave のメッセージ交換中にピアノードが認証された、または認証されるべき手段を表します。開始コンテキストでは、アプリケーションは WeaveAuthMode を使用して、交換に望ましいピア認証モードを表します。これにより、Weave のセキュリティ レイヤとメッセージング レイヤに対し、目的のモードを達成するか通信を失敗させるよう指示します。応答のコンテキストでは、WeaveAuthMode がリクエスト元のノード(ピア)の認証方法を特定し、この情報に基づいて応答元のアプリケーションがアクセス制御を適用できるようにします。

受信 Weave メッセージに割り当てられた WeaveAuthMode は、そのメッセージの暗号化に使用された鍵の性質に関係しています。WeaveAuthMode は、鍵が確立されたメカニズムと、鍵確立時の通信側の ID の確認に使用される基準から導出されます。

WeaveAuthMode には、一般的な認証モードを示す事前定義の値のセットが含まれています。これらは、鍵交換メカニズム(CASE、PAASE、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 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 文字列を返します。

詳細
パラメータ
[in] buf
エラー文字列が配置されるバッファ。
[in] bufSize
指定されたバッファのサイズ(バイト単位)。
[in] err
説明するエラー。
戻り値
指定されたバッファに description 文字列が書き込まれた場合は 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)以下のノード ID は「local」と見なされ、Universal/local ビットが 0 に設定されます。これにより、対応する 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 ファブリック ID を IPv6 ULA グローバル ID に変換します。

ファブリック アドレスの ULA グローバル識別子は、ファブリックの 64 ビット ファブリック ID の下位 40 ビットです。

詳細
パラメータ
[in] fabricId
Weave ファブリック ID。
戻り値
マッピングされた 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 ノードの ID を IPv6 アドレスのインターフェース ID に変換します。

Weave のノード識別子は、ユニバーサル/ローカル EUI-64 であり、RFC-3513 に従って、ユニバーサル/ローカル ビット(LSB を 0 としてカウントするビット 57)を反転することによってインターフェース識別子に変換されます。

テストの便宜上、#kMaxAlwaysLocalWeaveNodeId(65535)以下のノード ID は「local」と見なされ、Universal/local ビットが 0 に設定されます。これにより、対応する IPv6 アドレスの文字列表現が簡略化されます。たとえば、ノード識別子 10 の ULA は FD00:0:1:1::A になります。

詳細
パラメータ
[in] nodeId
64 ビットの Weave ノード識別子。
戻り値
IPv6 インターフェース識別子。

最高

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

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