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.
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 : перечисление

Typedefs

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
Возвращает идентификатор главного ключа группы приложений, связанный с режимом аутентификации.
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 возвращает человекочитаемую C-строку с завершающим символом NULL, описывающую ошибку.
GenerateWeaveNodeId(uint64_t & nodeId)
NL_DLL_EXPORT WEAVE_ERROR
Сгенерируйте случайный идентификатор узла Weave.
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
Возвращает соответствующий режим аутентификации ключа группы для заданного идентификатора ключа.
IPv6InterfaceIdToWeaveNodeId(uint64_t interfaceId)
uint64_t
Преобразует идентификатор интерфейса IPv6 в идентификатор узла Weave.
IsCASEAuthMode(WeaveAuthMode authMode)
bool
Возвращает значение "истина", если режим аутентификации основан на протоколе Weave CASE.
IsCertAuthMode(WeaveAuthMode authMode)
bool
True, если режим аутентификации основан на наличии закрытого ключа, связанного с сертификатом.
IsGroupKeyAuthMode(WeaveAuthMode authMode)
bool
True, если режим аутентификации основан на наличии общего группового ключа.
IsPASEAuthMode(WeaveAuthMode authMode)
bool
Значение "истина", если режим аутентификации основан на протоколе Weave PASE.
IsPasswordAuthMode(WeaveAuthMode authMode)
bool
Значение True, если режим аутентификации основан на наличии общего пароля.
IsTAKEAuthMode(WeaveAuthMode authMode)
bool
Возвращает значение "истина", если режим аутентификации основан на протоколе Weave TAKE.
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 Fabric в глобальный идентификатор 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

Этот класс представляет текущий разговор (ExchangeContext) между двумя или более узлами.

nl::Weave::FabricStateDelegate

Этот абстрактный класс делегата передает изменения состояния Fabric.

nl::Weave::HostPortList

Для управления и манипулирования списком портов хоста, компактной коллекцией кортежей идентификаторов хоста и портов в двоичной кодировке, связанных с каталогом служб Weave.

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

Класс для управления монотонно возрастающим счетчиком в виде целочисленного значения.

nl::Weave::PersistedCounter

Класс для управления счетчиком в виде целого числа, которое сохраняется после перезагрузки.

nl::Weave::WeaveConnection

Определение класса Weave Connection.

nl::Weave::WeaveConnectionTunnel

Определение класса WeaveConnectionTunnel, который управляет парой TCPEndPoints, чьи исходные WeaveConnections были соединены и между которыми WeaveMessageLayer пересылает все данные и закрытия соединений.

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

Указывает профиль и тип сообщения Weave в определенном ExchangeContext.

nl::Weave::WeaveExchangeManager

Этот класс используется для управления ExchangeContexts с другими узлами Weave.

nl::Weave::WeaveFabricState

Предварительное объявление WeaveFabricState.

nl::Weave::WeaveKeyId

Определение идентификатора ключа Weave.

nl::Weave::WeaveMessageLayer

Определение класса WeaveMessageLayer, который управляет взаимодействием с другими узлами Weave.

nl::Weave::WeaveMsgEncryptionKey

Содержит информацию о ключе шифрования сообщений Weave.

nl::Weave::WeaveMsgEncryptionKeyCache

Кэш ключей для ключей шифрования сообщений Weave.

nl::Weave::WeaveSecurityManager
nl::Weave::WeaveServerBase

Общий базовый объект для реализации ответчиков (серверов) профиля Weave, не согласованных с получателем, который инкапсулирует проверку аутентифицированных запросов и отправку отчетов о состоянии, а также предоставляет общее хранилище элементов данных для состояния структуры и менеджера обмена.

nl::Weave::WeaveServerDelegateBase

Общий базовый класс для реализации объектов делегата сервера Weave.

nl::Weave::WeaveSessionKey

Содержит информацию о сеансовом ключе Weave.

