O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

nl :: Tecer

Resumo

Enumerações

@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 a finalidade ou aplicação do certificado.
@40 enum
Identifica a fonte da senha usada em um protocolo de autenticação baseado em senha (por exemplo
@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
Tecer tamanho do diversificador de chave do aplicativo de criptografia de mensagem
@45 enum
@53 enum
@54 {
kWeavePeerDescription_MaxLength = 100
}
enum
@55 {
kWeaveHeaderFlag_DestNodeId = 0x0100,
kWeaveHeaderFlag_SourceNodeId = 0x0200,
kWeaveHeaderFlag_TunneledData = 0x0400,
kWeaveHeaderFlag_MsgCounterSyncReq = 0x0800
}
enum
Definições relativas ao cabeçalho de uma mensagem de Weave codificada.
@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
Definições de campo de bits para identificadores IEEE EUI-64.
@57 {
kMaxAlwaysLocalWeaveNodeId = 0x000000000000FFFFULL
}
enum
Intervalos especiais de IDs de nós de tecelagem.
WeaveEncryptionType {
kWeaveEncryptionType_None = 0,
kWeaveEncryptionType_AES128CTRSHA1 = 1
}
enum
Os tipos de criptografia para a mensagem Weave.
WeaveExchangeFlags {
kWeaveExchangeFlag_Initiator = 0x1,
kWeaveExchangeFlag_AckId = 0x2,
kWeaveExchangeFlag_NeedsAck = 0x4
}
enum
Os bits de sinalizador de cabeçalho do Weave Exchange.
WeaveExchangeVersion enum
A versão do cabeçalho 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
Sinalizadores associados a uma mensagem Weave de entrada ou saída.
WeaveMessageVersion {
kWeaveMessageVersion_Unspecified = 0,
kWeaveMessageVersion_V1 = 1,
kWeaveMessageVersion_V2 = 2
}
enum
A versão do 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
}
enum
Weave tem alguns números de sub-rede reservados para interfaces de rede distintas em dispositivos típicos.
WeaveVendorId enum

Typedefs

FabricSecretRotationScheme typedef
uint8_t
FabricSecretScope nl :: Weave :: FabricSecretScope
uint8_t
Identifica a categoria de dispositivos que podem possuir e usar segredo de tecido.
WeaveAuthMode typedef
uint16_t
Identifica como um nó de mesmo nível é autenticado.
WeaveEncryptionKey typedef
WeaveEncryptionType typedef
enum nl::Weave::WeaveEncryptionType
Os tipos de criptografia para a mensagem Weave.
WeaveExchangeFlags typedef
enum nl::Weave::WeaveExchangeFlags
Os bits da bandeira do cabeçalho Weave Exchange.
WeaveExchangeVersion typedef
enum nl::Weave::WeaveExchangeVersion
A versão do cabeçalho Weave Exchange.
WeaveMessageFlags typedef
enum nl::Weave::WeaveMessageFlags
Sinalizadores associados a uma mensagem Weave de entrada ou saída.
WeaveMessageHeader typedef
WeaveMessageVersion typedef
enum nl::Weave::WeaveMessageVersion
A versão do formato Weave Message.
WeaveSubnetId typedef
enum nl::Weave::WeaveSubnetId
Weave tem alguns números de sub-rede reservados para interfaces de rede distintas em dispositivos típicos.

Variáveis

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 chave usado para derivação de chave de criptografia de mensagem Weave.

Funções

