En Google, luchamos por la equidad racial de la comunidad negra. Más información

nl :: Tejido

Resumen

Enumeraciones

@21 {
kFlagConnectionClosed = 0x0002,
kFlagAutoRequestAck = 0x0004,
kFlagDropAck = 0x0008,
kFlagResponseExpected = 0x0010,
kFlagAckPending = 0x0020,
kFlagPeerRequestedAck = 0x0040,
kFlagMsgRcvdFromPeer = 0x0080,
kFlagAutoReleaseKey = 0x0100,
kFlagAutoReleaseConnection = 0x0200,
kFlagUseEphemeralUDPPort = 0x0400
}
enumeración
@36 enumeración
@37 enumeración
@38 {
kFabricIdDefaultForTest = 1ULL
}
enumeración
@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
}
enumeración
Identifica el propósito o la aplicación del certificado.
@40 enumeración
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
}
enumeración
@42 {
kFabricSecretScope_All = 0x00
}
enumeración
@43 {
kTestKey_AES128CTRSHA1_DataKeyByte = 0xAB,
kTestKey_AES128CTRSHA1_IntegrityKeyByte = 0xBA
}
enumeración
@44 enumeración
Teje el tamaño del diversificador de claves de la aplicación de cifrado de mensajes.
@45 enumeración
@53 enumeración
@54 {
kWeavePeerDescription_MaxLength = 100
}
enumeración
@55 {
kWeaveHeaderFlag_DestNodeId = 0x0100,
kWeaveHeaderFlag_SourceNodeId = 0x0200,
kWeaveHeaderFlag_TunneledData = 0x0400,
kWeaveHeaderFlag_MsgCounterSyncReq = 0x0800
}
enumeración
Definiciones relativas al encabezado de un mensaje 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
}
enumeración
Definiciones de campo de bits para identificadores IEEE EUI-64.
@57 {
kMaxAlwaysLocalWeaveNodeId = 0x000000000000FFFFULL
}
enumeración
Gamas especiales de ID de nodo de tejido.
WeaveEncryptionType {
kWeaveEncryptionType_None = 0,
kWeaveEncryptionType_AES128CTRSHA1 = 1
}
enumeración
Los tipos de cifrado del mensaje Weave.
WeaveExchangeFlags {
kWeaveExchangeFlag_Initiator = 0x1,
kWeaveExchangeFlag_AckId = 0x2,
kWeaveExchangeFlag_NeedsAck = 0x4
}
enumeración
Los bits de bandera de encabezado de Weave Exchange.
WeaveExchangeVersion enumeración
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
}
enumeración
Banderas asociadas con un mensaje de Weave entrante o saliente.
WeaveMessageVersion {
kWeaveMessageVersion_Unspecified = 0,
kWeaveMessageVersion_V1 = 1,
kWeaveMessageVersion_V2 = 2
}
enumeración
La versión del formato Weave Message.
WeaveSubnetId {
kWeaveSubnetId_NotSpecified = 0,
kWeaveSubnetId_PrimaryWiFi = 1,
kWeaveSubnetId_ThreadAlarm = 2,
kWeaveSubnetId_WiFiAP = 3,
kWeaveSubnetId_MobileDevice = 4,
kWeaveSubnetId_Service = 5,
kWeaveSubnetId_ThreadMesh = 6
}
enumeración
Weave tiene algunos números de subred reservados para interfaces de red distinguidas en dispositivos típicos.
WeaveVendorId enumeración

Typedefs

FabricSecretRotationScheme typedef
uint8_t
FabricSecretScope nl :: Weave :: FabricSecretScope
uint8_t
Identifica la categoría de dispositivos que pueden poseer y utilizar fabric secret.
WeaveAuthMode typedef
uint16_t
Identifica cómo se autentica un nodo del mismo nivel.
WeaveEncryptionKey typedef
WeaveEncryptionType typedef
enum nl::Weave::WeaveEncryptionType
Los tipos de cifrado del mensaje Weave.
WeaveExchangeFlags typedef
enum nl::Weave::WeaveExchangeFlags
Los bits de bandera de encabezado de Weave Exchange.
WeaveExchangeVersion typedef
enum nl::Weave::WeaveExchangeVersion
La versión del encabezado de Weave Exchange.
WeaveMessageFlags typedef
enum nl::Weave::WeaveMessageFlags
Banderas asociadas con un mensaje de Weave entrante o saliente.
WeaveMessageHeader typedef
WeaveMessageVersion typedef
enum nl::Weave::WeaveMessageVersion
La versión del formato Weave Message.
WeaveSubnetId typedef
enum 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 utilizado para la derivación de claves de cifrado de mensajes Weave.