nl::Weave::WeaveSessionState

Передает состояние связи, необходимое для отправки и получения сообщений с другого узла.

Структуры

nl::Weave::JNILibraryMethod
nl::Weave::WRMPConfig

Конфигурация WRMP.

nl::Weave::WeaveMessageInfo

Информация о сообщении Weave, которое отправляется или принимается.

Профсоюзы

nl::Weave::WeaveEncryptionKey

Пространства имен

nl::Weave::ASN1

Это пространство имен включает все интерфейсы Weave для работы с нотацией абстрактного синтаксиса 1 (ASN.1).

nl::Weave::Crypto

Это пространство имен включает все интерфейсы в Weave для поддержки общей криптографии.

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

В этом пространстве имен есть функции для:

nl::Weave::Logging

Это пространство имен включает все интерфейсы Weave для поддержки общего ведения журналов.

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

Это пространство имен включает все интерфейсы в Weave для профилей Weave, как общие, так и специфичные для поставщика Nest Labs.

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

Определения для работы с данными, закодированными в формате TLV Weave.

nl::Weave::Warm

Это пространство имен включает интерфейсы для модуля адресов и маршрутизации Weave – переносимого модуля для настройки IP-адресов и маршрутов Weave.

Перечисления

@21

 @21
Свойства
kFlagAckPending

Если на отправляемое письмо ожидается ответ.

kFlagAutoReleaseConnection

Автоматически освобождать ключ шифрования сообщения при освобождении контекста обмена.

kFlagAutoReleaseKey

Если задано, означает, что в этом контексте обмена от другого устройства было получено хотя бы одно сообщение.

kFlagAutoRequestAck

Этот контекст был связан с WeaveConnection.

kFlagConnectionClosed

Этот контекст является инициатором обмена.

kFlagDropAck

Если этот параметр задан, при отправке сообщения по протоколу UDP автоматически запрашивается подтверждение.

kFlagMsgRcvdFromPeer

Если значение задано, это указывает на то, что по крайней мере для одного сообщения, полученного в рамках этого обмена, было запрошено подтверждение.

Приложение считывает этот флаг, чтобы определить, нужно ли запрашивать подтверждение для отправляемого ответного сообщения. Этот флаг также может указывать, использует ли одноранговый узел WRMP.

kFlagPeerRequestedAck

Если задано, означает, что нужно отправить подтверждение.

kFlagResponseExpected

Только для внутреннего использования и отладки: если задано, уровень обмена не отправляет подтверждение.

kFlagUseEphemeralUDPPort

Автоматически освобождать связанный объект WeaveConnection при освобождении контекста обмена.

@36

 @36

@37

 @37

@38

 @38
Свойства
kFabricIdDefaultForTest

Идентификатор сети по умолчанию, который следует использовать только для тестирования.

@39

 @39

Определяет назначение или применение сертификата.

Тип сертификата – это ярлык, описывающий назначение или применение сертификата. Типы сертификатов не передаются как атрибуты соответствующих сертификатов, а определяются на основе структуры сертификата и/или контекста, в котором он используется. Перечисление типов сертификатов включает набор предопределенных значений, описывающих часто используемые приложения сертификатов. Разработчики также могут расширить диапазон значений типа сертификата, добавив типы, относящиеся к конкретному приложению и описывающие специальные сертификаты или сертификаты с уникальными свойствами безопасности.

Типы сертификатов в основном используются при реализации правил управления доступом, когда доступ к функциям приложения зависит от типа сертификата, предоставленного запрашивающей стороной.

Свойства
kCertType_AccessToken

Сертификат токена доступа Weave.

kCertType_AppDefinedBase

Типы сертификатов, относящиеся к приложениям, должны иметь значения, которые больше или равны этому значению.

kCertType_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

Максимальная длина строки (включая символ NUL), возвращаемой методом WeaveMessageLayer::GetPeerDescription().

@55

 @55

