nl::Weave

Resumen

Enumeraciones

@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
Identifica el propósito o la aplicación del certificado.
@40 enum
Identifica la fuente de la contraseña utilizada en un protocolo de autenticación basado en contraseña (p.ej.,
@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
Tamaño del diversificador de claves de la aplicación de encriptación de mensajes de Weave.
@45 enum
@53 enum
@54{
  kWeavePeerDescription_MaxLength = 100
}
enum
@55{
  kWeaveHeaderFlag_DestNodeId = 0x0100,
  kWeaveHeaderFlag_SourceNodeId = 0x0200,
  kWeaveHeaderFlag_TunneledData = 0x0400,
  kWeaveHeaderFlag_MsgCounterSyncReq = 0x0800
}
enum
Definiciones relacionadas con el encabezado de un mensaje de Weave codificado.
@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
Definiciones de campos de bits para los identificadores EUI-64 IEEE.
@57{
  kMaxAlwaysLocalWeaveNodeId = 0x000000000000FFFFULL
}
enum
Rangos especiales de ID de nodo de Weave.
WeaveEncryptionType{
  kWeaveEncryptionType_None = 0,
  kWeaveEncryptionType_AES128CTRSHA1 = 1
}
enum
Los tipos de encriptación para el mensaje de Weave.
WeaveExchangeFlags{
  kWeaveExchangeFlag_Initiator = 0x1,
  kWeaveExchangeFlag_AckId = 0x2,
  kWeaveExchangeFlag_NeedsAck = 0x4
}
enum
Los bits de marca del encabezado de Weave Exchange.
WeaveExchangeVersion enum
La versión del encabezado de 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
Marcas asociadas con un mensaje de Weave entrante o saliente.
WeaveMessageVersion{
  kWeaveMessageVersion_Unspecified = 0,
  kWeaveMessageVersion_V1 = 1,
  kWeaveMessageVersion_V2 = 2
}
enum
Es la versión del formato de mensaje de 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 tiene algunos números de subredes reservados para las interfaces de red distinguidas en dispositivos típicos.
WeaveVendorId enum

Typedefs

FabricSecretRotationScheme typedef
uint8_t
FabricSecretScope nl::Weave::FabricSecretScope
uint8_t
Identifica la categoría de dispositivos que pueden poseer y usar el secreto de tejido.
WeaveAuthMode typedef
uint16_t
Identifica cómo se autentica un nodo par.
WeaveEncryptionKey typedef
WeaveEncryptionType typedef
enum nl::Weave::WeaveEncryptionType
Los tipos de encriptación para el mensaje de Weave.
WeaveExchangeFlags typedef
enum nl::Weave::WeaveExchangeFlags
Los bits de marca del encabezado de Weave Exchange.
WeaveExchangeVersion typedef
enum nl::Weave::WeaveExchangeVersion
La versión del encabezado de Weave Exchange.
WeaveMessageFlags typedef
enum nl::Weave::WeaveMessageFlags
Marcas asociadas con un mensaje de Weave entrante o saliente.
WeaveMessageHeader typedef
WeaveMessageVersion typedef
enum nl::Weave::WeaveMessageVersion
Es la versión del formato de mensaje de Weave.
WeaveSubnetId typedef
enum nl::Weave::WeaveSubnetId
Weave tiene algunos números de subredes reservados para las interfaces de red distinguidas en dispositivos típicos.

Variables

ExchangeMgr
NL_DLL_EXPORT WeaveExchangeManager
FabricState
NL_DLL_EXPORT WeaveFabricState
MessageLayer
NL_DLL_EXPORT WeaveMessageLayer
SecurityMgr
NL_DLL_EXPORT WeaveSecurityManager
WeaveConnection
class NL_DLL_EXPORT
WeaveExchangeManager
class NL_DLL_EXPORT
WeaveMessageLayer
class NL_DLL_EXPORT
gDefaultWRMPConfig = { WEAVE_CONFIG_WRMP_DEFAULT_INITIAL_RETRANS_TIMEOUT, WEAVE_CONFIG_WRMP_DEFAULT_ACTIVE_RETRANS_TIMEOUT, WEAVE_CONFIG_WRMP_DEFAULT_ACK_TIMEOUT, WEAVE_CONFIG_WRMP_DEFAULT_MAX_RETRANS }
const WRMPConfig
kWeaveMsgEncAppKeyDiversifier = { 0xB1, 0x1D, 0xAE, 0x5B }[]
const uint8_t
Divisor de claves usado para la derivación de claves de encriptación de mensajes de Weave.

remotas

AppGroupMasterKeyIdFromAuthMode(WeaveAuthMode authMode)
uint8_t
Muestra el ID de la clave maestra del grupo de aplicaciones asociado con el modo de autenticación.
CASEAuthMode(uint8_t certType)
WeaveAuthMode
Muestra un modo de autenticación CASE correspondiente para un tipo de certificado determinado.
CertTypeFromAuthMode(WeaveAuthMode authMode)
uint8_t
Muestra la fuente de la contraseña para el modo de autenticación determinado.
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
Dado un error de Weave, muestra una cadena C terminada en NULL que describe el error.
GenerateWeaveNodeId(uint64_t & nodeId)
NL_DLL_EXPORT WEAVE_ERROR
Genera un ID de nodo de Weave aleatorio.
GetFibonacciForIndex(uint32_t index)
uint32_t
Esta función genera un número de Fibonacci de 32 bits para un índice determinado de 32 bits.
GetMessageName(uint32_t profileId, uint8_t msgType)
const char *
GetProfileName(uint32_t profileId)
const char *
GetRandU16(void)
uint16_t
Esta función genera un número al azar de 16 bits sin firma.
GetRandU32(void)
uint32_t
Esta función genera un número al azar de 32 bits sin firma.
GetRandU64(void)
uint64_t
Esta función genera un número al azar de 64 bits sin firma.
GetRandU8(void)
uint8_t
Esta función genera un número al azar de 8 bits sin firma.
GetVendorName(uint16_t vendorId)
const char *
GroupKeyAuthMode(uint32_t keyId)
WeaveAuthMode
Muestra el modo de autenticación de clave de grupo correspondiente para un ID de clave determinado.
IPv6InterfaceIdToWeaveNodeId(uint64_t interfaceId)
uint64_t
Convierte un identificador de interfaz de dirección IPv6 en un identificador de nodo de Weave.
IsCASEAuthMode(WeaveAuthMode authMode)
bool
Es verdadero si el modo de autenticación se basa en el protocolo CASE de Weave.
IsCertAuthMode(WeaveAuthMode authMode)
bool
Es verdadero si el modo de autenticación se basa en la posesión de una clave privada asociada con un certificado.
IsGroupKeyAuthMode(WeaveAuthMode authMode)
bool
Es verdadero si el modo de autenticación se basa en la posesión de una clave de grupo compartida.
IsPASEAuthMode(WeaveAuthMode authMode)
bool
Es verdadero si el modo de autenticación se basa en el protocolo PASE de Weave.
IsPasswordAuthMode(WeaveAuthMode authMode)
bool
Es verdadero si el modo de autenticación se basa en la posesión de una contraseña compartida.
IsTAKEAuthMode(WeaveAuthMode authMode)
bool
Es verdadero si el modo de autenticación se basa en el protocolo Take de Weave.
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
Muestra el modo de autenticación PASE correspondiente para una fuente de contraseña determinada.
PasswordSourceFromAuthMode(WeaveAuthMode authMode)
uint8_t
Muestra la fuente de la contraseña para el modo de autenticación determinado.
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
Convierte un identificador de tejido de Weave en un identificador global de ULA de IPv6.
WeaveMessageSourceToStr(char *buf, uint32_t bufSize, const WeaveMessageInfo *msgInfo)
void
OBSOLETO, en su lugar, usa WeaveMessageLayer::GetPeerDescription().
WeaveNodeAddrToStr(char *buf, uint32_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, WeaveConnection *con)
void
OBSOLETO, en su lugar, usa WeaveMessageLayer::GetPeerDescription().
WeaveNodeIdToIPv6InterfaceId(uint64_t nodeId)
uint64_t
Convierte un identificador de nodo de Weave en un identificador de interfaz de dirección IPv6.
max(const _T & a, const _T & b)
const _T &
min(const _T & a, const _T & b)
const _T &

Clases

nl::Weave::Binding

Captura el objetivo previsto de una comunicación de Weave y la información de configuración asociada.

nl::Weave::Counter

Interfaz para administrar un contador como un valor de número entero.

nl::Weave::ExchangeContext

Esta clase representa una conversación en curso (ExchangeContext) entre dos o más nodos.

nl::Weave::FabricStateDelegate

Esta clase delegada abstracta comunica los cambios de estado de los tejidos.

nl::Weave::HostPortList

Para administrar y manipular una lista de puertos del host, una colección compacta de códigos binarios de tuplas de identificadores de puertos y hosts asociadas con el directorio de servicios de Weave.

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

Es una clase para administrar un contador que aumenta monótonamente como un valor de número entero.

nl::Weave::PersistedCounter

Es una clase para administrar un contador como un valor de número entero destinado a persistir entre reinicios.

nl::Weave::WeaveConnection

Es la definición de la clase de conexión de Weave.

nl::Weave::WeaveConnectionTunnel

Es la definición de la clase WeaveConnectionTunnel, que administra un par de TCPEndPoints cuyas WeaveConnections originales se vincularon y entre las cuales WeaveMessageLayer reenvía todos los datos y cierres de conexiones.

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

Esta opción especifica el perfil de Weave y el tipo de mensaje de un mensaje de Weave en particular dentro de un ExchangeContext.

nl::Weave::WeaveExchangeManager

Esta clase se usa para administrar ExchangeContexts con otros nodos de Weave.

nl::Weave::WeaveFabricState

Declaración reenviada de WeaveFabricState

nl::Weave::WeaveKeyId

Es la definición del identificador de clave de Weave.

nl::Weave::WeaveMessageLayer

Es la definición de la clase WeaveMessageLayer, que administra la comunicación con otros nodos de Weave.

nl::Weave::WeaveMsgEncryptionKey

Contiene información sobre la clave de encriptación de mensajes de Weave.

nl::Weave::WeaveMsgEncryptionKeyCache

Caché de claves para las claves de encriptación de mensajes de Weave.

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

Objeto de base común para implementar respondedores no solicitados (servidores) con perfil de Weave que encapsula la validación de solicitudes autenticadas y el envío de informes de estado, y proporciona almacenamiento común de los miembros de datos para el estado de la estructura y un administrador de intercambio.

nl::Weave::WeaveServerDelegateBase

Una clase base común para implementar objetos delegados del servidor de Weave.

nl::Weave::WeaveSessionKey

Contiene información sobre una clave de sesión de Weave.

nl::Weave::WeaveSessionState

Comunica el estado de comunicación necesario para enviar o recibir mensajes con otro nodo.

Structs

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

La configuración de WRMP

nl::Weave::WeaveMessageInfo

Es la información sobre un mensaje de Weave que se está enviando o recibiendo.

Unión

nl::Weave::WeaveEncryptionKey

Espacios de nombres

nl::Weave::ASN1

Este espacio de nombres incluye todas las interfaces de Weave para trabajar con Abstract Syntax Notation One (ASN.1).

nl::Weave::Crypto

Este espacio de nombres incluye todas las interfaces dentro de Weave para brindar compatibilidad criptográfica compartida.

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

Este espacio de nombres proporciona funciones para lo siguiente:

nl::Weave::Logging

Este espacio de nombres incluye todas las interfaces dentro de Weave para la asistencia de registros compartidos.

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

Este espacio de nombres incluye todas las interfaces dentro de los perfiles de Weave para Weave, tanto Common como específicas del proveedor de Nest Labs.

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

Definiciones para trabajar con datos codificados en formato TLV de Weave.

nl::Weave::Warm

Este espacio de nombres incluye interfaces para el módulo de enrutamiento y dirección de Weave, un módulo portátil que permite configurar rutas y direcciones IP de Weave.

Enumeraciones

@21

 @21
Propiedades
kFlagAckPending

Si se espera una respuesta para un mensaje que se está enviando.

kFlagAutoReleaseConnection

Libera automáticamente la clave de encriptación de mensajes cuando se libere el contexto de intercambio.

kFlagAutoReleaseKey

Cuando se establece, significa que se recibió al menos un mensaje del par en este contexto de intercambio.

kFlagAutoRequestAck

Este contexto se asoció con una WeaveConnection.

kFlagConnectionClosed

Este contexto es el iniciador del intercambio.

kFlagDropAck

Cuando se establece, solicita automáticamente una confirmación de recepción cada vez que se envía un mensaje a través de UDP.

kFlagMsgRcvdFromPeer

Cuando se establece, significa que al menos un mensaje recibido en este intercambio solicitó una confirmación de recepción.

La aplicación lee esta marca para decidir si necesita solicitar una confirmación del mensaje de respuesta que está a punto de enviar. Esta marca también puede indicar si el par usa WRMP.

kFlagPeerRequestedAck

Cuando se configura, significa que hay una confirmación de recepción pendiente para devolver.

kFlagResponseExpected

Solo interno y de depuración: cuando se establece, la capa de intercambio no envía una confirmación de recepción.

kFlagUseEphemeralUDPPort

Libera automáticamente la WeaveConnection asociada cuando se libere el contexto de intercambio.

@36

 @36

@37

 @37

@38

 @38
Propiedades
kFabricIdDefaultForTest

ID de tejido predeterminado, que solo se debe usar con fines de prueba.

@39

 @39

Identifica el propósito o la aplicación del certificado.

Un tipo de certificado es una etiqueta que describe el propósito o la aplicación de un certificado. Los tipos de certificados no se transfieren como atributos de los certificados correspondientes, sino que se derivan de la estructura del certificado o del contexto en el que se usan. La enumeración del tipo de certificado incluye un conjunto de valores predefinidos que describen las aplicaciones de certificados de uso general. Los desarrolladores también pueden extender el rango de valores del tipo de certificado con tipos específicos de la aplicación que describieron certificados personalizados o certificados con propiedades de seguridad únicas.

Los tipos de certificados se usan principalmente en la implementación de políticas de control de acceso, en las que el acceso a las funciones de la aplicación está influenciado por el tipo de certificado que presenta el solicitante.

Propiedades
kCertType_AccessToken

Un certificado de token de acceso de Weave.

kCertType_AppDefinedBase

Los tipos de certificados específicos de la aplicación deben tener valores mayores que este valor.

kCertType_CA

Un certificado de la AC.

kCertType_Device

Un certificado de dispositivo de Weave.

kCertType_FirmwareSigning

Un certificado de firma del firmware de Weave.

kCertType_General

El certificado es de un tipo general o no específico.

kCertType_Max

Los tipos de certificados no deben ser mayores que este valor.

kCertType_NotSpecified

No se especificó el tipo de certificado.

kCertType_ServiceEndpoint

Un certificado de extremo de servicio de Weave.

@40

 @40

Identifica la fuente de la contraseña utilizada en un protocolo de autenticación basado en contraseña (p.ej.,

Weave, PASE)

@41

 @41
Propiedades
kWeaveAuthModeCategory_AppDefinedBase

Valor base para las categorías de autenticación definidas por la aplicación.

kWeaveAuthModeCategory_CASE

Par autenticado mediante el protocolo CASE de Weave.

kWeaveAuthModeCategory_General

Par autenticado mediante uno de un conjunto de mecanismos generales.

kWeaveAuthModeCategory_GroupKey

El intercambio de tráfico se autenticó con una clave de grupo compartida.

kWeaveAuthModeCategory_PASE

Par autenticado mediante el protocolo PASE de Weave.

kWeaveAuthModeCategory_TAKE

El intercambio de tráfico se autenticó mediante el protocolo Take de Weave.

kWeaveAuthMode_CASE_AccessToken

Par autenticado mediante CASE con el certificado de token de acceso de Weave.

kWeaveAuthMode_CASE_AnyCert

Par autenticado mediante CASE con certificado arbitrario o un certificado de tipo desconocido.

kWeaveAuthMode_CASE_Device

Par autenticado mediante CASE con certificado de dispositivo de Weave.

kWeaveAuthMode_CASE_GeneralCert

Par autenticado mediante CASE con un tipo de certificado general o no específico.

kWeaveAuthMode_CASE_ServiceEndPoint

Par autenticado mediante CASE con el certificado de extremo de servicio de Weave.

kWeaveAuthMode_NotSpecified

No se especificó el modo de autenticación.

kWeaveAuthMode_PASE_PairingCode

Par autenticado mediante PASE con código de vinculación de dispositivos.

kWeaveAuthMode_TAKE_IdentificationKey

El intercambio de tráfico se autenticó mediante Take con una clave de identificación del token.

kWeaveAuthMode_Unauthenticated

No se autenticó el par.

@42

 @42
Propiedades
kFabricSecretScope_All

Todos los dispositivos pueden poseer el secreto de tejido correspondiente.

@43

 @43
Propiedades
kTestKey_AES128CTRSHA1_DataKeyByte

Valor de bytes que construye la clave de encriptación, que se usa solo para pruebas.

kTestKey_AES128CTRSHA1_IntegrityKeyByte

El valor de bytes que construye la clave de integridad, que se usa solo para pruebas.

@44

 @44

Tamaño del diversificador de claves de la aplicación de encriptación de mensajes de Weave.

@45

 @45

@53

 @53

@54

 @54
Propiedades
kWeavePeerDescription_MaxLength

Longitud máxima de la string (incluido el carácter NUL) que muestra WeaveMessageLayer::GetPeerDescription().

@55

 @55

Definiciones relacionadas con el encabezado de un mensaje de Weave codificado.

Propiedades
kWeaveHeaderFlag_DestNodeId

Indica que el ID del nodo de destino está presente en el encabezado del mensaje de Weave.

kWeaveHeaderFlag_MsgCounterSyncReq

Indica que el remitente solicita la sincronización del contador de mensajes.

kWeaveHeaderFlag_SourceNodeId

Indica que el ID del nodo fuente está presente en el encabezado del mensaje de Weave.

kWeaveHeaderFlag_TunneledData

Indica que la carga útil del mensaje de Weave es un paquete de IP en túnel.

@56

 @56

Definiciones de campos de bits para los identificadores EUI-64 IEEE.

Propiedades
kEUI64_IG_Group

Valor de bit individual/grupo que indica un identificador EUI-64 de la dirección de un grupo.

kEUI64_IG_Individual

Valor de bits individual/grupo que indica un identificador EUI-64 de dirección individual.

kEUI64_IG_Mask

Máscara de bits para el bit individual/grupo (I/G) dentro de un identificador EUI-64.

El valor 0 indica que el ID es una dirección individual. El valor 1 indica que el ID es una dirección de grupo.

kEUI64_UL_Local

Valor de bit universal/local que indica un identificador de EUI-64 administrado localmente

kEUI64_UL_Mask

Máscara de bits para el bit universal/local (U/L) dentro de un identificador EUI-64.

El valor 0 indica que el ID se administra de forma universal (global). El valor 1 indica que el ID se administra de forma local.

kEUI64_UL_Unversal

Valor de bits universal/local que indica un identificador EUI-64 administrado universalmente.

@57

 @57

Rangos especiales de ID de nodo de Weave.

Propiedades
kMaxAlwaysLocalWeaveNodeId

Para mayor conveniencia de la prueba, los identificadores de nodo de Weave menores o iguales que este valor se consideran locales.

WeaveEncryptionType

 WeaveEncryptionType

Los tipos de encriptación para el mensaje de Weave.

Propiedades
kWeaveEncryptionType_AES128CTRSHA1

Mensaje encriptado con encriptación AES-128-CTR con integridad del mensaje HMAC-SHA-1.

kWeaveEncryptionType_None

Mensaje no encriptado.

WeaveExchangeFlags

 WeaveExchangeFlags

Los bits de marca del encabezado de Weave Exchange.

Propiedades
kWeaveExchangeFlag_AckId

Se establece cuando el mensaje actual es una confirmación de un mensaje recibido con anterioridad.

kWeaveExchangeFlag_Initiator

Establece cuándo el iniciador de un intercambio envía el mensaje actual.

kWeaveExchangeFlag_NeedsAck

Se establece cuando el mensaje actual solicita una confirmación de recepción del destinatario.

WeaveExchangeVersion

 WeaveExchangeVersion

La versión del encabezado de Weave Exchange.

WeaveMessageFlags

 WeaveMessageFlags

Marcas asociadas con un mensaje de Weave entrante o saliente.

Los valores definidos aquí se usan dentro del campo WeaveMessageInfo.Flags.

Propiedades
kWeaveMessageFlag_DefaultMulticastSourceAddress

Indica que se debe usar la selección de dirección IPv6 predeterminada de origen cuando se envían mensajes de multidifusión IPv6.

kWeaveMessageFlag_DelaySend

Indica que se debe retrasar el envío del mensaje.

kWeaveMessageFlag_DestNodeId

Indica que el ID del nodo de destino está presente en el encabezado del mensaje de Weave.

kWeaveMessageFlag_DuplicateMessage

Indica que el mensaje es un duplicado de un mensaje recibido anteriormente.

kWeaveMessageFlag_FromInitiator

Indica que la fuente del mensaje es el iniciador del intercambio de Weave.

kWeaveMessageFlag_MessageEncoded

Indica que el mensaje de Weave ya está codificado.

kWeaveMessageFlag_MsgCounterSyncReq

Indica que el remitente solicita la sincronización del contador de mensajes del par.

kWeaveMessageFlag_MulticastFromLinkLocal

El alias para kWeaveMessageFlag_DefaultMulticastSourceAddress dejó de estar disponible.

kWeaveMessageFlag_PeerGroupMsgIdNotSynchronized

Indica que el contador de mensajes clave del grupo del par no está sincronizado.

kWeaveMessageFlag_PeerRequestedAck

Indica que el remitente del mensaje solicitó una confirmación.

kWeaveMessageFlag_RetainBuffer

Indica que el búfer del mensaje no se debe liberar después del envío.

kWeaveMessageFlag_ReuseMessageId

Indica que se debe volver a usar el identificador de mensaje existente.

kWeaveMessageFlag_ReuseSourceId

Indica que se debe volver a usar el identificador del nodo fuente existente.

kWeaveMessageFlag_SourceNodeId

Indica que el ID del nodo fuente está presente en el encabezado del mensaje de Weave.

kWeaveMessageFlag_TunneledData

Indica que la carga útil del mensaje de Weave es un paquete de IP en túnel.

kWeaveMessageFlag_ViaEphemeralUDPPort

Indica que el mensaje se envía o recibe a través del puerto UDP efímero local.

WeaveMessageVersion

 WeaveMessageVersion

Es la versión del formato de mensaje de Weave.

Weave elegirá la versión de mensaje adecuada según el formato de marco requerido para el mensaje de Weave. De forma predeterminada, la versión del mensaje es kWeaveMessageVersion_V1. Cuando se usa Weave Reliable Messaging, por ejemplo, la versión es kWeaveMessageVersion_V2.

Propiedades
kWeaveMessageVersion_Unspecified

Versión del mensaje sin especificar.

kWeaveMessageVersion_V1

Versión del formato del encabezado del mensaje V1.

kWeaveMessageVersion_V2

Versión del formato del encabezado del mensaje V2.

WeaveSubnetId

 WeaveSubnetId

Weave tiene algunos números de subredes reservados para las interfaces de red distinguidas en dispositivos típicos.

Estos números se asignan aquí a constantes simbólicas. Weave usa estos números de subredes para configurar las direcciones ULA de IPv6 en las interfaces adecuadas.

Propiedades
kWeaveSubnetId_MobileDevice

El identificador de subred para todos los dispositivos móviles.

kWeaveSubnetId_NotSpecified

Reservado como un valor no especificado o nulo.

kWeaveSubnetId_PrimaryWiFi

El número de subred de la interfaz de radio Wi-Fi.

kWeaveSubnetId_Service

El identificador de subred para los extremos del servicio de Nest.

kWeaveSubnetId_ThreadAlarm

El número de subred de la interfaz de radio de la alarma de Thread.

kWeaveSubnetId_ThreadMesh

El identificador de subred de la interfaz de radio de la malla de Thread.

kWeaveSubnetId_WiFiAP

El número de subred de la interfaz AP de Wi-Fi local.

WeaveVendorId

 WeaveVendorId

Typedefs

FabricSecretRotationScheme

uint8_t FabricSecretRotationScheme

FabricSecretScope

uint8_t FabricSecretScope

Identifica la categoría de dispositivos que pueden poseer y usar el secreto de tejido.

WeaveAuthMode

uint16_t WeaveAuthMode

Identifica cómo se autentica un nodo par.

WeaveAuthMode describe los medios por los cuales un nodo par se autenticó, o debería ser, autenticado durante un intercambio de mensajes de Weave. En un contexto iniciador, las aplicaciones usan WeaveAuthMode para expresar un modo de autenticación de pares deseado para un intercambio, lo que indica a las capas de seguridad y mensajería de Weave que alcancen el modo deseado o que fallen la comunicación. En un contexto de respuesta, WeaveAuthMode identifica cómo se autenticó el nodo solicitante (el par), lo que permite a la aplicación que responde aplicar controles de acceso basados en esta información.

El modo WeaveAuthMode asignado a un mensaje de Weave entrante está relacionado con la naturaleza de la clave que se usó para encriptar ese mensaje. WeaveAuthMode deriva del mecanismo mediante el cual se estableció la clave y los criterios utilizados para verificar las identidades de las partes comunicantes en el momento de su establecimiento.

WeaveAuthMode incluye un conjunto de valores predefinidos que describen modos de autenticación comunes. Estos se desglosan según el mecanismo de acuerdo clave (CASE, PASE, GroupKey, etcétera). Los desarrolladores pueden extender WeaveAuthMode definiendo modos específicos de la aplicación, que pueden adjuntar a claves de encriptación específicas.

WeaveEncryptionKey

union nl::Weave::WeaveEncryptionKey WeaveEncryptionKey

WeaveEncryptionType

enum nl::Weave::WeaveEncryptionType WeaveEncryptionType

Los tipos de encriptación para el mensaje de Weave.

WeaveExchangeFlags

enum nl::Weave::WeaveExchangeFlags WeaveExchangeFlags

Los bits de marca del encabezado de Weave Exchange.

WeaveExchangeVersion

enum nl::Weave::WeaveExchangeVersion WeaveExchangeVersion

La versión del encabezado de Weave Exchange.

WeaveMessageFlags

enum nl::Weave::WeaveMessageFlags WeaveMessageFlags

Marcas asociadas con un mensaje de Weave entrante o saliente.

Los valores definidos aquí se usan dentro del campo WeaveMessageInfo.Flags.

WeaveMessageHeader

struct WeaveMessageInfo WeaveMessageHeader

WeaveMessageVersion

enum nl::Weave::WeaveMessageVersion WeaveMessageVersion

Es la versión del formato de mensaje de Weave.

Weave elegirá la versión de mensaje adecuada según el formato de marco requerido para el mensaje de Weave. De forma predeterminada, la versión del mensaje es kWeaveMessageVersion_V1. Cuando se usa Weave Reliable Messaging, por ejemplo, la versión es kWeaveMessageVersion_V2.

WeaveSubnetId

enum nl::Weave::WeaveSubnetId WeaveSubnetId

Weave tiene algunos números de subredes reservados para las interfaces de red distinguidas en dispositivos típicos.

Estos números se asignan aquí a constantes simbólicas. Weave usa estos números de subredes para configurar las direcciones ULA de IPv6 en las interfaces adecuadas.

Variables

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 }

