nl:: Weave
Сводка
Перечисления |
|
|---|---|
@21{
|
enum : перечисление |
@36
|
enum : перечисление |
@37
|
enum : перечисление |
@38{
|
enum : перечисление |
@39{
|
enum : перечисление Определяет назначение или применение сертификата. |
@40
|
enum : перечисление Определяет источник пароля, используемого в протоколе аутентификации на основе пароля (например, |
@41{
|
enum : перечисление |
@42{
|
enum : перечисление |
@43{
|
enum : перечисление |
@44
|
enum : перечисление Размер диверсификатора ключа приложения для шифрования сообщений Weave. |
@45
|
enum : перечисление |
@53
|
enum : перечисление |
@54{
|
enum : перечисление |
@55{
|
enum : перечисление Определения, относящиеся к заголовку закодированного сообщения Weave. |
@56{
|
enum : перечисление Определения битовых полей для идентификаторов IEEE EUI-64. |
@57{
|
enum : перечисление Специальные диапазоны идентификаторов узлов Weave. |
WeaveEncryptionType{
|
enum : перечисление Типы шифрования для сообщения Weave. |
WeaveExchangeFlags{
|
enum : перечисление Биты флага заголовка Weave Exchange. |
WeaveExchangeVersion
|
enum : перечисление Версия заголовка Weave Exchange. |
WeaveMessageFlags{
|
enum : перечисление Флаги, связанные с входящим или исходящим сообщением Weave. |
WeaveMessageVersion{
|
enum : перечисление Версия формата сообщений Weave. |
WeaveSubnetId{
|
enum : перечисление В Weave есть зарезервированные номера подсетей для определенных сетевых интерфейсов на типичных устройствах. |
WeaveVendorId
|
enum : перечисление |
Typedefs |
|
|---|---|
FabricSecretRotationScheme
|
typedefuint8_t
|
FabricSecretScope
|
nl::Weave::FabricSecretScopeuint8_t
Определяет категорию устройств, которые могут иметь и использовать секретный ключ сети. |
WeaveAuthMode
|
typedefuint16_t
Определяет, как аутентифицируется узел-партнер. |
WeaveEncryptionKey
|
typedef |
WeaveEncryptionType
|
typedefenum nl::Weave::WeaveEncryptionType
Типы шифрования для сообщения Weave. |
WeaveExchangeFlags
|
typedefenum nl::Weave::WeaveExchangeFlags
Биты флага заголовка Weave Exchange. |
WeaveExchangeVersion
|
typedefenum nl::Weave::WeaveExchangeVersion
Версия заголовка Weave Exchange. |
WeaveMessageFlags
|
typedefenum nl::Weave::WeaveMessageFlags
Пометки, связанные с входящим или исходящим сообщением Weave. |
WeaveMessageHeader
|
typedefstruct WeaveMessageInfo
|
WeaveMessageVersion
|
typedefenum nl::Weave::WeaveMessageVersion
Версия формата сообщений Weave. |
WeaveSubnetId
|
typedefenum 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 и связанную с ним информацию о конфигурации. |
|
nl:: |
Интерфейс для управления счетчиком в виде целочисленного значения. |
|
nl:: |
Этот класс представляет текущий разговор (ExchangeContext) между двумя или более узлами. |
|
nl:: |
Этот абстрактный класс делегата передает изменения состояния Fabric. |
|
nl:: |
Для управления и манипулирования списком портов хоста, компактной коллекцией кортежей идентификаторов хоста и портов в двоичной кодировке, связанных с каталогом служб Weave. |
|
nl:: |
|
|
nl:: |
Класс для управления монотонно возрастающим счетчиком в виде целочисленного значения. |
|
nl:: |
Класс для управления счетчиком в виде целого числа, которое сохраняется после перезагрузки. |
|
nl:: |
Определение класса Weave Connection. |
|
nl:: |
Определение класса WeaveConnectionTunnel, который управляет парой TCPEndPoints, чьи исходные WeaveConnections были соединены и между которыми WeaveMessageLayer пересылает все данные и закрытия соединений. |
|
nl:: |
|
|
nl:: |
Указывает профиль и тип сообщения Weave в определенном ExchangeContext. |
|
nl:: |
Этот класс используется для управления ExchangeContexts с другими узлами Weave. |
|
nl:: |
Предварительное объявление WeaveFabricState. |
|
nl:: |
Определение идентификатора ключа Weave. |
|
nl:: |
Определение класса WeaveMessageLayer, который управляет взаимодействием с другими узлами Weave. |
|
nl:: |
Содержит информацию о ключе шифрования сообщений Weave. |
|
nl:: |
Кэш ключей для ключей шифрования сообщений Weave. |
|
nl:: |
|
|
nl:: |
Общий базовый объект для реализации ответчиков (серверов) профиля Weave, не согласованных с получателем, который инкапсулирует проверку аутентифицированных запросов и отправку отчетов о состоянии, а также предоставляет общее хранилище элементов данных для состояния структуры и менеджера обмена. |
|
nl:: |
Общий базовый класс для реализации объектов делегата сервера Weave. |
|
nl:: |
Содержит информацию о сеансовом ключе Weave. |
|
nl:: |
Передает состояние связи, необходимое для отправки и получения сообщений с другого узла. |
Структуры |
|
|---|---|
|
nl:: |
|
|
nl:: |
Конфигурация WRMP. |
|
nl:: |
Информация о сообщении Weave, которое отправляется или принимается. |
Профсоюзы |
|
|---|---|
|
nl:: |
|
Пространства имен |
|
|---|---|
|
nl:: |
Это пространство имен включает все интерфейсы Weave для работы с нотацией абстрактного синтаксиса 1 (ASN.1). |
|
nl:: |
Это пространство имен включает все интерфейсы в Weave для поддержки общей криптографии. |
|
nl:: |
|
|
nl:: |
|
|
nl:: |
В этом пространстве имен есть функции для: |
|
nl:: |
Это пространство имен включает все интерфейсы Weave для поддержки общего ведения журналов. |
|
nl:: |
|
|
nl:: |
Это пространство имен включает все интерфейсы в Weave для профилей Weave, как общие, так и специфичные для поставщика Nest Labs. |
|
nl:: |
|
|
nl:: |
|
|
nl:: |
|
|
nl:: |
|
|
nl:: |
Определения для работы с данными, закодированными в формате TLV Weave. |
|
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
Определяет источник пароля, используемого в протоколе аутентификации на основе пароля (например,
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
|
Аутентификация не пройдена. |
@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_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 с завершающим нулем, описывающую ошибку.
| Сведения | |||||||
|---|---|---|---|---|---|---|---|
| Параметры |
|
||||||
| Возвраты |
true, если в предоставленный буфер была записана строка описания.
|
||||||
| Возвраты |
false, если предоставленная ошибка не является ошибкой Weave.
|
||||||
GenerateWeaveNodeId
NL_DLL_EXPORT WEAVE_ERROR GenerateWeaveNodeId( uint64_t & nodeId )
Сгенерируйте случайный идентификатор узла Weave.
Эта функция генерирует 64-битный локально уникальный идентификатор узла Weave. Эта функция использует криптографически надежный источник случайных данных, чтобы гарантировать уникальность сгенерированного значения. Обратите внимание, что бит 57 сгенерированного идентификатора узла Weave имеет значение 1, что указывает на то, что сгенерированный идентификатор узла 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.
| Сведения | |||
|---|---|---|---|
| Параметры |
|
||
| Возвраты |
сопоставленный 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-битного идентификатора ткани.
| Сведения | |||
|---|---|---|---|
| Параметры |
|
||
| Возвраты |
сопоставленный глобальный идентификатор 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.
| Сведения | |||
|---|---|---|---|
| Параметры |
|
||
| Возвраты |
идентификатор интерфейса IPv6.
|
||
Функция max
const _T & max( const _T & a, const _T & b )
мин.
const _T & min( const _T & a, const _T & b )