Определения, относящиеся к заголовку закодированного сообщения Weave.

Свойства
kWeaveHeaderFlag_DestNodeId

Указывает, что идентификатор целевого узла присутствует в заголовке сообщения Weave.

kWeaveHeaderFlag_MsgCounterSyncReq

Указывает, что отправитель запрашивает синхронизацию счетчика сообщений.

kWeaveHeaderFlag_SourceNodeId

Указывает, что идентификатор исходного узла присутствует в заголовке сообщения Weave.

kWeaveHeaderFlag_TunneledData

Указывает, что полезная нагрузка сообщения Weave является туннелированным IP-пакетом.

@56

 @56

Определения битовых полей для идентификаторов IEEE EUI-64.

Свойства
kEUI64_IG_Group

Значение бита "Индивидуальный/групповой", указывающее на идентификатор EUI-64 группового адреса.

kEUI64_IG_Individual

Бит Individual/Group (Индивидуальный/Групповой), указывающий на индивидуальный идентификатор адреса EUI-64.

kEUI64_IG_Mask

Битовая маска для бита Individual/Group (I/G) в идентификаторе EUI-64.

Значение 0 указывает на то, что идентификатор является отдельным адресом. Значение 1 указывает, что идентификатор является групповым адресом.

kEUI64_UL_Local

Значение бита Universal/Local, указывающее на локально администрируемый идентификатор EUI-64.

kEUI64_UL_Mask

Битовая маска для бита Universal/Local (U/L) в идентификаторе EUI-64.

Значение 0 указывает на то, что идентификатор управляется глобально. Значение 1 указывает на то, что идентификатор администрируется локально.

kEUI64_UL_Unversal

Значение универсального/локального бита, указывающее на универсально управляемый идентификатор EUI-64.

@57

 @57

Специальные диапазоны идентификаторов узлов Weave.

Свойства
kMaxAlwaysLocalWeaveNodeId

Идентификаторы узлов Weave, которые меньше этого значения или равны ему, считаются локальными для удобства тестирования.

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.

kWeaveMessageFlag_DuplicateMessage

Указывает, что письмо является копией ранее полученного письма.

kWeaveMessageFlag_FromInitiator

Указывает, что источником сообщения является инициатор обмена Weave.

kWeaveMessageFlag_MessageEncoded

Указывает, что сообщение Weave уже закодировано.

kWeaveMessageFlag_MsgCounterSyncReq

Указывает, что отправитель запрашивает синхронизацию счетчика сообщений собеседника.

kWeaveMessageFlag_MulticastFromLinkLocal

Устаревший псевдоним для kWeaveMessageFlag_DefaultMulticastSourceAddress.

kWeaveMessageFlag_PeerGroupMsgIdNotSynchronized

Указывает, что счетчик сообщений с ключом группы у собеседника не синхронизирован.

kWeaveMessageFlag_PeerRequestedAck

Указывает, что отправитель сообщения запросил подтверждение.

kWeaveMessageFlag_RetainBuffer

Указывает, что буфер сообщений не должен быть освобожден после отправки.

kWeaveMessageFlag_ReuseMessageId

Указывает, что существующий идентификатор сообщения должен использоваться повторно.

kWeaveMessageFlag_ReuseSourceId

Указывает, что необходимо повторно использовать существующий идентификатор исходного узла.

kWeaveMessageFlag_SourceNodeId

Указывает, что идентификатор исходного узла присутствует в заголовке сообщения Weave.

kWeaveMessageFlag_TunneledData

Указывает, что полезная нагрузка сообщения Weave является туннелированным IP-пакетом.

kWeaveMessageFlag_ViaEphemeralUDPPort

Указывает, что сообщение отправляется или принимается через локальный эфемерный UDP-порт.

WeaveMessageVersion

 WeaveMessageVersion

Версия формата Weave Message.