Divisor de claves usado para la derivación de claves de encriptación de mensajes de Weave.

Este valor representa los primeros 4 bytes de la HASH SHA-1 de la frase “Nest Weave Message EK and AK”.

remotas

AppGroupMasterKeyIdFromAuthMode

uint8_t AppGroupMasterKeyIdFromAuthMode(
  WeaveAuthMode authMode
)

Muestra el ID de la clave maestra del grupo de aplicaciones asociado con el modo de autenticación.

CASEAuthMode

WeaveAuthMode CASEAuthMode(
  uint8_t certType
)

Muestra un modo de autenticación CASE correspondiente para un tipo de certificado determinado.

CertTypeFromAuthMode

uint8_t CertTypeFromAuthMode(
  WeaveAuthMode authMode
)

Muestra la fuente de la contraseña para el modo de autenticación determinado.

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
)

Dado un error de Weave, muestra una cadena C terminada en NULL que describe el error.

Detalles
Parámetros
[in] buf
Es el búfer en el que se ubicará la string de error.
[in] bufSize
Tamaño del búfer proporcionado, expresado en bytes.
[in] err
El error que se describirá.
Qué muestra
true Si se escribió una cadena de descripción en el búfer proporcionado.
Qué muestra
false: Si el error proporcionado no fue un error de Weave.

