нл:: Плетение

Краткое содержание

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

@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.
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 Message.
WeaveSubnetId {
kWeaveSubnetId_NotSpecified = 0,
kWeaveSubnetId_PrimaryWiFi = 1,
kWeaveSubnetId_ThreadAlarm = 2,
kWeaveSubnetId_WiFiAP = 3,
kWeaveSubnetId_MobileDevice = 4,
kWeaveSubnetId_Service = 5,
kWeaveSubnetId_ThreadMesh = 6
}
перечисление
Weave имеет несколько зарезервированных номеров подсетей для различных сетевых интерфейсов на типичных устройствах.
WeaveVendorId перечисление

Определения типов

FabricSecretRotationScheme определение типа
uint8_t
FabricSecretScope nl::Weave::FabricSecretScope
uint8_t
Определяет категорию устройств, которые могут обладать и использовать тканевый секрет.
WeaveAuthMode определение типа
uint16_t
Определяет способ аутентификации однорангового узла.
WeaveEncryptionKey определение типа
WeaveEncryptionType определение типа
enum nl::Weave::WeaveEncryptionType
Типы шифрования сообщения Weave.
WeaveExchangeFlags определение типа
enum nl::Weave::WeaveExchangeFlags
Биты флага заголовка Weave Exchange.
WeaveExchangeVersion определение типа
enum nl::Weave::WeaveExchangeVersion
Версия заголовка Weave Exchange.
WeaveMessageFlags определение типа
enum nl::Weave::WeaveMessageFlags
Флаги, связанные с входящим или исходящим сообщением Weave.
WeaveMessageHeader определение типа
WeaveMessageVersion определение типа
enum nl::Weave::WeaveMessageVersion
Версия формата Weave Message.
WeaveSubnetId определение типа
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
True, если режим аутентификации основан на протоколе Weave CASE.
IsCertAuthMode (WeaveAuthMode authMode)
bool
Истинно, если режим аутентификации основан на владении закрытым ключом, связанным с сертификатом.
IsGroupKeyAuthMode (WeaveAuthMode authMode)
bool
Истинно, если режим аутентификации основан на владении общим групповым ключом.
IsPASEAuthMode (WeaveAuthMode authMode)
bool
True, если режим аутентификации основан на протоколе Weave PASE.
IsPasswordAuthMode (WeaveAuthMode authMode)
bool
Истинно, если режим аутентификации основан на использовании общего пароля.
IsTAKEAuthMode (WeaveAuthMode authMode)
bool
True, если режим аутентификации основан на протоколе 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 в глобальный идентификатор 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:: Переплет

Захватывает предполагаемую цель связи Weave и связанную с ней информацию о конфигурации.

nl:: Weave:: Счетчик

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

nl:: Weave:: ExchangeContext

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

nl:: Weave:: FabricStateDelegate

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

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 и тип сообщения конкретного сообщения Weave в ExchangeContext .

nl:: Weave:: WeaveExchangeManager

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

nl:: Weave:: WeaveFabricState

Форвардное объявление WeaveFabricState .

nl:: Weave:: WeaveKeyId

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

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 для работы с абстрактной синтаксической нотацией One (ASN.1).

nl:: Weave:: Крипто

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

nl:: Weave:: DeviceLayer
nl:: Weave:: DeviceManager
nl::Weave::Кодирование

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

nl:: Weave:: Ведение журнала

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

nl:: Weave:: Платформа
nl:: Weave:: Профили

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

nl:: Weave:: SecuritySupport
nl:: Weave:: Статистика
nl:: Weave:: Поддержка
nl:: Weave:: Система
nl:: Weave:: TLV

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

nl:: Плетение:: Теплый

Это пространство имен включает в себя интерфейсы для модуля адреса и маршрутизации 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

Идентифицирует источник пароля, используемого в протоколе аутентификации на основе пароля (например,

Плетём ПАСЕ)

@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

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

kEUI64_IG_Mask

Битовая маска для бита «Индивидуальный/Групповой» (I/G) в идентификаторе EUI-64.

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

kEUI64_UL_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

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

Характеристики
kWeaveExchangeFlag_AckId

Установите, когда текущее сообщение является подтверждением ранее полученного сообщения.

kWeaveExchangeFlag_Initiator

Устанавливается, когда текущее сообщение отправлено инициатором обмена.

kWeaveExchangeFlag_NeedsAck

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

WeaveExchangeVersion

 WeaveExchangeVersion

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

ТкатьСообщениеФлаги

 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.