Funciones

AppGroupMasterKeyIdFromAuthMode (WeaveAuthMode authMode)
uint8_t
Devuelve el ID de la clave maestra del grupo de aplicaciones asociado con el modo de autenticación.
CASEAuthMode (uint8_t certType)
WeaveAuthMode
Devuelve un modo de autenticación CASE correspondiente para un tipo de certificado determinado.
CertTypeFromAuthMode (WeaveAuthMode authMode)
uint8_t
Devuelve el origen de la contraseña para el modo de autenticación dado.
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, devuelve una cadena C terminada en NULL legible por humanos que describe el error.
GenerateWeaveNodeId (uint64_t & nodeId)
NL_DLL_EXPORT WEAVE_ERROR
Generar ID de nodo de tejido aleatorio.
GetFibonacciForIndex (uint32_t index)
uint32_t
Esta función genera un número de Fibonacci de 32 bits para un índice de 32 bits dado.
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 aleatorio sin signo de 16 bits.
GetRandU32 (void)
uint32_t
Esta función genera un número aleatorio sin signo de 32 bits.
GetRandU64 (void)
uint64_t
Esta función genera un número aleatorio sin signo de 64 bits.
GetRandU8 (void)
uint8_t
Esta función genera un número aleatorio sin signo de 8 bits.
GetVendorName (uint16_t vendorId)
const char *
GroupKeyAuthMode (uint32_t keyId)
WeaveAuthMode
Devuelve un modo de autenticación de clave de grupo correspondiente para una ID de clave determinada.
IPv6InterfaceIdToWeaveNodeId (uint64_t interfaceId)
uint64_t
Convierta un identificador de interfaz de dirección IPv6 en un identificador de nodo Weave.
IsCASEAuthMode (WeaveAuthMode authMode)
bool
Verdadero si el modo de autenticación se basa en el protocolo Weave CASE.
IsCertAuthMode (WeaveAuthMode authMode)
bool
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
Verdadero si el modo de autenticación se basa en la posesión de una clave de grupo compartida.
IsPASEAuthMode (WeaveAuthMode authMode)
bool
Verdadero si el modo de autenticación se basa en el protocolo Weave PASE.
IsPasswordAuthMode (WeaveAuthMode authMode)
bool
Verdadero si el modo de autenticación se basa en la posesión de una contraseña compartida.
IsTAKEAuthMode (WeaveAuthMode authMode)
bool
Verdadero si el modo de autenticación se basa en el protocolo 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
Devuelve un modo de autenticación PASE correspondiente para una fuente de contraseña determinada.
PasswordSourceFromAuthMode (WeaveAuthMode authMode)
uint8_t
Devuelve la fuente de la contraseña para el modo de autenticación dado.
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, constWeaveEncryptionKey & key, char *buf, size_t bufSize)
void
WeaveFabricIdToIPv6GlobalId (uint64_t fabricId)
uint64_t
Convierta un identificador de tejido Weave en un identificador global IPv6 ULA.
WeaveMessageSourceToStr (char *buf, uint32_t bufSize, const WeaveMessageInfo *msgInfo)
void
DEPRECATED Uso WeaveMessageLayer :: GetPeerDescription () en su lugar.
WeaveNodeAddrToStr (char *buf, uint32_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, WeaveConnection *con)
void
DEPRECATED Uso WeaveMessageLayer :: GetPeerDescription () en su lugar.
WeaveNodeIdToIPv6InterfaceId (uint64_t nodeId)
uint64_t
Convierta un identificador de nodo 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 :: :: armadura de Encuadernación

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

nl :: :: Contador de la armadura

Una interfaz para administrar un contador como un valor entero.

nl :: :: Armadura ExchangeContext

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

nl :: :: Armadura FabricStateDelegate

Esta clase de delegado abstracto comunica los cambios de estado de la estructura.

