Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

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 メッセージ形式。
WeaveSubnetId{
  kWeaveSubnetId_NotSpecified = 0,
  kWeaveSubnetId_PrimaryWiFi = 1,
  kWeaveSubnetId_ThreadAlarm = 2,
  kWeaveSubnetId_WiFiAP = 3,
  kWeaveSubnetId_MobileDevice = 4,
  kWeaveSubnetId_Service = 5,
  kWeaveSubnetId_ThreadMesh = 6
}
列挙型
Weave には、一般的なデバイスの識別されたネットワーク インターフェース用に予約されたサブネット番号があります。
WeaveVendorId 列挙型

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 メッセージ形式。
WeaveSubnetId typedef
enum nl::Weave::WeaveSubnetId
Weave には、一般的なデバイスの識別されたネットワーク インターフェース用に予約されたサブネット番号があります。

Variables

ExchangeMgr
NL_DLL_EXPORT WeaveExchangeManager
FabricState
NL_DLL_EXPORT WeaveFabricState
MessageLayer
NL_DLL_EXPORT WeaveMessageLayer
SecurityMgr
NL_DLL_EXPORT WeaveSecurityManager
WeaveConnection
class NL_DLL_EXPORT
WeaveExchangeManager
class NL_DLL_EXPORT
WeaveMessageLayer
class NL_DLL_EXPORT
gDefaultWRMPConfig = { WEAVE_CONFIG_WRMP_DEFAULT_INITIAL_RETRANS_TIMEOUT, WEAVE_CONFIG_WRMP_DEFAULT_ACTIVE_RETRANS_TIMEOUT, WEAVE_CONFIG_WRMP_DEFAULT_ACK_TIMEOUT, WEAVE_CONFIG_WRMP_DEFAULT_MAX_RETRANS }
const WRMPConfig
kWeaveMsgEncAppKeyDiversifier = { 0xB1, 0x1D, 0xAE, 0x5B }[]
const uint8_t
Weave メッセージ暗号鍵の導出に使用される鍵の多様性。

Functions

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 で終わるエラー文字列を返します。
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 アドレス インターフェース ID を Weave ノード ID に変換します。
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::バインディング

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

nl::Weave::カウンタ

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

nl::Weave::ExchangeContext

このクラスは、2 つ以上のノード間で進行中の会話(ExchangeContext)を表します。

nl::Weave::FabricStateDelegate

この抽象デリゲート クラスは、ファブリック状態の変化を伝えます。

nl::Weave::HostPortList

ホストポート リストの管理と操作を行うには、Weave Service Directory に関連付けられたホストとポートの ID タプルのコンパクトなバイナリ エンコード コレクションです。

nl::Weave::JNIUtils
nl::Weave::MonotonallyIncreasingCounter

単調に増加するカウンタを整数値として管理するためのクラス。

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 識別子の定義。

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

この名前空間には、抽象構文表記 1(ASN.1)を使用するための Weave 内のすべてのインターフェースが含まれています。

nl::Weave::Crypto

この名前空間には、共有暗号をサポートするすべてのインターフェースが Weave に含まれています。

nl::Weave::DeviceLayer
nl::Weave::DeviceManager
nl::Weave::エンコード

この名前空間は、次の関数を提供します。

nl::Weave::Logging

この名前空間には、共有ロギングのサポートのために Weave 内のすべてのインターフェースが含まれています。

nl::Weave::プラットフォーム
nl::Weave::プロフィール

この名前空間には、Weave プロファイル内のすべてのインターフェース(Common と Nest Labs のベンダー固有)が含まれます。

nl::Weave::SecuritySupport
nl::Weave::Stats
nl::Weave::サポート
nl::Weave::システム
nl::Weave::TLV

Weave TLV 形式でエンコードされたデータの処理に関する定義です。

nl::Weave::Warm

この名前空間には、Weave のアドレスとルーティング モジュール(Weave の IP アドレスとルートを設定するためのポータブル モジュール)のインターフェースが含まれています。

列挙型

21

 @21
Properties
kFlagAckPending

送信されるメッセージに対する応答が必要な場合。

kFlagAutoReleaseConnection

Exchange のコンテキストが解放されると、メッセージ暗号鍵が自動的に解放されます。

kFlagAutoReleaseKey

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

kFlagAutoRequestAck

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

kFlagConnectionClosed

このコンテキストがエクスチェンジの起点となります。

kFlagDropAck

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

kFlagMsgRcvdFromPeer

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

このフラグは、これから送信するレスポンス メッセージの確認応答が必要かどうかを判断するためにアプリケーションによって読み取られます。このフラグは、ピアで WRMP を使用しているかどうかを示すこともできます。