AppGroupMasterKeyIdFromAuthMode (WeaveAuthMode authMode)
uint8_t
Retorna o ID da chave mestra do grupo de aplicativos associado ao modo de autenticação.
CASEAuthMode (uint8_t certType)
WeaveAuthMode
Retorna um modo de autenticação CASE correspondente para um determinado tipo de certificado.
CertTypeFromAuthMode (WeaveAuthMode authMode)
uint8_t
Retorna a fonte da senha para o modo de autenticação fornecido.
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 um erro Weave, retorna uma string C terminada em NULL legível que descreve o erro.
GenerateWeaveNodeId (uint64_t & nodeId)
NL_DLL_EXPORT WEAVE_ERROR
Gerar ID de nó Weave aleatório.
GetFibonacciForIndex (uint32_t index)
uint32_t
Esta função gera um número de Fibonacci de 32 bits para um determinado índice de 32 bits.
GetMessageName (uint32_t profileId, uint8_t msgType)
const char *
GetProfileName (uint32_t profileId)
const char *
GetRandU16 (void)
uint16_t
Esta função gera um número aleatório sem sinal de 16 bits.
GetRandU32 (void)
uint32_t
Esta função gera um número aleatório sem sinal de 32 bits.
GetRandU64 (void)
uint64_t
Esta função gera um número aleatório sem sinal de 64 bits.
GetRandU8 (void)
uint8_t
Esta função gera um número aleatório sem sinal de 8 bits.
GetVendorName (uint16_t vendorId)
const char *
GroupKeyAuthMode (uint32_t keyId)
WeaveAuthMode
Retorna um modo de autenticação de chave de grupo correspondente para um determinado ID de chave.
IPv6InterfaceIdToWeaveNodeId (uint64_t interfaceId)
uint64_t
Converta um identificador de interface de endereço IPv6 em um identificador de nó Weave.
IsCASEAuthMode (WeaveAuthMode authMode)
bool
Verdadeiro se o modo de autenticação for baseado no protocolo Weave CASE.
IsCertAuthMode (WeaveAuthMode authMode)
bool
Verdadeiro se o modo de autenticação for baseado na posse de uma chave privada associada a um certificado.
IsGroupKeyAuthMode (WeaveAuthMode authMode)
bool
Verdadeiro se o modo de autenticação for baseado na posse de uma chave de grupo compartilhada.
IsPASEAuthMode (WeaveAuthMode authMode)
bool
Verdadeiro se o modo de autenticação for baseado no protocolo Weave PASE.
IsPasswordAuthMode (WeaveAuthMode authMode)
bool
Verdadeiro se o modo de autenticação for baseado na posse de uma senha compartilhada.
IsTAKEAuthMode (WeaveAuthMode authMode)
bool
Verdadeiro se o modo de autenticação for baseado no 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
Retorna um modo de autenticação PASE correspondente para uma determinada fonte de senha.
PasswordSourceFromAuthMode (WeaveAuthMode authMode)
uint8_t
Retorna a fonte da senha para o modo de autenticação fornecido.
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
Converta um identificador de tecido Weave em um identificador global ULA IPv6.
WeaveMessageSourceToStr (char *buf, uint32_t bufSize, const WeaveMessageInfo *msgInfo)
void
DEPRECADO Use WeaveMessageLayer :: GetPeerDescription () em vez disso.
WeaveNodeAddrToStr (char *buf, uint32_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, WeaveConnection *con)
void
DEPRECADO Use WeaveMessageLayer :: GetPeerDescription () em vez disso.
WeaveNodeIdToIPv6InterfaceId (uint64_t nodeId)
uint64_t
Converta um identificador de nó Weave em um identificador de interface de endereço IPv6.
max (const _T & a, const _T & b)
const _T &
min (const _T & a, const _T & b)
const _T &

Aulas

nl :: Weave :: Encadernação

Captura o alvo pretendido de uma comunicação Weave e informações de configuração associadas.

nl :: Weave :: Contador

Uma interface para gerenciar um contador como um valor inteiro.

nl :: Weave :: ExchangeContext

Esta classe representa uma conversação em curso ( ExchangeContext ) entre dois ou mais nós.

nl :: Weave :: FabricStateDelegate

Esta classe de delegado abstrata comunica as mudanças de estado da malha.

nl :: Weave :: HostPortList

Para gerenciar e manipular uma Lista de portas de host, uma coleção compacta codificada em binário de tuplas de identificador de host e porta associadas ao Weave Service Directory.

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

Uma classe para gerenciar um contador de aumento monotônico como um valor inteiro.

nl :: Weave :: PersistedCounter

Uma classe para gerenciar um contador como um valor inteiro destinado a persistir durante as reinicializações.

nl :: Weave :: WeaveConnection

A definição da classe Weave Connection.

nl :: Weave :: WeaveConnectionTunnel

A definição do WeaveConnectionTunnel classe, que gere um par de TCPEndPoints cujos WeaveConnections original foram acoplados, e entre os quais o WeaveMessageLayer encaminha todos os encerramentos de dados e de conexão.

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

Isto especifica o perfil e a mensagem de tecer do tipo de uma mensagem de tecer em particular dentro de uma ExchangeContext .

nl :: Weave :: WeaveExchangeManager