nl :: :: Armadura HostPortList

Para administrar y manipular una lista de puertos de host, una colección compacta codificada en binario de tuplas de identificadores de puerto y host asociadas con el directorio de servicios de Weave.

nl :: :: Armadura JNIUtils
nl :: :: Armadura MonotonicallyIncreasingCounter

Una clase para administrar un contador que aumenta monótonamente como un valor entero.

nl :: :: Armadura PersistedCounter

Una clase para administrar un contador como un valor entero destinado a persistir entre reinicios.

nl :: :: Armadura WeaveConnection

La definición de la clase Weave Connection.

nl :: :: Armadura WeaveConnectionTunnel

La definición de la WeaveConnectionTunnel clase, que gestiona un par de TCPEndPoints cuyos WeaveConnections originales se han acoplado, y entre las cuales la WeaveMessageLayer reenvía todos los cierres de datos y de conexión.

nl :: :: Armadura WeaveEncryptionKey_AES128CTRSHA1
nl :: :: Armadura WeaveExchangeHeader

Esto especifica el perfil y el mensaje de la armadura de tipo de un mensaje de la armadura en particular dentro de un ExchangeContext .

nl :: :: Armadura WeaveExchangeManager

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

nl :: :: Armadura WeaveFabricState

Declaración adelantada de WeaveFabricState .

nl :: :: Armadura WeaveKeyId

La definición del identificador Weave Key.

nl :: :: Armadura WeaveMessageLayer

La definición de la WeaveMessageLayer clase, que gestiona la comunicación con otros nodos de la armadura.

nl :: :: Armadura WeaveMsgEncryptionKey

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

nl :: :: Armadura WeaveMsgEncryptionKeyCache

Caché de claves para claves de cifrado de mensajes Weave.

nl :: :: Armadura WeaveSecurityManager
nl :: :: Armadura WeaveServerBase

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

nl :: :: Armadura WeaveServerDelegateBase

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

nl :: :: Armadura WeaveSessionKey

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

nl :: :: Armadura WeaveSessionState

Transmite el estado de comunicación necesario para enviar / recibir mensajes con otro nodo.

Estructuras

nl :: :: Armadura JNILibraryMethod
nl :: :: Armadura WRMPConfig

La configuración de WRMP.

nl :: :: Armadura WeaveMessageInfo

Información sobre un mensaje de Weave que está en proceso de ser enviado o recibido.

Sindicatos

nl :: :: Armadura WeaveEncryptionKey

Espacios de nombres

nl :: Armadura :: ASN1

Este espacio de nombres incluye todas las interfaces dentro de Weave para trabajar con la notación de sintaxis abstracta uno (ASN.1).

nl :: :: Armadura Crypto

Este espacio de nombres incluye todas las interfaces dentro de Weave para soporte criptográfico compartido.

nl :: :: Armadura DeviceLayer
nl :: :: Armadura DeviceManager
nl :: :: Codificación de la armadura

Este espacio de nombres proporciona funciones para:

nl :: :: Registro de la armadura

Este espacio de nombres incluye todas las interfaces dentro de Weave para el soporte de registro compartido.

nl :: :: Plataforma de la armadura
nl :: :: Perfiles de la armadura

Este espacio de nombres incluye todas las interfaces dentro de la armadura de la armadura de perfiles, tanto común y el Nido laboratorios específica del proveedor.

nl :: :: Armadura SecuritySupport
nl :: :: Estadísticas de la armadura
nl :: Armadura :: Soporte
nl :: :: Sistema de la armadura
nl :: :: armadura de TLV

Definiciones para trabajar con datos codificados en la armadura de TLV formato.

nl :: Armadura :: Cálido

Este espacio de nombres incluye interfaces para Weave Address and Routing Module, un módulo portátil para configurar direcciones IP y rutas 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 cifrado del mensaje cuando se libera el contexto de intercambio.

kFlagAutoReleaseKey

Cuando se establece, significa que se ha recibido al menos un mensaje de un 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 un acuse de recibo 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ó un acuse de recibo.

La aplicación lee esta bandera para decidir si necesita solicitar un acuse de recibo para el mensaje de respuesta que está a punto de enviar. Esta bandera también puede indicar si el par está utilizando WRMP.

