nl:: Weave
Resumen
Typedefs |
|
---|---|
FabricSecretRotationScheme
|
typedefuint8_t
|
FabricSecretScope
|
nl::Weave::FabricSecretScopeuint8_t
Identifica la categoría de dispositivos que pueden poseer y usar un Secret de Fabric. |
WeaveAuthMode
|
typedefuint16_t
Identifica cómo se autentica un nodo de intercambio de tráfico. |
WeaveEncryptionKey
|
typedef |
WeaveEncryptionType
|
typedefenum nl::Weave::WeaveEncryptionType
Los tipos de encriptación para el mensaje de Weave. |
WeaveExchangeFlags
|
typedefenum nl::Weave::WeaveExchangeFlags
Los bits de marca de encabezado de Weave Exchange. |
WeaveExchangeVersion
|
typedefenum nl::Weave::WeaveExchangeVersion
La versión del encabezado de Weave Exchange. |
WeaveMessageFlags
|
typedefenum nl::Weave::WeaveMessageFlags
Marcas asociadas con un mensaje entrante o saliente de Weave. |
WeaveMessageHeader
|
typedefstruct WeaveMessageInfo
|
WeaveMessageVersion
|
typedefenum nl::Weave::WeaveMessageVersion
La versión del formato Weave Message. |
WeaveSubnetId
|
typedefenum nl::Weave::WeaveSubnetId
Weave tiene algunos números de subred reservados para 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
Diversificador de claves que se usa para la derivación de claves de encriptación de mensajes de Weave.
|
Funciones |
|
---|---|
AppGroupMasterKeyIdFromAuthMode(WeaveAuthMode authMode)
|
uint8_t
Muestra el ID de clave maestra del grupo de aplicaciones asociado con el modo de autenticación.
|
CASEAuthMode(uint8_t certType)
|
WeaveAuthMode
Devuelve el modo de autenticación CASE 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 y legible que describe el error.
|
GenerateWeaveNodeId(uint64_t & nodeId)
|
NL_DLL_EXPORT WEAVE_ERROR
Generar 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 sin firma de 16 bits.
|
GetRandU32(void)
|
uint32_t
Esta función genera un número al azar sin firma de 32 bits.
|
GetRandU64(void)
|
uint64_t
Esta función genera un número al azar sin firma de 64 bits.
|
GetRandU8(void)
|
uint8_t
Esta función genera un número al azar sin firma de 8 bits.
|
GetVendorName(uint16_t vendorId)
|
const char *
|
GroupKeyAuthMode(uint32_t keyId)
|
WeaveAuthMode
Muestra el modo de autenticación de una clave de grupo correspondiente para un ID de clave determinado.
|
IPv6InterfaceIdToWeaveNodeId(uint64_t interfaceId)
|
uint64_t
Convertir 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 a 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 Usa en su lugar WeaveMessageLayer::GetPeerDescription().
|
WeaveNodeAddrToStr(char *buf, uint32_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, WeaveConnection *con)
|
void
OBSOLETO Usa en su lugar WeaveMessageLayer::GetPeerDescription().
|
WeaveNodeIdToIPv6InterfaceId(uint64_t nodeId)
|
uint64_t
Convertir 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:: |
Captura el objetivo previsto de una comunicación de Weave y la información de configuración asociada. |
nl:: |
Una interfaz para administrar un contador como un valor de número entero. |
nl:: |
Esta clase representa una conversación en curso (ExchangeContext) entre dos o más nodos. |
nl:: |
Esta clase delegada abstracta comunica los cambios de estado de la estructura. |
nl:: |
Para administrar y manipular una Lista de puertos del host, es una colección compacta de codificación binaria de tuplas de identificador de puerto y host asociadas con el Directorio de servicios de Weave. |
nl:: |
|
nl:: |
Una clase para administrar un contador que aumenta de forma monótona como un valor de número entero. |
nl:: |
Una clase para administrar un contador como un valor de número entero destinado a persistir después de los reinicios. |
nl:: |
Es la definición de la clase Weave Connection. |
nl:: |
La definición de la clase WeaveConnectionTunnel, que administra un par de TCPEndPoints cuyas WeaveConnections originales se acoplaron y entre las cuales WeaveMessageLayer reenvía todos los cierres de datos y conexiones. |
nl:: |
|
nl:: |
Especifica el perfil y el tipo de mensaje de Weave de un mensaje de Weave específico dentro de un ExchangeContext. |
nl:: |
Esta clase se usa para administrar ExchangeContexts con otros nodos de Weave. |
nl:: |
Declaración directa de WeaveFabricState. |
nl:: |
La definición del identificador de la clave de Weave. |
nl:: |
La definición de la clase WeaveMessageLayer, que administra la comunicación con otros nodos de Weave. |
nl:: |
Contiene información sobre la clave de encriptación de mensajes de Weave. |
nl:: |
Caché de claves para las claves de encriptación de mensajes de Weave. |
nl:: |
|
nl:: |
Es un objeto base común para implementar respondedores no solicitados (servidores) del perfil de Weave que encapsula solicitudes autenticadas y envía informes de estado, y proporciona almacenamiento común de miembros de datos para el estado de tejido y un administrador de intercambio. |
nl:: |
Una clase base común para implementar objetos delegados del servidor de Weave. |
nl:: |
Contiene información sobre una clave de sesión de Weave. |
nl:: |
Comunica el estado de comunicación necesario para enviar/recibir mensajes con otro nodo. |
Structs |
|
---|---|
nl:: |
|
nl:: |
La configuración de WRMP. |
nl:: |
Información sobre un mensaje de Weave que se está enviando o recibiendo. |
Uniones |
|
---|---|
nl:: |
Espacios de nombres |
|
---|---|
nl:: |
Este espacio de nombres incluye todas las interfaces dentro de Weave para trabajar con Abstract Syntax Notation One (ASN.1). |
nl:: |
Este espacio de nombres incluye todas las interfaces de Weave para brindar compatibilidad criptográfica compartida. |
nl:: |
|
nl:: |
|
nl:: |
Este espacio de nombres proporciona funciones para lo siguiente: |
nl:: |
Este espacio de nombres incluye todas las interfaces dentro de Weave para la compatibilidad con registros compartidos. |
nl:: |
|
nl:: |
Este espacio de nombres incluye todas las interfaces dentro de los perfiles de Weave para Weave, tanto Common como específicas de los proveedores de Nest Labs. |
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
Definiciones para trabajar con datos codificados en formato TLV de Weave. |
nl:: |
Este espacio de nombres incluye interfaces para el módulo de dirección y enrutamiento de Weave, un módulo portátil para 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 del mensaje cuando se libera el contexto de intercambio. |
kFlagAutoReleaseKey
|
Si está establecido, significa que se recibió al menos un mensaje de apps similares en este contexto de intercambio. |
kFlagAutoRequestAck
|
Este contexto se asoció con una WeaveConnection. |
kFlagConnectionClosed
|
Este contexto es el iniciador del intercambio. |
kFlagDropAck
|
Cuando se configura, 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. La aplicación lee esta marca para decidir si debe solicitar una confirmación del mensaje de respuesta que está a punto de enviar. Esta marca también puede indicar si el par está usando WRMP. |
kFlagPeerRequestedAck
|
Si se establece, significa que hay una confirmación pendiente para devolver. |
kFlagResponseExpected
|
Solo para uso interno y de depuración: Cuando se configura, la capa de intercambio no envía una confirmación. |
kFlagUseEphemeralUDPPort
|
Liberar automáticamente la WeaveConnection asociada cuando se libera el contexto de intercambio. |
@36
@36
@37
@37
@38
@38
Propiedades | |
---|---|
kFabricIdDefaultForTest
|
Es el ID de tejido predeterminado, que solo debe usarse para pruebas. |
@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 de tipos de certificados incluye un conjunto de valores predefinidos que describen las aplicaciones de certificados de uso común. Los desarrolladores también pueden ampliar el rango de valores del tipo de certificado con tipos específicos de la aplicación que describan 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 se ve afectado 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 >= este valor. |
kCertType_CA
|
Un certificado de la AC. |
kCertType_Device
|
Un certificado de dispositivo de Weave. |
kCertType_FirmwareSigning
|
Un certificado de firma de firmware de Weave. |
kCertType_General
|
El certificado es de un tipo general o no específico. |
kCertType_Max
|
Los tipos de certificado 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 el origen 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
|
Par autenticado con una clave de grupo compartida. |
kWeaveAuthModeCategory_PASE
|
Par autenticado mediante el protocolo Weave PASE. |
kWeaveAuthModeCategory_TAKE
|
Par autenticado a través del 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 un 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 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 el código de vinculación de dispositivos |
kWeaveAuthMode_TAKE_IdentificationKey
|
Par autenticado mediante take con una clave de identificación de token. |
kWeaveAuthMode_Unauthenticated
|
El par no se autenticó. |
@42
@42
Propiedades | |
---|---|
kFabricSecretScope_All
|
Todos los dispositivos pueden tener el secreto de Fabric 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
|
Valor de bytes que construye la clave de integridad, que se usa solo para pruebas. |
@44
@44
Tamaño del multiplicador 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 que pertenecen al encabezado de un mensaje de Weave codificado.
Propiedades | |
---|---|
kWeaveHeaderFlag_DestNodeId
|
Indica que el ID de 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 identificadores de EUI-64 IEEE.
Propiedades | |
---|---|
kEUI64_IG_Group
|
Es un valor de bits individual o de grupo que indica un identificador EUI-64 de dirección de grupo. |
kEUI64_IG_Individual
|
Es un valor de bits individual o de 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. Un valor de 1 indica que el ID es una dirección de grupo. |
kEUI64_UL_Local
|
Valor de bits universal/local que indica un identificador EUI-64 administrado de forma local. |
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 universalmente (a nivel mundial). 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 nodos de Weave.
Propiedades | |
---|---|
kMaxAlwaysLocalWeaveNodeId
|
Los identificadores de nodos de tejido menores o iguales que este valor se consideran locales por conveniencia de la prueba. |
WeaveEncryptionType
WeaveEncryptionType
Los tipos de encriptación para el mensaje de Weave.
Propiedades | |
---|---|
kWeaveEncryptionType_AES128CTRSHA1
|
Mensaje encriptado mediante encriptación AES-128-CTR con integridad de mensajes HMAC-SHA-1. |
kWeaveEncryptionType_None
|
El mensaje no está encriptado. |
WeaveExchangeFlags
WeaveExchangeFlags
Los bits de marca de encabezado de Weave Exchange.
Propiedades | |
---|---|
kWeaveExchangeFlag_AckId
|
Se configura cuando el mensaje actual es una confirmación de un mensaje recibido previamente. |
kWeaveExchangeFlag_Initiator
|
Se establece cuando el iniciador de un intercambio envía el mensaje actual. |
kWeaveExchangeFlag_NeedsAck
|
Se configura cuando el mensaje actual solicita una confirmación del destinatario. |
WeaveExchangeVersion
WeaveExchangeVersion
La versión del encabezado de Weave Exchange.
WeaveMessageFlags
WeaveMessageFlags
Marcas asociadas con un mensaje entrante o saliente de Weave.
Los valores que se definen aquí se deben usar en el campo WeaveMessageInfo.Flags.
Propiedades | |
---|---|
kWeaveMessageFlag_DefaultMulticastSourceAddress
|
Indica que se debe seleccionar la dirección de origen IPv6 predeterminada 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 de 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 de pares. |
kWeaveMessageFlag_MulticastFromLinkLocal
|
Alias obsoleto para |
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 de nodo de origen 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
La versión del formato Weave Message.
Weave elegirá la versión adecuada del mensaje según el formato de marco requerido para el mensaje de Weave. De forma predeterminada, la versión del mensaje es kWeaveMessageVersion_V1. Cuando usas Weave Reliable Messaging, por ejemplo, la versión es kWeaveMessageVersion_V2.
Propiedades | |
---|---|
kWeaveMessageVersion_Unspecified
|
Versión del mensaje no especificada. |
kWeaveMessageVersion_V1
|
Versión de formato del encabezado de mensaje V1. |
kWeaveMessageVersion_V2
|
Formato del encabezado de mensaje versión 2. |
WeaveSubnetId
WeaveSubnetId
Weave tiene algunos números de subred reservados para interfaces de red distinguidas en dispositivos típicos.
Estos números se asignan aquí a constantes simbólicas. Weave usa estos números de subred para configurar direcciones ULA 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
|
Número de subred de la interfaz de radio de Wi-Fi. |
kWeaveSubnetId_Service
|
Es el identificador de subred para los extremos del servicio de Nest. |
kWeaveSubnetId_ThreadAlarm
|
El número de subred de la interfaz de radio de alarmas de Thread. |
kWeaveSubnetId_ThreadMesh
|
Es el identificador de la subred de la interfaz de radio de la malla de Thread. |
kWeaveSubnetId_WiFiAP
|
El número de subred de la interfaz del PA 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 un Secret de Fabric.
.WeaveAuthMode
uint16_t WeaveAuthMode
Identifica cómo se autentica un nodo de intercambio de tráfico.
WeaveAuthMode describe los medios por los cuales se ha autenticado o se debe autenticar un nodo de par durante un intercambio de mensajes de Weave. En un contexto de inicio, 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 WeaveAuthMode asignado a un mensaje entrante de Weave está relacionado con la naturaleza de la clave que se utilizó 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 del establecimiento de la clave.
WeaveAuthMode incluye un conjunto de valores predefinidos que describen los modos de autenticación comunes. Estas 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 de 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 entrante o saliente de Weave.
Los valores que se definen aquí se deben usar en el campo WeaveMessageInfo.Flags.
WeaveMessageHeader
struct WeaveMessageInfo WeaveMessageHeader
WeaveMessageVersion
enum nl::Weave::WeaveMessageVersion WeaveMessageVersion
La versión del formato Weave Message.
Weave elegirá la versión adecuada del mensaje según el formato de marco requerido para el mensaje de Weave. De forma predeterminada, la versión del mensaje es kWeaveMessageVersion_V1. Cuando usas Weave Reliable Messaging, por ejemplo, la versión es kWeaveMessageVersion_V2.
WeaveSubnetId
enum nl::Weave::WeaveSubnetId WeaveSubnetId
Weave tiene algunos números de subred reservados para interfaces de red distinguidas en dispositivos típicos.
Estos números se asignan aquí a constantes simbólicas. Weave usa estos números de subred para configurar direcciones ULA 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 }
Diversificador de claves que se usa para la derivación de claves de encriptación de mensajes de Weave.
Este valor representa los primeros 4 bytes del HASH SHA-1 de "Nest Weave Message EK and AK" frase.
Funciones
AppGroupMasterKeyIdFromAuthMode
uint8_t AppGroupMasterKeyIdFromAuthMode( WeaveAuthMode authMode )
Muestra el ID de clave maestra del grupo de aplicaciones asociado con el modo de autenticación.
.CASEAuthMode
WeaveAuthMode CASEAuthMode( uint8_t certType )
Devuelve el modo de autenticación CASE 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 y legible que describe el error.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Resultado que se muestra |
true Si se escribió una cadena de descripción en el búfer proporcionado.
|
||||||
Resultado que se muestra |
false Si el error proporcionado no fue un error de Weave.
|
GenerateWeaveNodeId
NL_DLL_EXPORT WEAVE_ERROR GenerateWeaveNodeId( uint64_t & nodeId )
Generar un ID aleatorio de nodo de Weave.
Esta función genera un ID de nodo de Weave único a nivel local de 64 bits. Esta función usa una fuente de datos aleatorios criptográficamente segura para garantizar la unicidad del valor generado. 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 |
|
||
Valores de retorno |
|
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 | |
---|---|
Resultado que se muestra |
Número de Fibonacci sin firma 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 sin firma de 16 bits.
Detalles | |
---|---|
Resultado que se muestra |
Número entero aleatorio de 16 bits sin firma.
|
GetRandU32
uint32_t GetRandU32( void )
Esta función genera un número al azar sin firma de 32 bits.
Detalles | |
---|---|
Resultado que se muestra |
Número entero aleatorio de 32 bits sin firma.
|
GetRandU64
uint64_t GetRandU64( void )
Esta función genera un número al azar sin firma de 64 bits.
Detalles | |
---|---|
Resultado que se muestra |
Número entero aleatorio de 64 bits sin firma.
|
GetRandU8
uint8_t GetRandU8( void )
Esta función genera un número al azar sin firma de 8 bits.
Detalles | |
---|---|
Resultado que se muestra |
Número entero de 8 bits aleatorio sin firma.
|
GetVendorName
const char * GetVendorName( uint16_t vendorId )
GroupKeyAuthMode
WeaveAuthMode GroupKeyAuthMode( uint32_t keyId )
Muestra el modo de autenticación de una clave de grupo correspondiente para un ID de clave determinado.
.ID de interfaz IPv6IdToWeaveNodeId
uint64_t IPv6InterfaceIdToWeaveNodeId( uint64_t interfaceId )
Convertir un identificador de interfaz de dirección IPv6 en un identificador de nodo de Weave
Para una mayor conveniencia en las pruebas, los identificadores de nodos menores o iguales que #kMaxSiempreLocalWeaveNodeId (65535) se consideran “locales” y tienen su bit universal/local establecido en cero. Esto simplifica la representación de cadena 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 |
|
||
Resultado que se muestra |
el identificador de nodo de Weave asignado de 64 bits.
|
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 a 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 )
ID global de WeaveFabricToIPv6
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 corresponde a los 40 bits inferiores del ID de tejido de 64 bits de la red.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Resultado que se muestra |
el identificador global IPv6 asignado.
|
WeaveMessageSourceToStr
void WeaveMessageSourceToStr( char *buf, uint32_t bufSize, const WeaveMessageInfo *msgInfo )
OBSOLETO Usa en su lugar WeaveMessageLayer::GetPeerDescription().
WeaveNodeAddrToStr
void WeaveNodeAddrToStr( char *buf, uint32_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, WeaveConnection *con )
OBSOLETO Usa en su lugar WeaveMessageLayer::GetPeerDescription().
IDdenododeWeaveToIPv6IDdeinterfaz
uint64_t WeaveNodeIdToIPv6InterfaceId( uint64_t nodeId )
Convertir un identificador de nodo de Weave en un identificador de interfaz de dirección IPv6.
Los identificadores de nodos de Weave son EUI-64 universales/locales que, según RFC-3513, se convierten en identificadores de interfaz invirtiendo el bit universal/local (bit 57 contando el LSB como 0).
Para una mayor conveniencia en las pruebas, los identificadores de nodos inferiores o iguales que #kMax AlwaysLocalWeaveNodeId (65535) se consideran “locales” y tienen su bit universal/local establecido en cero. Esto simplifica la representación de cadena 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 |
|
||
Resultado que se muestra |
el identificador de la interfaz IPv6.
|
máx.
const _T & max( const _T & a, const _T & b )
min
const _T & min( const _T & a, const _T & b )