Esta classe é usada para gerenciar ExchangeContexts com outros nós Weave.

nl :: Weave :: WeaveFabricState

Declaração para a frente de WeaveFabricState .

nl :: Weave :: WeaveKeyId

A definição do identificador Weave Key.

nl :: Weave :: WeaveMessageLayer

A definição do WeaveMessageLayer classe, que gerencia a comunicação com outros nós Weave.

nl :: Weave :: WeaveMsgEncryptionKey

Contém informações sobre a chave de criptografia da mensagem Weave.

nl :: Weave :: WeaveMsgEncryptionKeyCache

Cache de chaves para chaves de criptografia de mensagens Weave.

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

Objeto de base comum para implementar respondedores não solicitados de perfil Weave (servidores) que encapsula solicitações autenticadas de validação e envio de relatórios de status e fornece armazenamento de membro de dados comum para estado de malha e um gerenciador de troca.

nl :: Weave :: WeaveServerDelegateBase

Uma classe base comum para a implementação de objetos delegados do servidor Weave.

nl :: Weave :: WeaveSessionKey

Contém informações sobre uma chave de sessão do Weave.

nl :: Weave :: WeaveSessionState

Transmite o estado de comunicação necessário para enviar / receber mensagens com outro nó.

Structs

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

A configuração WRMP.

nl :: Weave :: WeaveMessageInfo

Informações sobre uma mensagem do Weave que está sendo enviada ou recebida.

Sindicatos

nl :: Weave :: WeaveEncryptionKey

Namespaces

nl :: Weave :: ASN1

Este namespace inclui todas as interfaces dentro do Weave para trabalhar com Abstract Syntax Notation One (ASN.1).

nl :: Weave :: Crypto

Este namespace inclui todas as interfaces dentro do Weave para suporte criptográfico compartilhado.

nl :: Weave :: DeviceLayer
nl :: Weave :: DeviceManager
nl :: Weave :: Codificação

Este namespace fornece funções para:

nl :: Weave :: Logging

Este namespace inclui todas as interfaces dentro do Weave para suporte de registro compartilhado.

nl :: Weave :: Plataforma
nl :: Weave :: Profiles

Este namespace inclui todas as interfaces dentro Weave para perfis Weave, tanto comum e específica do fornecedor Labs Ninho.

nl :: Weave :: SecuritySupport
nl :: Weave :: Stats
nl :: Weave :: Suporte
nl :: Weave :: Sistema
nl :: Weave :: TLV

Definições para trabalhar com dados codificados em Weave TLV formato.

nl :: Weave :: Quente

Este namespace inclui interfaces para o Módulo de Roteamento e Endereço do Weave, um Módulo portátil para configurar os endereços de IP e Rotas do Weave.

Enumerações

@ 21

 @21
Propriedades
kFlagAckPending

Se uma resposta é esperada para uma mensagem que está sendo enviada.

kFlagAutoReleaseConnection

Libere automaticamente a chave de criptografia da mensagem quando o contexto de troca for liberado.

kFlagAutoReleaseKey

Quando definido, significa que pelo menos uma mensagem foi recebida do par neste contexto de troca.

kFlagAutoRequestAck

Neste contexto, foi associada com uma WeaveConnection .

kFlagConnectionClosed

Este contexto é o iniciador da troca.

kFlagDropAck

Quando definido, solicita automaticamente uma confirmação sempre que uma mensagem é enviada via UDP.

kFlagMsgRcvdFromPeer

Quando definido, significa que pelo menos uma mensagem recebida nesta troca solicitou uma confirmação.

Este sinalizador é lido pelo aplicativo para decidir se ele precisa solicitar uma confirmação para a mensagem de resposta que está prestes a enviar. Este sinalizador também pode indicar se o par está usando WRMP.

kFlagPeerRequestedAck

Quando definido, significa que há uma confirmação pendente para ser enviada de volta.

kFlagResponseExpected

Interno e somente depuração: quando definido, a camada de troca não envia uma confirmação.

kFlagUseEphemeralUDPPort

Liberar automaticamente o associado WeaveConnection quando o contexto de troca é liberada.

@ 36

 @36

@ 37

 @37

@ 38

 @38
Propriedades
kFabricIdDefaultForTest

ID de malha padrão, que deve ser usado apenas para fins de teste.

@ 39

 @39