Weave выберет подходящую версию сообщения на основе формата фрейма, необходимого для сообщения Weave. По умолчанию используется версия kWeaveMessageVersion_V1. Например, при использовании Weave Reliable Messaging версия будет kWeaveMessageVersion_V2.

Свойства
kWeaveMessageVersion_Unspecified

Неуказанная версия сообщения.

kWeaveMessageVersion_V1

Формат заголовка сообщения версии 1.

kWeaveMessageVersion_V2

Формат заголовка письма версии 2.

WeaveSubnetId

 WeaveSubnetId

В Weave есть зарезервированные номера подсетей для определенных сетевых интерфейсов на типичных устройствах.

Эти числа присваиваются здесь символическим константам. Эти номера подсетей используются Weave для настройки адресов IPv6 ULA на соответствующих интерфейсах.

Свойства
kWeaveSubnetId_MobileDevice

Идентификатор подсети для всех мобильных устройств.

kWeaveSubnetId_NotSpecified

Зарезервировано как неопределенное или нулевое значение.

kWeaveSubnetId_PrimaryWiFi

Номер подсети интерфейса Wi-Fi.

kWeaveSubnetId_Service

Идентификатор подсети для конечных точек сервиса Nest.

kWeaveSubnetId_ThreadAlarm

Номер подсети радиоинтерфейса сигнализации Thread.

kWeaveSubnetId_ThreadMesh

Идентификатор подсети радиоинтерфейса ячеистой сети Thread.

kWeaveSubnetId_WiFiAP

Номер подсети интерфейса локальной точки доступа Wi-Fi.

WeaveVendorId

 WeaveVendorId

Typedefs

FabricSecretRotationScheme

uint8_t FabricSecretRotationScheme

FabricSecretScope

uint8_t FabricSecretScope

Определяет категорию устройств, которые могут иметь и использовать секрет Fabric.

WeaveAuthMode

uint16_t WeaveAuthMode

Определяет, как аутентифицируется узел.

WeaveAuthMode описывает способ, с помощью которого одноранговый узел был или должен быть аутентифицирован во время обмена сообщениями Weave. В контексте инициации приложения используют WeaveAuthMode, чтобы выразить желаемый режим аутентификации одноранговых узлов для обмена, тем самым инструктируя уровни безопасности и обмена сообщениями Weave для достижения желаемого режима или сбоя связи. В контексте ответа WeaveAuthMode определяет, как был аутентифицирован запрашивающий узел (клиент), позволяя отвечающему приложению применять средства контроля доступа на основе этой информации.

Режим WeaveAuthMode, назначенный входящему сообщению Weave, связан с типом ключа, который использовался для шифрования этого сообщения. WeaveAuthMode зависит от механизма, с помощью которого был создан ключ, и критериев, используемых для проверки идентификационных данных взаимодействующих сторон во время создания ключа.

WeaveAuthMode включает набор стандартных значений, описывающих распространенные режимы аутентификации. Они разбиты по механизмам согласования ключей (CASE, PASE, GroupKey и т. д.). Разработчики могут расширить WeaveAuthMode, определив режимы для конкретных приложений, которые они могут прикрепить к определенным ключам шифрования.

WeaveEncryptionKey

union nl::Weave::WeaveEncryptionKey WeaveEncryptionKey

WeaveEncryptionType

enum nl::Weave::WeaveEncryptionType WeaveEncryptionType

Типы шифрования для сообщения Weave.

WeaveExchangeFlags

enum nl::Weave::WeaveExchangeFlags WeaveExchangeFlags

Биты флага заголовка Weave Exchange.

WeaveExchangeVersion

enum nl::Weave::WeaveExchangeVersion WeaveExchangeVersion

Версия заголовка Weave Exchange.

WeaveMessageFlags

enum nl::Weave::WeaveMessageFlags WeaveMessageFlags

Пометки, связанные с входящим или исходящим сообщением Weave.

Значения, определенные здесь, используются в поле WeaveMessageInfo.Flags.