WeaveMessageВерсия

 WeaveMessageVersion

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

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

Характеристики
kWeaveMessageVersion_Unspecified

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

kWeaveMessageVersion_V1

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

kWeaveMessageVersion_V2

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

WeaveSubnetId

 WeaveSubnetId

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

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

Характеристики
kWeaveSubnetId_MobileDevice

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

kWeaveSubnetId_NotSpecified

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

kWeaveSubnetId_PrimaryWiFi

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

kWeaveSubnetId_Service

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

kWeaveSubnetId_ThreadAlarm

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

kWeaveSubnetId_ThreadMesh

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

kWeaveSubnetId_WiFiAP

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

WeaveVendorId

 WeaveVendorId

Определения типов

ТканьСекретСхемаВращения

uint8_t FabricSecretRotationScheme

ТканьСекретОбласть применения

uint8_t FabricSecretScope

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

Режим 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.

ТкатьОбменФлаги

enum nl::Weave::WeaveExchangeFlags WeaveExchangeFlags

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

WeaveExchangeVersion

enum nl::Weave::WeaveExchangeVersion WeaveExchangeVersion

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

ТкатьСообщениеФлаги

enum nl::Weave::WeaveMessageFlags WeaveMessageFlags

Флаги, связанные с входящим или исходящим сообщением Weave.

Определенные здесь значения предназначены для использования в поле WeaveMessageInfo.Flags .

WeaveСообщениеЗаголовок

struct WeaveMessageInfo WeaveMessageHeader

WeaveMessageВерсия

enum nl::Weave::WeaveMessageVersion WeaveMessageVersion

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

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

WeaveSubnetId

enum nl::Weave::WeaveSubnetId WeaveSubnetId

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

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

Переменные

ExchangeMgr

NL_DLL_EXPORT WeaveExchangeManager ExchangeMgr

Состояние Фабрики

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

Слой Сообщения

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 байта HASH SHA-1 фразы «Nest Weave Message EK and AK».

Функции

AppGroupMasterKeyIdFromAuthMode

uint8_t AppGroupMasterKeyIdFromAuthMode(
  WeaveAuthMode authMode
)

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

CASEAuthMode

WeaveAuthMode CASEAuthMode(
  uint8_t certType
)

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

Серттипефромаусмоде

uint8_t CertTypeFromAuthMode(
  WeaveAuthMode authMode
)

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

Поле декодирования заголовка

void 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
)

КодироватьHeaderField

uint16_t EncodeHeaderField(
  const WeaveMessageInfo *msgInfo
)

Найтиимясообщения

const char * FindMessageName(
  uint32_t inProfileId,
  uint8_t inMsgType
)

Найти имя профиля

const char * FindProfileName(
  uint32_t inProfileId
)

ФорматВеавеОррор

bool FormatWeaveError(
  char *buf,
  uint16_t bufSize,
  int32_t err
)

При наличии ошибки Weave возвращает удобочитаемую строку C с завершающим NULL, описывающую ошибку.

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

ГенерироватьWeaveNodeId

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-битное беззнаковое число Фибоначчи.

Получитьимясообщения

const char * GetMessageName(
  uint32_t profileId,
  uint8_t msgType
)

Получить имя профиля

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. Например, ULA для идентификатора узла 10 будет FD00:0 :1:1::A.

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

ИсCASEAuthMode

bool IsCASEAuthMode(
  WeaveAuthMode authMode
)

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

IsCertAuthMode

bool IsCertAuthMode(
  WeaveAuthMode authMode
)

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

IsGroupKeyAuthMode

bool IsGroupKeyAuthMode(
  WeaveAuthMode authMode
)

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

IsPASEAuthMode

bool IsPASEAuthMode(
  WeaveAuthMode authMode
)

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

IsPasswordAuthMode

bool IsPasswordAuthMode(
  WeaveAuthMode authMode
)

Истинно, если режим аутентификации основан на использовании общего пароля.

IsTAKEAuthMode

bool IsTAKEAuthMode(
  WeaveAuthMode authMode
)

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

Исврмпконтролмессаже

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 для данного источника пароля.

ПарольSourceFromAuthMode

uint8_t PasswordSourceFromAuthMode(
  WeaveAuthMode authMode
)

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

РаспечататьТуннельИнформация

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 для адреса структуры — это младшие 40 бит 64-битного идентификатора структуры.

Подробности
Параметры
[в] идентификатор ткани
Идентификатор ткани 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.

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

Макс

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

мин

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