GenerateWeaveNodeId

NL_DLL_EXPORT WEAVE_ERROR GenerateWeaveNodeId(
  uint64_t & nodeId
)

Genera un ID de nodo de Weave aleatorio.

Esta función genera un ID de nodo de Weave local de 64 bits único. Esta función usa una fuente de datos aleatorios criptográficamente segura para garantizar que el valor generado sea único. Ten en cuenta que el bit 57 del ID del nodo de Weave generado se establece en 1 para indicar que el ID del nodo de Weave generado es único a nivel local (no global).

Detalles
Parámetros
nodeId
Es una referencia al ID del nodo de Weave de 64 bits.
Valores que se muestran
WEAVE_NO_ERROR
Si el ID del nodo de Weave se generó correctamente.

GetFibonacciForIndex

uint32_t GetFibonacciForIndex(
  uint32_t index
)

Esta función genera un número de Fibonacci de 32 bits para un índice determinado de 32 bits.

Detalles
Qué muestra
Número de Fibonacci sin signo de 32 bits

GetMessageName

const char * GetMessageName(
  uint32_t profileId,
  uint8_t msgType
)

GetProfileName

const char * GetProfileName(
  uint32_t profileId
)

GetRandU16

uint16_t GetRandU16(
  void
)

Esta función genera un número al azar de 16 bits sin firma.