WeaveMessageHeader

struct WeaveMessageInfo WeaveMessageHeader

WeaveMessageVersion

enum nl::Weave::WeaveMessageVersion WeaveMessageVersion

Версия формата Weave Message.

Weave выберет подходящую версию сообщения в зависимости от формата кадра, необходимого для сообщения Weave. По умолчанию версия сообщения — kWeaveMessageVersion_V1. Например, при использовании Weave Reliable Messaging версия будет kWeaveMessageVersion_V2.

WeaveSubnetId

enum nl::Weave::WeaveSubnetId WeaveSubnetId

В Weave есть зарезервированные номера подсетей для определенных сетевых интерфейсов на типичных устройствах.

Эти числа присваиваются здесь символическим константам. Эти номера подсетей используются Weave для настройки адресов IPv6 ULA на соответствующих интерфейсах.

Переменные

ExchangeMgr

NL_DLL_EXPORT WeaveExchangeManager ExchangeMgr

FabricState

NL_DLL_EXPORT WeaveFabricState FabricState

MessageLayer

NL_DLL_EXPORT WeaveMessageLayer MessageLayer

SecurityMgr

NL_DLL_EXPORT WeaveSecurityManager SecurityMgr

WeaveConnection

class NL_DLL_EXPORT WeaveConnection

WeaveExchangeManager

class NL_DLL_EXPORT WeaveExchangeManager

WeaveMessageLayer

class NL_DLL_EXPORT WeaveMessageLayer

gDefaultWRMPConfig

const WRMPConfig gDefaultWRMPConfig = { WEAVE_CONFIG_WRMP_DEFAULT_INITIAL_RETRANS_TIMEOUT,
                                        WEAVE_CONFIG_WRMP_DEFAULT_ACTIVE_RETRANS_TIMEOUT,
                                        WEAVE_CONFIG_WRMP_DEFAULT_ACK_TIMEOUT,
                                        WEAVE_CONFIG_WRMP_DEFAULT_MAX_RETRANS }

kWeaveMsgEncAppKeyDiversifier

const uint8_t kWeaveMsgEncAppKeyDiversifier[] = { 0xB1, 0x1D, 0xAE, 0x5B }

Ключ, используемый для создания ключа шифрования сообщений Weave.

Это значение представляет собой первые 4 байта хеша SHA-1 фразы "Nest Weave Message EK and AK".

Функции

AppGroupMasterKeyIdFromAuthMode

uint8_t AppGroupMasterKeyIdFromAuthMode(
  WeaveAuthMode authMode
)

Возвращает идентификатор главного ключа группы приложений, связанный с режимом аутентификации.

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 возвращает человекочитаемую строку C с завершающим нулем, описывающую ошибку.

Сведения
Параметры
[in] buf
Буфер, в который будет помещена строка ошибки.
[in] bufSize
Размер предоставленного буфера в байтах.
[in] err
Ошибка, которую нужно описать.
Возвраты
true, если в предоставленный буфер была записана строка описания.
Возвраты
false, если предоставленная ошибка не является ошибкой Weave.

GenerateWeaveNodeId

NL_DLL_EXPORT WEAVE_ERROR GenerateWeaveNodeId(
  uint64_t & nodeId
)

Сгенерируйте случайный идентификатор узла Weave.

Эта функция генерирует 64-битный локально уникальный идентификатор узла Weave. Эта функция использует криптографически надежный источник случайных данных, чтобы гарантировать уникальность сгенерированного значения. Обратите внимание, что бит 57 сгенерированного идентификатора узла Weave имеет значение 1, что указывает на то, что сгенерированный идентификатор узла Weave является локально (не глобально) уникальным.

Сведения
Параметры
nodeId
Ссылка на 64-битный идентификатор узла Weave.
Возвращаемые значения
WEAVE_NO_ERROR
Если идентификатор узла Weave был успешно сгенерирован.

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
)