Identifica a finalidade ou aplicação do certificado.

Um tipo de certificado é um rótulo que descreve a finalidade ou aplicação de um certificado. Os tipos de certificado não são transportados como atributos dos certificados correspondentes, mas sim derivados da estrutura do certificado e / ou do contexto no qual ele é usado. A enumeração do tipo de certificado inclui um conjunto de valores predefinidos que descrevem os aplicativos de certificado comumente usados. Os desenvolvedores também podem estender o intervalo de valores do tipo de certificado com tipos específicos de aplicativos que descrevem certificados personalizados ou certificados com propriedades de segurança exclusivas.

Os tipos de certificado são usados ​​principalmente na implementação de políticas de controle de acesso, onde o acesso aos recursos do aplicativo é influenciado pelo tipo de certificado apresentado por um solicitante.

Propriedades
kCertType_AccessToken

Um certificado de token de acesso Weave.

kCertType_AppDefinedBase

Os tipos de certificado específicos do aplicativo devem ter valores> = este valor.

kCertType_CA

Um certificado CA.

kCertType_Device

Um certificado de dispositivo Weave.

kCertType_FirmwareSigning

Um certificado de assinatura de firmware do Weave.

kCertType_General

O certificado é de tipo geral ou não específico.

kCertType_Max

Os tipos de certificado não devem ser maiores que este valor.

kCertType_NotSpecified

O tipo do certificado não foi especificado.

kCertType_ServiceEndpoint

Um certificado de endpoint de serviço Weave.

@ 40

 @40

Identifica a fonte da senha usada em um protocolo de autenticação baseado em senha (por exemplo

Weave PASE)

@ 41

 @41
Propriedades
kWeaveAuthModeCategory_AppDefinedBase

Valor base para categorias de autenticação definidas pelo aplicativo.

kWeaveAuthModeCategory_CASE

Peer autenticado usando o protocolo Weave CASE.

kWeaveAuthModeCategory_General

O par autenticado usando um de um conjunto de mecanismos gerais.

kWeaveAuthModeCategory_GroupKey

Ponto autenticado usando uma chave de grupo compartilhada.

kWeaveAuthModeCategory_PASE

Peer autenticado usando o protocolo Weave PASE.

kWeaveAuthModeCategory_TAKE

Peer autenticado usando o protocolo Weave TAKE.

kWeaveAuthMode_CASE_AccessToken

Peer autenticado usando CASE com certificado de token de acesso Weave.

kWeaveAuthMode_CASE_AnyCert

Peer autenticado usando CASE com certificado arbitrário ou certificado de tipo desconhecido.

kWeaveAuthMode_CASE_Device

Peer autenticado usando CASE com certificado de dispositivo Weave.

kWeaveAuthMode_CASE_GeneralCert

Peer autenticado usando CASE com um tipo de certificado geral ou não específico.

kWeaveAuthMode_CASE_ServiceEndPoint

Peer autenticado usando CASE com certificado de endpoint de serviço Weave.

kWeaveAuthMode_NotSpecified

Modo de autenticação não especificado.

kWeaveAuthMode_PASE_PairingCode

Ponto autenticado usando PASE com código de emparelhamento de dispositivo.

kWeaveAuthMode_TAKE_IdentificationKey

O par autenticado usando TAKE com uma chave de identificação de token.

kWeaveAuthMode_Unauthenticated

Par não autenticado.

@ 42

 @42
Propriedades
kFabricSecretScope_All

Todos os dispositivos podem possuir segredo de tecido correspondente.

@ 43

 @43
Propriedades
kTestKey_AES128CTRSHA1_DataKeyByte

Valor de byte que constrói a chave de criptografia, que é usada apenas para teste.

kTestKey_AES128CTRSHA1_IntegrityKeyByte

Valor de byte que constrói a chave de integridade, que é usada apenas para teste.

@ 44

 @44

Tecer tamanho do diversificador de chave do aplicativo de criptografia de mensagem.

@ 45

 @45

@ 53

 @53

@ 54

 @54
Propriedades
kWeavePeerDescription_MaxLength

Comprimento máximo de string (incluindo caractere NUL) retornado por WeaveMessageLayer :: GetPeerDescription () .

@ 55

 @55

Definições relativas ao cabeçalho de uma mensagem de Weave codificada.

Propriedades
kWeaveHeaderFlag_DestNodeId