Detalles
Qué muestra
Número entero aleatorio de 16 bits sin firma.

GetRandU32

uint32_t GetRandU32(
  void
)

Esta función genera un número al azar de 32 bits sin firma.

Detalles
Qué muestra
Número entero aleatorio de 32 bits sin firma.

GetRandU64

uint64_t GetRandU64(
  void
)

Esta función genera un número al azar de 64 bits sin firma.

Detalles
Qué muestra
Número entero aleatorio sin firma de 64 bits.

GetRandU8

uint8_t GetRandU8(
  void
)

Esta función genera un número al azar de 8 bits sin firma.

Detalles
Qué muestra
Número entero aleatorio de 8 bits sin firma.

GetVendorName

const char * GetVendorName(
  uint16_t vendorId
)

GroupKeyAuthMode

WeaveAuthMode GroupKeyAuthMode(
  uint32_t keyId
)

Muestra el modo de autenticación de clave de grupo correspondiente para un ID de clave determinado.

ID de IPv6InterfaceIdToWeaveNodeId

uint64_t IPv6InterfaceIdToWeaveNodeId(
  uint64_t interfaceId
)

Convierte un identificador de interfaz de dirección IPv6 en un identificador de nodo de Weave.

Para mayor comodidad de la prueba, los identificadores de nodo menores o iguales a #kMaxAlwaysLocalWeaveNodeId (65535) se consideran "locales" y tienen su bit universal/local establecido en cero. Esto simplifica la representación de string de las direcciones IPv6 correspondientes. Por ejemplo, una ULA para el identificador de nodo 10 sería FD00:0:1:1::A.

