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 メッセージ形式のバージョン。
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 メッセージ形式のバージョン。
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
非推奨: 代わりに 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 ノード識別子を 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

このクラスは、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 が結合され、WeaveMessageLayer によってすべてのデータと接続クロージャが転送される TCPEndPoint のペアを管理します。

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

他の 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

名前空間

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 Address and Routing モジュールのインターフェースが含まれています。これは、Weave の IP アドレスとルートを構成するためのポータブル モジュールです。

列挙型

@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

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() によって返される文字列の最大長(null 文字を含む)。

@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 識別子内の Universal/Local(U/L)ビットのビットマスク。

値 0 は、ID がユニバーサル(グローバル)で管理されていることを示します。値が 1 の場合、ID はローカルで管理されます。

kEUI64_UL_Unversal

ユニバーサルに管理される EUI-64 識別子を示すユニバーサル/ローカル ビット値。

@57

 @57

Weave ノード 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

宛先ノード 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 になります。

プロパティ
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 サービス エンドポイントのサブネット 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、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 メッセージ形式のバージョン。

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
説明するエラー。
戻り値
指定されたバッファに説明文字列が書き込まれた場合は true。
戻り値
指定されたエラーが Weave エラーではなかった場合、false。

GenerateWeaveNodeId

NL_DLL_EXPORT WEAVE_ERROR GenerateWeaveNodeId(
  uint64_t & nodeId
)

ランダムな Weave ノード ID を生成します。

この関数は、ローカルで一意の 64 ビットの Weave ノード ID を生成します。この関数は、暗号的に強いランダム データソースを使用して、生成された値の一意性を保証します。生成された Weave ノード ID のビット 57 は 1 に設定されており、生成された Weave ノード ID がローカル(グローバルではなく)一意であることを示します。

詳細
パラメータ
nodeId
64 ビット Weave ノード ID への参照。
戻り値
WEAVE_NO_ERROR
Weave ノード ID が正常に生成されたかどうか。

GetFibonacciForIndex

uint32_t GetFibonacciForIndex(
  uint32_t index
)

この関数は、指定された 32 ビット インデックスに対して 32 ビットのフィボナッチ数を生成します。

詳細
戻り値
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)以下のノード識別子は「ローカル」と見なし、そのユニバーサル/ローカル ビットを 0 に設定します。これにより、対応する IPv6 アドレスの文字列表現が簡素化されます。たとえば、ノード ID 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 ファブリック 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 ノード識別子を IPv6 アドレス インターフェース識別子に変換します。

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

テストの便宜上、#kMaxAlwaysLocalWeaveNodeId(65535)以下のノード識別子は「ローカル」と見なし、ユニバーサル/ローカル ビットを 0 に設定します。これにより、対応する IPv6 アドレスの文字列表現が簡素化されます。たとえば、ノード ID 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
)