Indica que o ID do nó de destino está presente no cabeçalho da mensagem Weave.

kWeaveHeaderFlag_MsgCounterSyncReq

Indica que o remetente solicita a sincronização do contador de mensagens.

kWeaveHeaderFlag_SourceNodeId

Indica que o ID do nó de origem está presente no cabeçalho da mensagem Weave.

kWeaveHeaderFlag_TunneledData

Indica que a carga útil da mensagem Weave é um pacote IP encapsulado.

@ 56

 @56

Definições de campo de bits para identificadores IEEE EUI-64.

Propriedades
kEUI64_IG_Group

Valor de bit individual / grupo indicando um identificador de endereço de grupo EUI-64.

kEUI64_IG_Individual

Valor de bit individual / grupo que indica um identificador de endereço individual EUI-64.

kEUI64_IG_Mask

Máscara de bits para o bit Individual / Grupo (I / G) em um identificador EUI-64.

Um valor de 0 indica que o id é um endereço individual. Um valor de 1 indica que o id é um endereço de grupo.

kEUI64_UL_Local

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

kEUI64_UL_Mask

Máscara de bits para o bit Universal / Local (U / L) em um identificador EUI-64.

Um valor de 0 indica que o id é administrado universalmente (globalmente). Um valor de 1 indica que o id é administrado localmente.

kEUI64_UL_Unversal

Valor de bit universal / local indicando um identificador EUI-64 administrado universalmente.

@ 57

 @57

Intervalos especiais de IDs de nós de tecelagem.

Propriedades
kMaxAlwaysLocalWeaveNodeId

Identificadores de nó de tecer menores ou iguais a este valor são considerados locais para conveniência de teste.

WeaveEncryptionType

 WeaveEncryptionType

Os tipos de criptografia para a mensagem Weave.

Propriedades
kWeaveEncryptionType_AES128CTRSHA1

Mensagem criptografada usando criptografia AES-128-CTR com integridade de mensagem HMAC-SHA-1.

kWeaveEncryptionType_None

Mensagem não criptografada.

WeaveExchangeFlags

 WeaveExchangeFlags

Os bits de sinalizador de cabeçalho do Weave Exchange.

Propriedades
kWeaveExchangeFlag_AckId

Definido quando a mensagem atual é uma confirmação de uma mensagem recebida anteriormente.

kWeaveExchangeFlag_Initiator

Definido quando a mensagem atual é enviada pelo iniciador de uma troca.

kWeaveExchangeFlag_NeedsAck

Definido quando a mensagem atual está solicitando uma confirmação do destinatário.

WeaveExchangeVersion

 WeaveExchangeVersion

A versão do cabeçalho Weave Exchange.

WeaveMessageFlags

 WeaveMessageFlags

Sinalizadores associados a uma mensagem Weave de entrada ou saída.

Os valores definidos aqui são para uso dentro do WeaveMessageInfo.Flags campo.

Propriedades
kWeaveMessageFlag_DefaultMulticastSourceAddress

Indica que a seleção de endereço de origem IPv6 padrão deve ser usada ao enviar mensagens multicast IPv6.

kWeaveMessageFlag_DelaySend

Indica que o envio da mensagem precisa ser atrasado.

kWeaveMessageFlag_DestNodeId

Indica que o ID do nó de destino está presente no cabeçalho da mensagem Weave.

kWeaveMessageFlag_DuplicateMessage

Indica que a mensagem é uma duplicata de uma mensagem recebida anteriormente.

kWeaveMessageFlag_FromInitiator

Indica que a origem da mensagem é o iniciador da troca Weave.

kWeaveMessageFlag_MessageEncoded

Indica que a mensagem Weave já está codificada.

kWeaveMessageFlag_MsgCounterSyncReq

Indica que o remetente solicita a sincronização do contador de mensagens do par.

kWeaveMessageFlag_MulticastFromLinkLocal

Apelido obsoleto para kWeaveMessageFlag_DefaultMulticastSourceAddress .

kWeaveMessageFlag_PeerGroupMsgIdNotSynchronized

Indica que o contador de mensagens da chave do grupo do par não está sincronizado.

kWeaveMessageFlag_PeerRequestedAck

Indica que o remetente da mensagem solicitou uma confirmação.

kWeaveMessageFlag_RetainBuffer