kFlagPeerRequestedAck

Cuando se establece, significa que hay un acuse de recibo pendiente de ser devuelto.

kFlagResponseExpected

Solo interno y depuración: cuando se establece, la capa de intercambio no envía un acuse de recibo.

kFlagUseEphemeralUDPPort

Liberar automáticamente el asociado WeaveConnection cuando se libera el contexto de cambio.

@ 36

 @36

@ 37

 @37

@ 38

 @38
Propiedades
kFabricIdDefaultForTest

ID de tejido predeterminado, que solo debe usarse 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 certificado no se incluyen como atributos de los certificados correspondientes, sino que se derivan de la estructura del certificado y / o el contexto en el que se utiliza. La enumeración del tipo de certificado incluye un conjunto de valores predefinidos que describen las aplicaciones de certificado más utilizadas. Los desarrolladores también pueden ampliar el rango de valores del tipo de certificado con tipos específicos de la aplicación que describen certificados personalizados o certificados con propiedades de seguridad únicas.

Los tipos de certificado se utilizan principalmente en la implementación de políticas de control de acceso, donde el acceso a las funciones de la aplicación está influenciado por el tipo de certificado presentado por un 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 CA

kCertType_Device

Un certificado de dispositivo Weave.

kCertType_FirmwareSigning

Un certificado de firma de firmware de Weave.

kCertType_General

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

kCertType_Max

Los tipos de certificados no deben superar este valor.

kCertType_NotSpecified

No se ha especificado el tipo de certificado.

kCertType_ServiceEndpoint

Un certificado de punto final 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.

Tejer PASE)

@ 41

 @41
Propiedades
kWeaveAuthModeCategory_AppDefinedBase

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

kWeaveAuthModeCategory_CASE

Peer autenticado mediante el protocolo Weave CASE.

kWeaveAuthModeCategory_General

Peer autenticado usando uno de un conjunto de mecanismos generales.

kWeaveAuthModeCategory_GroupKey

Peer autenticado mediante una clave de grupo compartida.

kWeaveAuthModeCategory_PASE

Peer autenticado mediante el protocolo Weave PASE.

kWeaveAuthModeCategory_TAKE

Peer autenticado mediante el protocolo Weave TAKE.

kWeaveAuthMode_CASE_AccessToken

Peer autenticado mediante CASE con certificado de token de acceso Weave.

kWeaveAuthMode_CASE_AnyCert

Peer autenticado mediante CASE con certificado arbitrario o certificado de tipo desconocido.

kWeaveAuthMode_CASE_Device

Peer autenticado mediante CASE con certificado de dispositivo Weave.

kWeaveAuthMode_CASE_GeneralCert

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

kWeaveAuthMode_CASE_ServiceEndPoint

Peer autenticado mediante CASE con certificado de punto final de servicio Weave.

kWeaveAuthMode_NotSpecified

No se especificó el modo de autenticación.

kWeaveAuthMode_PASE_PairingCode

Peer autenticado usando PASE con el código de emparejamiento del dispositivo.

kWeaveAuthMode_TAKE_IdentificationKey

Peer autenticado usando TAKE con una clave de identificación de token.

kWeaveAuthMode_Unauthenticated

Peer no autenticado.

@ 42

 @42
Propiedades
kFabricSecretScope_All

Todos los dispositivos pueden poseer el correspondiente secreto de tejido.

@ 43

 @43
Propiedades
kTestKey_AES128CTRSHA1_DataKeyByte

Valor de byte que construye la clave de cifrado, que se usa solo para pruebas.

kTestKey_AES128CTRSHA1_IntegrityKeyByte

Valor de byte que construye la clave de integridad, que se usa solo para pruebas.

@ 44

 @44

Teje el tamaño del diversificador de claves de la aplicación de cifrado de mensajes.

@ 45

 @45

@ 53

 @53

@ 54

 @54
Propiedades
kWeavePeerDescription_MaxLength

Longitud máxima de cadena (incluyendo el carácter NUL) devuelto por WeaveMessageLayer :: GetPeerDescription () .

@ 55

 @55

Definiciones relativas al encabezado de un mensaje Weave codificado.

Propiedades
kWeaveHeaderFlag_DestNodeId

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