Detalles
Parámetros
[in] interfaceId
Es el identificador de la interfaz de 64 bits.
Qué muestra
el identificador de nodo de 64 bits de Weave asignado.

IsCASEAuthMode

bool IsCASEAuthMode(
  WeaveAuthMode authMode
)

Es verdadero si el modo de autenticación se basa en el protocolo CASE de Weave.

IsCertAuthMode

bool IsCertAuthMode(
  WeaveAuthMode authMode
)

Es verdadero si el modo de autenticación se basa en la posesión de una clave privada asociada con un certificado.

IsGroupKeyAuthMode

bool IsGroupKeyAuthMode(
  WeaveAuthMode authMode
)

Es verdadero si el modo de autenticación se basa en la posesión de una clave de grupo compartida.

IsPASEAuthMode

bool IsPASEAuthMode(
  WeaveAuthMode authMode
)

Es verdadero si el modo de autenticación se basa en el protocolo PASE de Weave.

IsPasswordAuthMode

bool IsPasswordAuthMode(
  WeaveAuthMode authMode
)

Es verdadero si el modo de autenticación se basa en la posesión de una contraseña compartida.

IsTAKEAuthMode

bool IsTAKEAuthMode(
  WeaveAuthMode authMode
)

Es verdadero si el modo de autenticación se basa en el protocolo Take de Weave.

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
)