Indica que o buffer de mensagem não deve ser liberado após o envio.

kWeaveMessageFlag_ReuseMessageId

Indica que o identificador de mensagem existente deve ser reutilizado.

kWeaveMessageFlag_ReuseSourceId

Indica que o identificador de nó de origem existente deve ser reutilizado.

kWeaveMessageFlag_SourceNodeId

Indica que o ID do nó de origem está presente no cabeçalho da mensagem Weave.

kWeaveMessageFlag_TunneledData

Indica que a carga útil da mensagem Weave é um pacote IP encapsulado.

kWeaveMessageFlag_ViaEphemeralUDPPort

Indica que a mensagem está sendo enviada / recebida por meio da porta UDP efêmera local.

WeaveMessageVersion

 WeaveMessageVersion

A versão do formato Weave Message.

O Weave escolherá a versão da mensagem apropriada com base no formato de quadro necessário para a mensagem do Weave. Por padrão, a versão da mensagem é kWeaveMessageVersion_V1. Ao usar o Weave Reliable Messaging, por exemplo, a versão é kWeaveMessageVersion_V2.

Propriedades
kWeaveMessageVersion_Unspecified

Versão da mensagem não especificada.

kWeaveMessageVersion_V1

Versão do formato do cabeçalho da mensagem V1.

kWeaveMessageVersion_V2

Versão do formato do cabeçalho da mensagem V2.

WeaveSubnetId

 WeaveSubnetId

Weave tem alguns números de sub-rede reservados para interfaces de rede distintas em dispositivos típicos.

Esses números são atribuídos aqui a constantes simbólicas. Esses números de sub-rede são usados ​​pelo Weave para configurar endereços ULA IPv6 nas interfaces apropriadas.

Propriedades
kWeaveSubnetId_MobileDevice

O identificador de sub-rede para todos os dispositivos móveis.

kWeaveSubnetId_NotSpecified

Reservado como um valor nulo ou não especificado.

kWeaveSubnetId_PrimaryWiFi

O número da sub-rede da interface de rádio WiFi.

kWeaveSubnetId_Service

O identificador de sub-rede para os endpoints do Nest Service.

kWeaveSubnetId_ThreadAlarm

O número da sub-rede da interface do rádio de alarme de thread.

kWeaveSubnetId_ThreadMesh

O identificador de sub-rede da interface de rádio do Thread mesh.

kWeaveSubnetId_WiFiAP

O número da sub-rede da interface do AP Wi-Fi local.

WeaveVendorId

 WeaveVendorId

Typedefs

FabricSecretRotationScheme

uint8_t FabricSecretRotationScheme

FabricSecretScope

uint8_t FabricSecretScope

Identifica a categoria de dispositivos que podem possuir e usar segredo de tecido.

WeaveAuthMode

uint16_t WeaveAuthMode

Identifica como um nó de mesmo nível é autenticado.

WeaveAuthMode descreve os meios pelos quais um nó de mesmo nível foi, ou deveria ser, autenticado durante uma troca de mensagens Weave. Em um contexto inicial, os aplicativos usam o WeaveAuthMode para expressar um modo de autenticação de pares desejado para uma troca, instruindo assim as camadas de segurança e mensagens do Weave a atingir o modo desejado ou falhar a comunicação. Em um contexto de resposta, WeaveAuthMode identifica como o nó solicitante (o par) foi autenticado, permitindo que o aplicativo de resposta imponha controles de acesso com base nessas informações.

O WeaveAuthMode atribuído a uma mensagem Weave de entrada está relacionado à natureza da chave que foi usada para criptografar essa mensagem. O WeaveAuthMode deriva do mecanismo pelo qual a chave foi estabelecida e os critérios usados ​​para verificar as identidades das partes comunicantes no momento do estabelecimento da chave.

WeaveAuthMode inclui um conjunto de valores predefinidos que descrevem modos de autenticação comuns. Eles são divididos pelo mecanismo de acordo principal (CASE, PASE, GroupKey, etc.). Os desenvolvedores podem estender o WeaveAuthMode definindo modos específicos do aplicativo, que podem ser anexados a chaves de criptografia específicas.

WeaveEncryptionKey

union nl::Weave::WeaveEncryptionKey WeaveEncryptionKey

WeaveEncryptionType

enum nl::Weave::WeaveEncryptionType WeaveEncryptionType