kWeaveHeaderFlag_MsgCounterSyncReq

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

kWeaveHeaderFlag_SourceNodeId

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

kWeaveHeaderFlag_TunneledData

Indica que la carga útil del mensaje Weave es un paquete IP tunelizado.

@ 56

 @56

Definiciones de campo de bits para identificadores IEEE EUI-64.

Propiedades
kEUI64_IG_Group

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

kEUI64_IG_Individual

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

kEUI64_IG_Mask

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

Un valor de 0 indica que la identificación es una dirección individual. Un valor de 1 indica que la identificación es una dirección de grupo.

kEUI64_UL_Local

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

kEUI64_UL_Mask

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

Un valor de 0 indica que la identificación se administra universalmente (globalmente). Un valor de 1 indica que la identificación se administra localmente.

kEUI64_UL_Unversal

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

@ 57

 @57

Gamas especiales de ID de nodo de tejido.

Propiedades
kMaxAlwaysLocalWeaveNodeId

Los identificadores de nodos de tejido menores o iguales que este valor se consideran locales para facilitar la prueba.

WeaveEncryptionType

 WeaveEncryptionType

Los tipos de cifrado del mensaje Weave.

Propiedades
kWeaveEncryptionType_AES128CTRSHA1

Mensaje cifrado mediante cifrado AES-128-CTR con integridad de mensaje HMAC-SHA-1.

kWeaveEncryptionType_None

Mensaje no cifrado.

WeaveExchangeBanderas

 WeaveExchangeFlags

Los bits de bandera de encabezado de Weave Exchange.

Propiedades
kWeaveExchangeFlag_AckId

Se establece cuando el mensaje actual es un acuse de recibo de un mensaje recibido anteriormente.

kWeaveExchangeFlag_Initiator

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

kWeaveExchangeFlag_NeedsAck

Se establece cuando el mensaje actual solicita un reconocimiento del destinatario.

WeaveExchangeVersion

 WeaveExchangeVersion

La versión del encabezado de Weave Exchange.

TejerMensajeBanderas

 WeaveMessageFlags

Banderas asociadas con un mensaje de Weave entrante o saliente.

Los valores definidos aquí son para uso dentro de la WeaveMessageInfo.Flags campo.

Propiedades
kWeaveMessageFlag_DefaultMulticastSourceAddress

Indica que se debe utilizar la selección de dirección de origen IPv6 predeterminada al enviar mensajes de multidifusión IPv6.

kWeaveMessageFlag_DelaySend

Indica que es necesario retrasar el envío del mensaje.

kWeaveMessageFlag_DestNodeId

Indica que el ID del nodo de destino está presente en el encabezado del mensaje 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 tejido.

kWeaveMessageFlag_MessageEncoded

Indica que el mensaje Weave ya está codificado.

kWeaveMessageFlag_MsgCounterSyncReq

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

kWeaveMessageFlag_MulticastFromLinkLocal

Alias obsoletas para kWeaveMessageFlag_DefaultMulticastSourceAddress .

kWeaveMessageFlag_PeerGroupMsgIdNotSynchronized

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

kWeaveMessageFlag_PeerRequestedAck

Indica que el remitente del mensaje solicitó un acuse de recibo.

kWeaveMessageFlag_RetainBuffer

Indica que el búfer de mensajes no debe liberarse después del envío.

kWeaveMessageFlag_ReuseMessageId

Indica que el identificador de mensaje existente debe reutilizarse.

kWeaveMessageFlag_ReuseSourceId

Indica que el identificador de nodo de origen existente debe reutilizarse.

kWeaveMessageFlag_SourceNodeId

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

kWeaveMessageFlag_TunneledData

Indica que la carga útil del mensaje Weave es un paquete IP tunelizado.

kWeaveMessageFlag_ViaEphemeralUDPPort

Indica que el mensaje se está enviando / recibiendo a través del puerto UDP efímero local.

WeaveMessageVersion

 WeaveMessageVersion

La versión del formato Weave Message.

Weave elegirá la versión de mensaje apropiada 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 de mensaje no especificada.

kWeaveMessageVersion_V1

Versión de formato de encabezado de mensaje V1.

kWeaveMessageVersion_V2