kFlagPeerRequestedAck

設定されている場合、返送待ちの確認応答があることを示します。

kFlagResponseExpected

内部とデバッグのみ: 設定されている場合、エクスチェンジ レイヤは確認応答を送信しません。

kFlagUseEphemeralUDPPort

エクスチェンジのコンテキストが解放されると、関連する WeaveConnection が自動的に解放されます。

36

 @36

37

 @37

38

 @38
Properties
kFabricIdDefaultForTest

デフォルトのファブリック ID。テスト目的でのみ使用する必要があります。

39

 @39

証明書の目的または用途を示します。

証明書タイプは、証明書の目的またはアプリケーションを記述するラベルです。証明書タイプは、対応する証明書の属性としてではなく、証明書の構造やコンテキストから導出されます。証明書タイプの列挙には、一般的に使用される証明書アプリケーションを記述する一連の事前定義値が含まれます。デベロッパーは、カスタム証明書や固有のセキュリティ プロパティを持つ証明書が記述されたアプリケーション固有のタイプを使用して、証明書タイプの値の範囲を拡張することもできます。

証明書タイプは、主にアクセス制御ポリシーの実装で使用されます。アプリケーション機能へのアクセスは、リクエスト元が提示する証明書のタイプによって変わります。

Properties
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
Properties
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
Properties
kFabricSecretScope_All

すべてのデバイスは、対応するファブリック シークレットを取得できます。

43

 @43
Properties
kTestKey_AES128CTRSHA1_DataKeyByte

暗号鍵のみを構成するバイト値。テストにのみ使用されます。

kTestKey_AES128CTRSHA1_IntegrityKeyByte

テストにのみ使用される完全性キーを構成するバイト値。

44

 @44

Weave メッセージ暗号化アプリキーの多様化サイズ。

45

 @45

53

 @53

54

 @54
Properties
kWeavePeerDescription_MaxLength

WeaveMessageLayer::GetPeerDescription() から返される文字列の最大文字数(NUL 文字を含む)です。

55

 @55

エンコードされた Weave メッセージのヘッダーに関する定義です。

Properties
kWeaveHeaderFlag_DestNodeId

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

kWeaveHeaderFlag_MsgCounterSyncReq

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

kWeaveHeaderFlag_SourceNodeId

ソースノード ID が Weave メッセージ ヘッダーにあることを示します。

kWeaveHeaderFlag_TunneledData

Weave メッセージ ペイロードがトンネル IP パケットであることを示します。

56

 @56

IEEE EUI-64 識別子のビットフィールドの定義です。

Properties
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 の特別な範囲。

Properties
kMaxAlwaysLocalWeaveNodeId

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

WeaveEncryptionType

 WeaveEncryptionType

Weave メッセージの暗号化タイプ。

Properties
kWeaveEncryptionType_AES128CTRSHA1

AES-128-CTR 暗号化を使用し、HMAC-SHA-1 メッセージ整合性でメッセージを暗号化します。

kWeaveEncryptionType_None

メッセージは暗号化されていません。

WeaveExchangeFlags(WeaveExchangeFlags)

 WeaveExchangeFlags

Weave Exchange ヘッダーフラグ ビット。

Properties
kWeaveExchangeFlag_AckId

現在のメッセージに対して、以前に受信したメッセージの確認応答を設定します。

kWeaveExchangeFlag_Initiator

現在のメッセージがエクスチェンジのイニシエータによって送信されるタイミングを設定します。

kWeaveExchangeFlag_NeedsAck

現在のメッセージが受信者の確認を必要とする場合に設定します。

WeaveExchangeVersion

 WeaveExchangeVersion

Weave Exchange ヘッダーのバージョン。

WeaveMessageFlags

 WeaveMessageFlags

受信または送信 Weave メッセージに関連するフラグ。

ここで定義した値は、WeaveMessageInfo.Flags フィールド内で使用します。

Properties
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 メッセージ形式。

Weave では、Weave メッセージに必要なフレーム形式に基づいて適切なメッセージ バージョンが選択されます。デフォルトのメッセージ バージョンは kWeaveMessageVersion_V1 です。たとえば、Weave Reliable Messaging を使用する場合、バージョンは kWeaveMessageVersion_V2 です。

Properties
kWeaveMessageVersion_Unspecified

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

kWeaveMessageVersion_V1

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

kWeaveMessageVersion_V2

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

WeaveSubnetId

 WeaveSubnetId

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

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

Properties
kWeaveSubnetId_MobileDevice

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

kWeaveSubnetId_NotSpecified

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

kWeaveSubnetId_PrimaryWiFi

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