Os tipos de criptografia para a mensagem Weave.

WeaveExchangeFlags

enum nl::Weave::WeaveExchangeFlags WeaveExchangeFlags

Os bits da bandeira do cabeçalho Weave Exchange.

WeaveExchangeVersion

enum nl::Weave::WeaveExchangeVersion WeaveExchangeVersion

A versão do cabeçalho Weave Exchange.

WeaveMessageFlags

enum nl::Weave::WeaveMessageFlags WeaveMessageFlags

Sinalizadores associados a uma mensagem Weave de entrada ou saída.

Os valores definidos aqui são para uso dentro do WeaveMessageInfo.Flags campo.

WeaveMessageHeader

struct WeaveMessageInfo WeaveMessageHeader

WeaveMessageVersion

enum nl::Weave::WeaveMessageVersion WeaveMessageVersion

A versão do formato Weave Message.

O Weave escolherá a versão da mensagem apropriada com base no formato de quadro necessário para a mensagem do Weave. Por padrão, a versão da mensagem é kWeaveMessageVersion_V1. Ao usar o Weave Reliable Messaging, por exemplo, a versão é kWeaveMessageVersion_V2.

WeaveSubnetId

enum nl::Weave::WeaveSubnetId WeaveSubnetId

Weave tem alguns números de sub-rede reservados para interfaces de rede distintas em dispositivos típicos.

Esses números são atribuídos aqui a constantes simbólicas. Esses números de sub-rede são usados ​​pelo Weave para configurar endereços ULA IPv6 nas interfaces apropriadas.

Variáveis

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 chave usado para derivação de chave de criptografia de mensagem Weave.

Este valor representa os primeiros 4 bytes do SHA-1 HASH da frase "Nest Weave Message EK e AK".

Funções

AppGroupMasterKeyIdFromAuthMode

uint8_t AppGroupMasterKeyIdFromAuthMode(
  WeaveAuthMode authMode
)

Retorna o ID da chave mestra do grupo de aplicativos associado ao modo de autenticação.

CASEAuthMode

WeaveAuthMode CASEAuthMode(
  uint8_t certType
)

Retorna um modo de autenticação CASE correspondente para um determinado tipo de certificado.

CertTypeFromAuthMode

uint8_t CertTypeFromAuthMode(
  WeaveAuthMode authMode
)

Retorna a fonte da senha para o modo de autenticação fornecido.

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 um erro Weave, retorna uma string C terminada em NULL legível que descreve o erro.

Detalhes
Parâmetros
[in] buf
Buffer no qual a string de erro será colocada.
[in] bufSize
Tamanho do buffer fornecido em bytes.
[in] err
O erro a ser descrito.
Devoluções
true Se uma string de descrição foi gravada no buffer fornecido.
Devoluções
false Se o erro fornecido não foi um erro Weave.

GenerateWeaveNodeId

NL_DLL_EXPORT WEAVE_ERROR GenerateWeaveNodeId(
  uint64_t & nodeId
)

Gerar Id de nó de Weave aleatório.

Esta função gera um Id de nó Weave localmente exclusivo de 64 bits. Esta função usa fonte de dados aleatórios criptograficamente forte para garantir a exclusividade do valor gerado. Observe que o bit 57 do Id do nó Weave gerado é definido como 1 para indicar que o Id do nó Weave gerado é localmente (não globalmente) único.

Detalhes
Parâmetros
nodeId
Uma referência ao Id do nó Weave de 64 bits.
Valores Retornados
WEAVE_NO_ERROR
Se o Id do nó Weave foi gerado com sucesso.

GetFibonacciForIndex

uint32_t GetFibonacciForIndex(
  uint32_t index
)

Esta função gera um número de Fibonacci de 32 bits para um determinado índice de 32 bits.

Detalhes
Devoluções
Número de Fibonacci sem sinal 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 função gera um número aleatório sem sinal de 16 bits.

Detalhes
Devoluções
Inteiro aleatório sem sinal de 16 bits.

GetRandU32

uint32_t GetRandU32(
  void
)

Esta função gera um número aleatório sem sinal de 32 bits.

Detalhes
Devoluções
Inteiro aleatório sem sinal de 32 bits.

GetRandU64

uint64_t GetRandU64(
  void
)

Esta função gera um número aleatório sem sinal de 64 bits.