Versión de formato de encabezado de mensaje V2.

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 utiliza estos números de subred para configurar direcciones IPv6 ULA en las interfaces adecuadas.

Propiedades
kWeaveSubnetId_MobileDevice

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

kWeaveSubnetId_NotSpecified

Reservado como valor nulo o no especificado.

kWeaveSubnetId_PrimaryWiFi

El número de subred de la interfaz de radio WiFi.

kWeaveSubnetId_Service

El identificador de subred para los puntos finales del servicio Nest.

kWeaveSubnetId_ThreadAlarm

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

kWeaveSubnetId_ThreadMesh

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

kWeaveSubnetId_WiFiAP

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

WeaveVendorId

 WeaveVendorId

Typedefs

TejidoSecretoRotaciónEsquema

uint8_t FabricSecretRotationScheme

TejidoSecretoAlcance

uint8_t FabricSecretScope

Identifica la categoría de dispositivos que pueden poseer y utilizar fabric secret.

WeaveAuthMode

uint16_t WeaveAuthMode

Identifica cómo se autentica un nodo del mismo nivel.

WeaveAuthMode describe los medios por los cuales un nodo par ha sido, o debería, autenticado durante un intercambio de mensajes Weave. En un contexto inicial, las aplicaciones usan WeaveAuthMode para expresar un modo de autenticación de pares deseado para un intercambio, instruyendo así a las capas de seguridad y mensajería de Weave para lograr el modo deseado o fallar la comunicación. En un contexto de respuesta, WeaveAuthMode identifica cómo se autenticó el nodo solicitante (el par), lo que permite que la aplicación de respuesta aplique controles de acceso basados ​​en esta información.

El WeaveAuthMode asignado a un mensaje Weave entrante está relacionado con la naturaleza de la clave que se utilizó para cifrar ese mensaje. El WeaveAuthMode se 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 modos de autenticación comunes. Estos se desglosan por el mecanismo de acuerdo clave (CASE, PASE, GroupKey, etc.). Los desarrolladores pueden extender WeaveAuthMode definiendo modos específicos de la aplicación, que pueden adjuntar a claves de cifrado específicas.

WeaveEncryptionKey

union nl::Weave::WeaveEncryptionKey WeaveEncryptionKey

WeaveEncryptionType

enum nl::Weave::WeaveEncryptionType WeaveEncryptionType

Los tipos de cifrado del mensaje Weave.

WeaveExchangeBanderas

enum nl::Weave::WeaveExchangeFlags WeaveExchangeFlags

Los bits de bandera de encabezado de Weave Exchange.

WeaveExchangeVersion

enum nl::Weave::WeaveExchangeVersion WeaveExchangeVersion

La versión del encabezado de Weave Exchange.

TejidoMensajeBanderas

enum nl::Weave::WeaveMessageFlags WeaveMessageFlags

Banderas asociadas con un mensaje de Weave entrante o saliente.

Los valores definidos aquí son para uso dentro de la WeaveMessageInfo.Flags campo.

WeaveMessageHeader

struct WeaveMessageInfo WeaveMessageHeader

WeaveMessageVersion

enum nl::Weave::WeaveMessageVersion WeaveMessageVersion

La versión del formato Weave Message.

Weave elegirá la versión de mensaje apropiada 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 subred reservados para interfaces de red distinguidas en dispositivos típicos.

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

Variables

ExchangeMgr

NL_DLL_EXPORT WeaveExchangeManager ExchangeMgr

Estado de la tela

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

TejidoMensajeCapa

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 utilizado para la derivación de claves de cifrado de mensajes Weave.

Este valor representa los primeros 4 bytes del SHA-1 HASH de la frase "Nest Weave Message EK y AK".

Funciones

AppGroupMasterKeyIdFromAuthMode

uint8_t AppGroupMasterKeyIdFromAuthMode(
  WeaveAuthMode authMode
)

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

CASEAuthMode

WeaveAuthMode CASEAuthMode(
  uint8_t certType
)

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

CertTypeFromAuthMode

uint8_t CertTypeFromAuthMode(
  WeaveAuthMode authMode
)

Devuelve la fuente de la contraseña para el modo de autenticación dado.

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, devuelve una cadena C terminada en NULL legible por humanos que describe el error.