kWeaveSubnetId_Service

Nest サービス エンドポイントのサブネット ID。

kWeaveSubnetId_ThreadAlarm

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

kWeaveSubnetId_ThreadMesh

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

kWeaveSubnetId_WiFiAP

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

WeaveVendorId

 WeaveVendorId

Typedef

FabricSecret ローテーションのスキーム

uint8_t FabricSecretRotationScheme

FabricSecretScope

uint8_t FabricSecretScope

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

WeaveAuthMode

uint16_t WeaveAuthMode

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

WeaveAuthMode は、Weave メッセージ交換中にピアノードが認証された方法、または認証されるべき方法を記述します。開始のコンテキストでは、アプリは WeaveAuthMode を使用してエクスチェンジに対して目的のピア認証モードを表現します。これにより、目的のモードを実現したり通信に失敗したりするように Weave のセキュリティ レイヤとメッセージ レイヤに指示されます。応答のコンテキストにおいて、WeaveAuthMode は要求側ノード(ピア)が認証された方法を識別します。これにより、応答側のアプリケーションはこの情報に基づいてアクセス制御を適用できます。

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

WeaveAuthMode には、一般的な認証モードを表す定義済みの値のセットが含まれています。これらは鍵合意メカニズム(CASE、PASE、GroupKey など)ごとに分類されます。デベロッパーは、アプリケーション固有のモードを定義して特定の WeaveAuthMode を拡張し、特定の暗号鍵に接続できます。

WeaveEncryptionKey(WeaveEncryptionKey)

union nl::Weave::WeaveEncryptionKey WeaveEncryptionKey

WeaveEncryptionType

enum nl::Weave::WeaveEncryptionType WeaveEncryptionType

Weave メッセージの暗号化タイプ。

WeaveExchangeFlags(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 メッセージ形式。

Weave では、Weave メッセージに必要なフレーム形式に基づいて適切なメッセージ バージョンが選択されます。デフォルトのメッセージ バージョンは kWeaveMessageVersion_V1 です。たとえば、Weave Reliable Messaging を使用する場合、バージョンは kWeaveMessageVersion_V2 です。

WeaveSubnetId

enum nl::Weave::WeaveSubnetId WeaveSubnetId

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

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

Variables

Exchange Manager

NL_DLL_EXPORT WeaveExchangeManager ExchangeMgr

Fabric の状態

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&SHAt の SHA-1 HASH の最初の 4 バイトを表します。

Functions

AppGroupMasterKeyIdFromAuthMode(AppMasterMasterIdIdAuthAuthMode)

uint8_t AppGroupMasterKeyIdFromAuthMode(
  WeaveAuthMode authMode
)

認証モードに関連付けられているアプリケーション グループのマスター鍵 ID を返します。

CASEAuthMode(ケース認証モード)

WeaveAuthMode CASEAuthMode(
  uint8_t certType
)

指定した証明書タイプに対応する CASE 認証モードを返します。

CertTypeFromAuthMode

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
)

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 で終わるエラー文字列を返します。

詳細
パラメータ
[in] buf
エラー文字列が配置されるバッファ。
[in] bufSize
指定したバッファのサイズ(バイト単位)。
[in] err
説明されるエラー。
戻り値
true(指定したバッファに説明文字列が書き込まれている場合)
戻り値
false が 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 ビット フィボナッチ数を生成します。

詳細
戻り値
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
)

グループキー認証モード

WeaveAuthMode GroupKeyAuthMode(
  uint32_t keyId
)

指定されたキー ID に対応するグループキー認証モードを返します。

IPv6InterfaceIdToWeaveNodeId

uint64_t IPv6InterfaceIdToWeaveNodeId(
  uint64_t interfaceId
)

IPv6 アドレス インターフェース ID を Weave ノード ID に変換します。

テストの便宜上、#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(WeaveEncryptionKeyToString)

void WeaveEncryptionKeyToString(
  uint8_t encType,
  const WeaveEncryptionKey & key,
  char *buf,
  size_t bufSize
)

WeaveFabricIdToIPv6GlobalId

uint64_t WeaveFabricIdToIPv6GlobalId(
  uint64_t fabricId
)

Weave ファブリック ID を IPv6 ULA グローバル ID に変換します。

ファブリック アドレスの ULA グローバル ID は、ファブリック ID の 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 ノード ID を IPv6 アドレス インターフェース ID に変換します。

Weave ノード識別子は Universal/Local EUI-64 であり、RFC-3513 に従い、Universal/Local ビットを反転してインターフェース識別子に変換されます(ビット 57 LSB を 0 としてカウント)。

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

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

最大

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

min

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