Detalhes
Devoluções
Inteiro aleatório sem sinal de 64 bits.

GetRandU8

uint8_t GetRandU8(
  void
)

Esta função gera um número aleatório sem sinal de 8 bits.

Detalhes
Devoluções
Inteiro aleatório sem sinal de 8 bits.

GetVendorName

const char * GetVendorName(
  uint16_t vendorId
)

GroupKeyAuthMode

WeaveAuthMode GroupKeyAuthMode(
  uint32_t keyId
)

Retorna um modo de autenticação de chave de grupo correspondente para um determinado ID de chave.

IPv6InterfaceIdToWeaveNodeId

uint64_t IPv6InterfaceIdToWeaveNodeId(
  uint64_t interfaceId
)

Converta um identificador de interface de endereço IPv6 em um identificador de nó Weave.

Como uma conveniência para o teste, identificadores de nó menores ou iguais a #kMaxAlwaysLocalWeaveNodeId (65535) são considerados 'locais' e têm seu bit universal / local definido como zero. Isso simplifica a representação de string dos endereços IPv6 correspondentes. Por exemplo, uma ULA para o nó identificador 10 seria FD00:0 : 1: 1 :: A.

Detalhes
Parâmetros
[in] interfaceId
O identificador da interface de 64 bits.
Devoluções
o identificador de nó Weave de 64 bits mapeado.

IsCASEAuthMode

bool IsCASEAuthMode(
  WeaveAuthMode authMode
)

Verdadeiro se o modo de autenticação for baseado no protocolo Weave CASE.

IsCertAuthMode

bool IsCertAuthMode(
  WeaveAuthMode authMode
)

Verdadeiro se o modo de autenticação for baseado na posse de uma chave privada associada a um certificado.

IsGroupKeyAuthMode

bool IsGroupKeyAuthMode(
  WeaveAuthMode authMode
)

Verdadeiro se o modo de autenticação for baseado na posse de uma chave de grupo compartilhada.

IsPASEAuthMode

bool IsPASEAuthMode(
  WeaveAuthMode authMode
)

Verdadeiro se o modo de autenticação for baseado no protocolo Weave PASE.

IsPasswordAuthMode

bool IsPasswordAuthMode(
  WeaveAuthMode authMode
)

Verdadeiro se o modo de autenticação for baseado na posse de uma senha compartilhada.

IsTAKEAuthMode

bool IsTAKEAuthMode(
  WeaveAuthMode authMode
)

Verdadeiro se o modo de autenticação for baseado no 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
)

Retorna um modo de autenticação PASE correspondente para uma determinada fonte de senha.

PasswordSourceFromAuthMode

uint8_t PasswordSourceFromAuthMode(
  WeaveAuthMode authMode
)

Retorna a fonte da senha para o modo de autenticação fornecido.

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
)

Converta um identificador de tecido Weave em um identificador global ULA IPv6.

O identificador global ULA para um endereço de malha são os 40 bits inferiores do ID de malha de 64 bits da malha.

Detalhes
Parâmetros
[in] fabricId
O identificador do tecido Weave.
Devoluções
o identificador global IPv6 mapeado.

WeaveMessageSourceToStr

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

DEPRECADO Use WeaveMessageLayer :: GetPeerDescription () em vez disso.

WeaveNodeAddrToStr

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

DEPRECADO Use WeaveMessageLayer :: GetPeerDescription () em vez disso.

WeaveNodeIdToIPv6InterfaceId

uint64_t WeaveNodeIdToIPv6InterfaceId(
  uint64_t nodeId
)

Converta um identificador de nó Weave em um identificador de interface de endereço IPv6.

Os identificadores de nó de tecelagem são EUI-64s universais / locais, que de acordo com RFC-3513 são convertidos em identificadores de interface invertendo o bit universal / local (bit 57 contando o LSB como 0).

Como uma conveniência para o teste, identificadores de nó menores ou iguais a #kMaxAlwaysLocalWeaveNodeId (65535) são considerados 'locais' e têm seu bit universal / local definido como zero. Isso simplifica a representação de string dos endereços IPv6 correspondentes. Por exemplo, uma ULA para o nó identificador 10 seria FD00:0 : 1: 1 :: A.

Detalhes
Parâmetros
[in] nodeId
O identificador de nó Weave de 64 bits.
Devoluções
o identificador da interface IPv6.

max

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

min

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