Muestra el modo de autenticación PASE correspondiente para una fuente de contraseña determinada.

PasswordSourceFromAuthMode

uint8_t PasswordSourceFromAuthMode(
  WeaveAuthMode authMode
)

Muestra la fuente de la contraseña para el modo de autenticación determinado.

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
)

IDGlobal de WeaveFabricIdToIPv6

uint64_t WeaveFabricIdToIPv6GlobalId(
  uint64_t fabricId
)

Convierte un identificador de tejido de Weave en un identificador global de ULA de IPv6.

El identificador global de ULA para una dirección de tejido es los 40 bits inferiores del ID del tejido de 64 bits del tejido.

Detalles
Parámetros
[in] fabricId
Es el identificador de tejido de Weave.
Qué muestra
el identificador global IPv6 asignado.

WeaveMessageSourceToStr

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

OBSOLETO, en su lugar, usa WeaveMessageLayer::GetPeerDescription().

WeaveNodeAddrToStr

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

OBSOLETO, en su lugar, usa WeaveMessageLayer::GetPeerDescription().

WeaveNodeIdToIPv6InterfaceId

uint64_t WeaveNodeIdToIPv6InterfaceId(
  uint64_t nodeId
)

Convierte un identificador de nodo de Weave en un identificador de interfaz de dirección IPv6.

Los identificadores de nodos de tejido son EUI-64 universales/locales que, según RFC-3513, se convierten en identificadores de interfaz invirtiendo el bit universal/local (el bit 57 cuenta el LSB como 0).

Para mayor comodidad de la prueba, los identificadores de nodo menores o iguales a #kMaxAlwaysLocalWeaveNodeId (65535) se consideran "locales" y tienen su bit universal/local establecido en cero. Esto simplifica la representación de string de las direcciones IPv6 correspondientes. Por ejemplo, una ULA para el identificador de nodo 10 sería FD00:0:1:1::A.

Detalles
Parámetros
[in] nodeId
El identificador de nodo de Weave de 64 bits.
Qué muestra
el identificador de la interfaz IPv6.

max

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

min

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