Detalles
Parámetros
[in] buf
Búfer en el que se colocará la cadena de error.
[in] bufSize
Tamaño del búfer proporcionado en bytes.
[in] err
El error que se describirá.
Devoluciones
true Si se escribió una cadena de descripción en el búfer proporcionado.
Devoluciones
falso Si el error proporcionado no fue un error de tejido.

GenerateWeaveNodeId

NL_DLL_EXPORT WEAVE_ERROR GenerateWeaveNodeId(
  uint64_t & nodeId
)

Generar ID de nodo de tejido aleatorio.

Esta función genera un Id. De nodo de tejido único localmente de 64 bits. Esta función utiliza una fuente de datos aleatorios criptográficamente fuerte para garantizar la unicidad del valor generado. Tenga en cuenta que el bit 57 del Id del nodo Weave generado se establece en 1 para indicar que el Id del nodo Weave generado es local (no globalmente) único.

Detalles
Parámetros
nodeId
Una referencia al ID del nodo Weave de 64 bits.
Valores devueltos
WEAVE_NO_ERROR
Si el ID de 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 de 32 bits dado.

Detalles
Devoluciones
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 aleatorio sin signo de 16 bits.

Detalles
Devoluciones
Entero aleatorio sin signo de 16 bits.

GetRandU32

uint32_t GetRandU32(
  void
)

Esta función genera un número aleatorio sin signo de 32 bits.

Detalles
Devoluciones
Entero aleatorio sin signo de 32 bits.

GetRandU64

uint64_t GetRandU64(
  void
)

Esta función genera un número aleatorio sin signo de 64 bits.

Detalles
Devoluciones
Entero aleatorio sin signo de 64 bits.

GetRandU8

uint8_t GetRandU8(
  void
)

Esta función genera un número aleatorio sin signo de 8 bits.

Detalles
Devoluciones
Entero aleatorio sin signo de 8 bits.

GetVendorName

const char * GetVendorName(
  uint16_t vendorId
)

GroupKeyAuthMode

WeaveAuthMode GroupKeyAuthMode(
  uint32_t keyId
)

Devuelve un modo de autenticación de clave de grupo correspondiente para una ID de clave determinada.

IPv6InterfaceIdToWeaveNodeId

uint64_t IPv6InterfaceIdToWeaveNodeId(
  uint64_t interfaceId
)

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

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

Detalles
Parámetros
[in] interfaceId
Identificador de interfaz de 64 bits.
Devoluciones
el identificador de nodo Weave de 64 bits mapeado.

IsCASEAuthMode

bool IsCASEAuthMode(
  WeaveAuthMode authMode
)

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

IsCertAuthMode

bool IsCertAuthMode(
  WeaveAuthMode authMode
)

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
)

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

IsPASEAuthMode

bool IsPASEAuthMode(
  WeaveAuthMode authMode
)

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

IsPasswordAuthMode

bool IsPasswordAuthMode(
  WeaveAuthMode authMode
)

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

IsTAKEAuthMode

bool IsTAKEAuthMode(
  WeaveAuthMode authMode
)

Verdadero si el modo de autenticación se basa en el protocolo 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
)

Devuelve un modo de autenticación PASE correspondiente para una fuente de contraseña determinada.

PasswordSourceFromAuthMode

uint8_t PasswordSourceFromAuthMode(
  WeaveAuthMode authMode
)

Devuelve el origen de la contraseña para el modo de autenticación dado.

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
)

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

El identificador global de ULA para una dirección de estructura son los 40 bits inferiores del ID de estructura de 64 bits de la estructura.

Detalles
Parámetros
[in] fabricId
El identificador de tejido Weave.
Devoluciones
el identificador global de IPv6 mapeado.

WeaveMessageSourceToStr

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

DEPRECATED Uso WeaveMessageLayer :: GetPeerDescription () en su lugar.

WeaveNodeAddrToStr

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

DEPRECATED Uso WeaveMessageLayer :: GetPeerDescription () en su lugar.

WeaveNodeIdToIPv6InterfaceId

uint64_t WeaveNodeIdToIPv6InterfaceId(
  uint64_t nodeId
)

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

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

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

Detalles
Parámetros
[in] nodeId
El identificador de nodo Weave de 64 bits.
Devoluciones
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
)