Возвращает соответствующий режим аутентификации ключа группы для заданного идентификатора ключа.

IPv6InterfaceIdToWeaveNodeId

uint64_t IPv6InterfaceIdToWeaveNodeId(
  uint64_t interfaceId
)

Преобразует идентификатор интерфейса IPv6 в идентификатор узла Weave.

Для удобства тестирования идентификаторы узлов, которые меньше или равны #kMaxAlwaysLocalWeaveNodeId (65535), считаются локальными, а их универсальный/локальный бит равен нулю. Это упрощает строковое представление соответствующих адресов IPv6. Например, для идентификатора узла 10 ULA будет выглядеть так: FD00:0:1:1::A.

Сведения
Параметры
[in] interfaceId
64-битный идентификатор интерфейса.
Возвраты
сопоставленный 64-битный идентификатор узла Weave.

IsCASEAuthMode

bool IsCASEAuthMode(
  WeaveAuthMode authMode
)

Возвращает значение "истина", если режим аутентификации основан на протоколе Weave CASE.

IsCertAuthMode

bool IsCertAuthMode(
  WeaveAuthMode authMode
)

Значение True, если режим аутентификации основан на наличии закрытого ключа, связанного с сертификатом.

IsGroupKeyAuthMode

bool IsGroupKeyAuthMode(
  WeaveAuthMode authMode
)

Значение True, если режим аутентификации основан на наличии общего ключа группы.

IsPASEAuthMode

bool IsPASEAuthMode(
  WeaveAuthMode authMode
)

True, если режим аутентификации основан на протоколе Weave PASE.

IsPasswordAuthMode

bool IsPasswordAuthMode(
  WeaveAuthMode authMode
)

Значение True, если режим аутентификации основан на наличии общего пароля.

IsTAKEAuthMode

bool IsTAKEAuthMode(
  WeaveAuthMode authMode
)

Возвращает значение "истина", если режим аутентификации основан на протоколе Weave TAKE.

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 Fabric в глобальный идентификатор IPv6 ULA.

Глобальный идентификатор ULA для адреса ткани – это младшие 40 бит 64-битного идентификатора ткани.

Сведения
Параметры
[in] fabricId
Идентификатор сети Weave.
Возвраты
сопоставленный глобальный идентификатор IPv6.

WeaveMessageSourceToStr

void WeaveMessageSourceToStr(
  char *buf,
  uint32_t bufSize,
  const WeaveMessageInfo *msgInfo
)

УСТАРЕЛО. Используйте вместо этого WeaveMessageLayer::GetPeerDescription().

WeaveNodeAddrToStr

void WeaveNodeAddrToStr(
  char *buf,
  uint32_t bufSize,
  uint64_t nodeId,
  const IPAddress *addr,
  uint16_t port,
  WeaveConnection *con
)

УСТАРЕЛО. Используйте вместо этого WeaveMessageLayer::GetPeerDescription().

WeaveNodeIdToIPv6InterfaceId

uint64_t WeaveNodeIdToIPv6InterfaceId(
  uint64_t nodeId
)

Преобразование идентификатора узла Weave в идентификатор интерфейса IPv6-адреса.

Идентификаторы узлов Weave – это универсальные/локальные идентификаторы EUI-64, которые в соответствии с RFC-3513 преобразуются в идентификаторы интерфейсов путем инвертирования универсального/локального бита (бит 57, считая младший значащий бит за 0).

Для удобства тестирования идентификаторы узлов, которые меньше или равны #kMaxAlwaysLocalWeaveNodeId (65535), считаются локальными, а их универсальный/локальный бит равен нулю. Это упрощает строковое представление соответствующих адресов IPv6. Например, ULA для идентификатора узла 10 будет FD00:0:1:1::A.

Сведения
Параметры
[in] nodeId
64-битный идентификатор узла Weave.
Возвраты
идентификатор интерфейса IPv6.

Функция max

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

мин.

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