nl::tecido

Resumo

Enumerações

@21{
  kFlagConnectionClosed = 0x0002,
  kFlagAutoRequestAck = 0x0004,
  kFlagDropAck = 0x0008,
  kFlagResponseExpected = 0x0010,
  kFlagAckPending = 0x0020,
  kFlagPeerRequestedAck = 0x0040,
  kFlagMsgRcvdFromPeer = 0x0080,
  kFlagAutoReleaseKey = 0x0100,
  kFlagAutoReleaseConnection = 0x0200,
  kFlagUseEphemeralUDPPort = 0x0400
}
tipo enumerado
@36 tipo enumerado
@37 tipo enumerado
@38{
  kFabricIdDefaultForTest = 1ULL
}
tipo enumerado
@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
}
tipo enumerado
Identifica a finalidade ou a aplicação do certificado.
@40 tipo enumerado
Identifica a origem 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
}
tipo enumerado
@42{
  kFabricSecretScope_All = 0x00
}
tipo enumerado
@43{
  kTestKey_AES128CTRSHA1_DataKeyByte = 0xAB,
  kTestKey_AES128CTRSHA1_IntegrityKeyByte = 0xBA
}
tipo enumerado
@44 tipo enumerado
Teve o tamanho do diversificador da chave do aplicativo de criptografia de mensagem.
@45 tipo enumerado
@53 tipo enumerado
@54{
  kWeavePeerDescription_MaxLength = 100
}
tipo enumerado
@55{
  kWeaveHeaderFlag_DestNodeId = 0x0100,
  kWeaveHeaderFlag_SourceNodeId = 0x0200,
  kWeaveHeaderFlag_TunneledData = 0x0400,
  kWeaveHeaderFlag_MsgCounterSyncReq = 0x0800
}
tipo enumerado
Definições relacionadas ao cabeçalho de uma mensagem codificada do Weave.
@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
}
tipo enumerado
Definições de campo de bit para identificadores de UEI-64 do IEEE.
@57{
  kMaxAlwaysLocalWeaveNodeId = 0x000000000000FFFFULL
}
tipo enumerado
Intervalos especiais de Weave Node Ids.
WeaveEncryptionType{
  kWeaveEncryptionType_None = 0,
  kWeaveEncryptionType_AES128CTRSHA1 = 1
}
tipo enumerado
Os tipos de criptografia da mensagem do Weave.
WeaveExchangeFlags{
  kWeaveExchangeFlag_Initiator = 0x1,
  kWeaveExchangeFlag_AckId = 0x2,
  kWeaveExchangeFlag_NeedsAck = 0x4
}
tipo enumerado
Os bits de sinalização de cabeçalho do Weave Exchange.
WeaveExchangeVersion tipo enumerado
A versão do cabeçalho do 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
}
tipo enumerado
Sinalizações associadas a uma mensagem do Weave de entrada ou saída.
WeaveMessageVersion{
  kWeaveMessageVersion_Unspecified = 0,
  kWeaveMessageVersion_V1 = 1,
  kWeaveMessageVersion_V2 = 2
}
tipo enumerado
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
}
tipo enumerado
O Weave tem alguns números de sub-rede reservados para interfaces de rede diferenciadas em dispositivos típicos.
WeaveVendorId tipo enumerado

Typedefs

FabricSecretRotationScheme typedef
uint8_t
FabricSecretScope nl::Weave::FabricSecretScope
uint8_t
Identifica a categoria de dispositivos que podem conter e usar a chave secreta do tecido.
WeaveAuthMode typedef
uint16_t
Identifica como um nó de peering é autenticado.
WeaveEncryptionKey typedef
WeaveEncryptionType typedef
enum nl::Weave::WeaveEncryptionType
Os tipos de criptografia da mensagem do Weave.
WeaveExchangeFlags typedef
enum nl::Weave::WeaveExchangeFlags
Os bits de sinalização de cabeçalho do Weave Exchange.
WeaveExchangeVersion typedef
enum nl::Weave::WeaveExchangeVersion
A versão do cabeçalho do Weave Exchange.
WeaveMessageFlags typedef
enum nl::Weave::WeaveMessageFlags
Sinalizações associadas a uma mensagem do 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
O Weave tem alguns números de sub-rede reservados para interfaces de rede diferenciadas em 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
Diversificado de chaves usado para a derivação de chaves de criptografia de mensagens do Weave.

Functions

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 de CASE correspondente para um determinado tipo de certificado.
CertTypeFromAuthMode(WeaveAuthMode authMode)
uint8_t
Retorna a origem da senha do 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 do Weave, retorna uma string C terminada em NULL legível que descreve o erro.
GenerateWeaveNodeId(uint64_t & nodeId)
NL_DLL_EXPORT WEAVE_ERROR
Gerar um ID de nó aleatório do Weave.
GetFibonacciForIndex(uint32_t index)
uint32_t
Essa 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
Essa função gera um número aleatório não assinado de 16 bits.
GetRandU32(void)
uint32_t
Essa função gera um número aleatório não assinado de 32 bits.
GetRandU64(void)
uint64_t
Essa função gera um número aleatório não assinado de 64 bits.
GetRandU8(void)
uint8_t
Essa função gera um número aleatório não assinado 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 a 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 em posse de uma chave privada associada a um certificado.
IsGroupKeyAuthMode(WeaveAuthMode authMode)
bool
Verdadeiro se o modo de autenticação for baseado em 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
"True" se o modo de autenticação for baseado em posse de uma senha compartilhada.
IsTAKEAuthMode(WeaveAuthMode authMode)
bool
Verdadeiro se o modo de autenticação for baseado no protocolo Weave Grab.
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 a uma determinada origem de senha.
PasswordSourceFromAuthMode(WeaveAuthMode authMode)
uint8_t
Retorna a origem da senha do 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, const WeaveEncryptionKey & key, char *buf, size_t bufSize)
void
WeaveFabricIdToIPv6GlobalId(uint64_t fabricId)
uint64_t
Converter um identificador de tecido Weave em um identificador global ULA IPv6.
WeaveMessageSourceToStr(char *buf, uint32_t bufSize, const WeaveMessageInfo *msgInfo)
void
WeaveNodeAddrToStr(char *buf, uint32_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, WeaveConnection *con)
void
WeaveNodeIdToIPv6InterfaceId(uint64_t nodeId)
uint64_t
Converta um identificador de nó do 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 &

Classes

nl::tecelagem::vinculação

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

nl::tecer::contador

Uma interface para gerenciar um contador como um valor inteiro.

nl::tece::ExchangeContext

Essa classe representa uma conversa em andamento (ExchangeContext) entre dois ou mais nós.

nl::tecido::FabricStateDelegate

Essa classe delegada abstrata comunica mudanças de estado do Fabric.

nl::Weave:HostPortList

Para gerenciar e manipular uma Lista de portas de host, uma coleção compacta e codificada em binário de tuplas de host e identificador de porta associadas ao Diretório de serviços do Weave.

nl::tece::JNIUtils
nl::Weave:MonotonicallyIncreaseCounter

Uma classe para gerenciar um contador que aumenta monotonicamente como um valor inteiro.

nl::Tecido:PersistedCounter

Uma classe para gerenciar um contador como um valor inteiro que persiste entre reinicializações.

nl::Weave:WeaveConnection

A definição da classe Weave Connection.

nl::Weave:WeaveConnectionTunnel

Definição da classe WeaveConnectionTunnel, que gerencia um par de TCPEndPoints cujos WeaveConnections originais foram acoplados e entre eles o WeaveMessageLayer encaminha todos os dados e interdições de conexão.

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

Especifica o perfil e o tipo de uma mensagem do Weave em um ExchangeContext.

nl::Weave:WeaveExchangeManager

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

nl::Weave:WeaveFabricState

Declaração de WeaveFabricState aprovada.

nl::Weave:WeaveKeyId

É a definição do identificador da chave do Weave.

nl::Weave:WeaveMessageLayer

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

nl::Weave:WeaveMsgEncryptionKey

Contém informações sobre a chave de criptografia de mensagens do Weave.

nl::Weave:WeaveMsgEncryptionKeyCache

Cache de chaves para chaves de criptografia de mensagens do Weave.

nl::Weave:WeaveSecurityManager
nl::Weave:Base do WeaveServer

É um objeto base comum para implementar participantes do servidor do Weave não solicitados (servidores), que encapsulam a validação de solicitações autenticadas e o envio de relatórios de status, além de oferecer armazenamento comum de membros de dados para o estado do tecido e um gerenciador de troca.

nl::Weave:WeaveServerDelegateBase

Uma classe base comum para implementar objetos delegados do servidor do 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ó.

Estruturas

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

A configuração de WRMP.

nl::Weave:WeaveMessageInfo

Informações sobre uma mensagem do Weave em processo de envio ou recebimento.

Sindicatos

nl::Weave:WeaveEncryptionKey

Namespaces

nl::tece::ASN1

Esse namespace inclui todas as interfaces no Weave para trabalhar com Abstract Sintaxe Notation One (ASN.1).

nl::Criptografação::Crypto

Esse namespace inclui todas as interfaces no Weave para suporte a criptografia compartilhada.

nl::Weave::DeviceLayer
nl::Weave::DeviceManager
nl::tece::codificação

Esse namespace oferece funções para:

nl::tecelagem::geração de registros

Esse namespace inclui todas as interfaces no Weave para suporte a registros compartilhados.

nl::Plataforma:Plataforma
nl::Tratado:Perfis

Esse namespace inclui todas as interfaces nos perfis do Weave para Weave, comuns e específicas do fornecedor da Nest Labs.

nl::Weave::SecuritySupport
nl::Estatísticas::Estatísticas
nl::Tratado::Suporte
nl::tece::sistema
nl::tecelagem::TLV

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

nl::tece::aquecimento

Esse namespace inclui interfaces para o módulo de endereço e roteamento do Weave, um módulo portátil para configurar endereços IP e rotas do Weave.

Enumerações

@21

 @21
Propriedades
kFlagAckPending

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

kFlagAutoReleaseConnection

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

kFlagAutoReleaseKey

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

kFlagAutoRequestAck

Esse contexto foi associado a um WeaveConnection.

kFlagConnectionClosed

Esse contexto é o iniciador da troca.

kFlagDropAck

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

kFlagMsgRcvdFromPeer

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

Essa sinalização é lida pelo aplicativo para decidir se ela precisa solicitar uma confirmação para a mensagem de resposta que está prestes a ser enviada. Essa sinalização também pode indicar se o peering está usando WRMP.

kFlagPeerRequestedAck

Quando definido, significa que há uma confirmação pendente de envio.

kFlagResponseExpected

Somente interno e de depuração: quando definida, a camada de troca não envia uma confirmação.

kFlagUseEphemeralUDPPort

Liberar automaticamente a WeaveConnection associada quando o contexto de troca for liberado.

36

 @36

@37

 @37

@38

 @38
Propriedades
kFabricIdDefaultForTest

ID de tecido padrão, que deve ser usado somente para fins de teste

39

 @39

Identifica a finalidade ou a aplicação do certificado.

Um tipo de certificado é uma etiqueta que descreve a finalidade ou o aplicativo de um certificado. Os tipos de certificado não são transferidos como atributos dos certificados correspondentes, mas são derivados da estrutura do certificado e/ou do contexto em que ele é usado. A enumeração do tipo de certificado inclui um conjunto de valores predefinidos que descrevem os aplicativos de certificado usados com frequência. Os desenvolvedores também podem estender o intervalo dos valores de tipo de certificado com tipos específicos de app que descrevem certificados personalizados ou com propriedades de segurança exclusivas.

Os tipos de certificado são usados principalmente na implementação de políticas de controle de acesso, em que o acesso aos recursos do app é influenciado pelo tipo de certificado apresentado pelo solicitante.

Propriedades
kCertType_AccessToken

Certificado de token de acesso do Weave

kCertType_AppDefinedBase

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

kCertType_CA

Um certificado de CA.

kCertType_Device

Certificado de dispositivo do Weave.

kCertType_FirmwareSigning

Um certificado de assinatura de firmware do Weave.

kCertType_General

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

kCertType_Max

Os tipos de certificado não podem ser maiores que esse valor.

kCertType_NotSpecified

O tipo de certificado não foi especificado.

kCertType_ServiceEndpoint

Um certificado de endpoint do serviço Weave

40

 @40

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

Weave PASE)

44

 @41
Propriedades
kWeaveAuthModeCategory_AppDefinedBase

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

kWeaveAuthModeCategory_CASE

Peering autenticado usando o protocolo CASE do Weave.

kWeaveAuthModeCategory_General

Peering autenticado usando um conjunto de mecanismos gerais.

kWeaveAuthModeCategory_GroupKey

Par autenticado com uma chave de grupo compartilhada.

kWeaveAuthModeCategory_PASE

Peering autenticado usando o protocolo PASE do Weave.

kWeaveAuthModeCategory_TAKE

Par autenticado com o uso do protocolo WEave Take.

kWeaveAuthMode_CASE_AccessToken

Par autenticado usando CASE com certificado de token de acesso do Weave.

kWeaveAuthMode_CASE_AnyCert

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

kWeaveAuthMode_CASE_Device

Par autenticado usando CASE com certificado de dispositivo Weave.

kWeaveAuthMode_CASE_GeneralCert

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

kWeaveAuthMode_CASE_ServiceEndPoint

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

kWeaveAuthMode_NotSpecified

Modo de autenticação não especificado.

kWeaveAuthMode_PASE_PairingCode

Par autenticado usando PASE com código de pareamento do dispositivo.

kWeaveAuthMode_TAKE_IdentificationKey

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 ter a chave secreta de tecido correspondente.

43

 @43
Propriedades
kTestKey_AES128CTRSHA1_DataKeyByte

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

kTestKey_AES128CTRSHA1_IntegrityKeyByte

Valor de byte que constrói a chave de integridade, usado apenas para testes.

44

 @44

Teve o tamanho do diversificador da chave do aplicativo de criptografia de mensagem.

45

 @45

55

 @53

55

 @54
Propriedades
kWeavePeerDescription_MaxLength

Tamanho máximo da string (incluindo o caractere NUL) retornado por WeaveMessageLayer::GetPeerDescription().

55

 @55

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

Propriedades
kWeaveHeaderFlag_DestNodeId

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

kWeaveHeaderFlag_MsgCounterSyncReq

Indica que o remetente solicita a sincronização da mensagem.

kWeaveHeaderFlag_SourceNodeId

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

kWeaveHeaderFlag_TunneledData

Indica que o payload da mensagem do Weave é um pacote de IP em túnel.

55

 @56

Definições de campo de bit para identificadores de UEI-64 do IEEE.

Propriedades
kEUI64_IG_Group

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

kEUI64_IG_Individual

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

kEUI64_IG_Mask

Bitmask para o bit Individual/Group (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 universal/local de bits que indica um identificador EUI-64 administrado localmente.

kEUI64_UL_Mask

Bitmask 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 que indica um identificador EUI-64 administrado universalmente.

55

 @57

Intervalos especiais de Weave Node Ids.

Propriedades
kMaxAlwaysLocalWeaveNodeId

Para facilitar os testes, os identificadores de nós do Weave menores ou iguais a esse valor são considerados locais.

Tipo de criptografia Weave

 WeaveEncryptionType

Os tipos de criptografia da mensagem do Weave.

Propriedades
kWeaveEncryptionType_AES128CTRSHA1

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

kWeaveEncryptionType_None

Mensagem não criptografada.

WeaveExchangeFlags.

 WeaveExchangeFlags

Os bits de sinalização de cabeçalho do Weave Exchange.

Propriedades
kWeaveExchangeFlag_AckId

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

kWeaveExchangeFlag_Initiator

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

kWeaveExchangeFlag_NeedsAck

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

WeaveExchangeVersion

 WeaveExchangeVersion

A versão do cabeçalho do Weave Exchange.

WeaveMessageFlags.

 WeaveMessageFlags

Sinalizações associadas a uma mensagem do Weave de entrada ou saída.

Os valores definidos aqui podem ser usados no campo WeaveMessageInfo.Flags.

Propriedades
kWeaveMessageFlag_DefaultMulticastSourceAddress

Indica que a seleção de endereço de origem do IPv6 padrão deve ser usada ao enviar mensagens de 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 do Weave.

kWeaveMessageFlag_DuplicateMessage

Indica que a mensagem é uma cópia de uma mensagem recebida anteriormente.

kWeaveMessageFlag_FromInitiator

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

kWeaveMessageFlag_MessageEncoded

Indica que a mensagem do Weave já está codificada.

kWeaveMessageFlag_MsgCounterSyncReq

Indica que o remetente pede a sincronização de mensagens de apps semelhantes.

kWeaveMessageFlag_MulticastFromLinkLocal

Alias descontinuado para kWeaveMessageFlag_DefaultMulticastSourceAddress.

kWeaveMessageFlag_PeerGroupMsgIdNotSynchronized

Indica que o contador de mensagens de chave do grupo de apps semelhantes não está sincronizado.

kWeaveMessageFlag_PeerRequestedAck

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

kWeaveMessageFlag_RetainBuffer

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

kWeaveMessageFlag_ReuseMessageId

Indica que o identificador de mensagens atual precisa ser reutilizado.

kWeaveMessageFlag_ReuseSourceId

Indica que o identificador de nós de origem atual precisa ser reutilizado.

kWeaveMessageFlag_SourceNodeId

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

kWeaveMessageFlag_TunneledData

Indica que o payload da mensagem do Weave é um pacote de IP em túnel.

kWeaveMessageFlag_ViaEphemeralUDPPort

Indica que a mensagem está sendo enviada/recebida por meio da porta UDP temporária local.

WeaveMessageVersion

 WeaveMessageVersion

A versão do formato Weave Message.

O Weave escolherá a versão adequada da mensagem com base no formato de frame exigido para ela. Por padrão, a versão da mensagem é kWeaveMessageVersion_V1. Quando você usa o Weave Trusted 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.

ID da sub-rede Weave

 WeaveSubnetId

O Weave tem alguns números de sub-rede reservados para interfaces de rede diferenciadas 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 IPv4 de ULA em interfaces apropriadas.

Propriedades
kWeaveSubnetId_MobileDevice

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

kWeaveSubnetId_NotSpecified

Reservado como um valor não especificado ou nulo.

kWeaveSubnetId_PrimaryWiFi

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

kWeaveSubnetId_Service

O identificador de sub-rede dos endpoints do serviço Nest.

kWeaveSubnetId_ThreadAlarm

O número da sub-rede de interface de rádio do alarme da linha de execução.

kWeaveSubnetId_ThreadMesh

Identificador de sub-rede de interface de rádio mesh do Thread.

kWeaveSubnetId_WiFiAP

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

ID do fornecedor

 WeaveVendorId

Typedefs

FabricSecretRotationScheme

uint8_t FabricSecretRotationScheme

FabricSecretScope

uint8_t FabricSecretScope

Identifica a categoria de dispositivos que podem conter e usar a chave secreta do tecido.

WeaveAuthMode

uint16_t WeaveAuthMode

Identifica como um nó de peering é autenticado.

O WeaveAuthMode descreve os meios pelos quais um nó de peering foi ou deve ser autenticado durante uma troca de mensagens do Weave. Em um contexto inicial, os aplicativos usam o WeaveAuthMode para expressar um modo de autenticação de peering desejado para uma troca, instruindo as camadas de segurança e mensagens do Weave a alcançar o modo desejado ou causar falha na comunicação. Em um contexto de resposta, o WeaveAuthMode identifica como o nó solicitante (par) foi autenticado, permitindo que o app de resposta aplique controles de acesso com base nessas informações.

O WeaveAuthMode atribuído a uma mensagem recebida pelo Weave está relacionado à natureza da chave usada para criptografar essa mensagem. O WeaveAuthMode deriva do mecanismo em que a chave foi estabelecida e os critérios usados para verificar as identidades das partes que estão se comunicando no momento do estabelecimento da chave.

O WeaveAuthMode inclui um conjunto de valores predefinidos que descrevem modos de autenticação comuns. Eles são divididos pelo mecanismo de contrato 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.

Chave de criptografia Weave

union nl::Weave::WeaveEncryptionKey WeaveEncryptionKey

Tipo de criptografia Weave

enum nl::Weave::WeaveEncryptionType WeaveEncryptionType

Os tipos de criptografia da mensagem do Weave.

WeaveExchangeFlags.

enum nl::Weave::WeaveExchangeFlags WeaveExchangeFlags

Os bits de sinalização de cabeçalho do Weave Exchange.

WeaveExchangeVersion

enum nl::Weave::WeaveExchangeVersion WeaveExchangeVersion

A versão do cabeçalho do Weave Exchange.

WeaveMessageFlags.

enum nl::Weave::WeaveMessageFlags WeaveMessageFlags

Sinalizações associadas a uma mensagem do Weave de entrada ou saída.

Os valores definidos aqui podem ser usados no campo WeaveMessageInfo.Flags.

Cabeçalho da mensagem Weave

struct WeaveMessageInfo WeaveMessageHeader

WeaveMessageVersion

enum nl::Weave::WeaveMessageVersion WeaveMessageVersion

A versão do formato Weave Message.

O Weave escolherá a versão adequada da mensagem com base no formato de frame exigido para ela. Por padrão, a versão da mensagem é kWeaveMessageVersion_V1. Quando você usa o Weave Trusted Messaging, por exemplo, a versão é kWeaveMessageVersion_V2.

ID da sub-rede Weave

enum nl::Weave::WeaveSubnetId WeaveSubnetId

O Weave tem alguns números de sub-rede reservados para interfaces de rede diferenciadas 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 IPv4 de ULA em interfaces apropriadas.

Variables

Troca Exchange

NL_DLL_EXPORT WeaveExchangeManager ExchangeMgr

FabricState

NL_DLL_EXPORT WeaveFabricState FabricState

MessageLayer

NL_DLL_EXPORT WeaveMessageLayer MessageLayer

Gerenciamento de segurança

NL_DLL_EXPORT WeaveSecurityManager SecurityMgr

Conexão Weave

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 }

Diversificado de chaves usado para a derivação de chaves de criptografia de mensagens do Weave.

Esse valor representa os primeiros quatro bytes da HASH SHA-1 da frase "K" de Nest Weave E.K.

Functions

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 de CASE correspondente para um determinado tipo de certificado.

CertTypeFromAuthMode

uint8_t CertTypeFromAuthMode(
  WeaveAuthMode authMode
)

Retorna a origem da senha do 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
)

NomedaMensagem

const char * FindMessageName(
  uint32_t inProfileId,
  uint8_t inMsgType
)

NomeDoPerfilLocalizar

const char * FindProfileName(
  uint32_t inProfileId
)

FormatWeaveError

bool FormatWeaveError(
  char *buf,
  uint16_t bufSize,
  int32_t err
)

Dado um erro do Weave, retorna uma string C terminada em NULL legível que descreve o erro.

Detalhes
Parâmetros
[in] buf
Buffer em que a string de erro será colocada.
[in] bufSize
Tamanho do buffer fornecido em bytes.
[in] err
O erro a ser descrito.
Retorna
"true" se uma string de descrição foi gravada no buffer fornecido.
Retorna
"false" se o erro fornecido não for do Weave.

GenerateWeaveNodeId

NL_DLL_EXPORT WEAVE_ERROR GenerateWeaveNodeId(
  uint64_t & nodeId
)

Gerar um ID de nó aleatório do Weave.

Essa função gera um ID do nó do Weave de 64 bits local. Essa função usa uma fonte de dados aleatória com criptografia forte para garantir a exclusividade do valor gerado. Observe que o bit 57 do ID do nó gerado do Weave está definido como 1. Isso indica que o ID gerado é exclusivo localmente (não globalmente).

Detalhes
Parâmetros
nodeId
Uma referência ao ID do nó do Weave de 64 bits.
Valores de retorno
WEAVE_NO_ERROR
Se o ID do nó do Weave tiver sido gerado com sucesso.

GetFibonacciForIndex

uint32_t GetFibonacciForIndex(
  uint32_t index
)

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

Detalhes
Retorna
Número fibonacci não assinado de 32 bits.

GetMessageName

const char * GetMessageName(
  uint32_t profileId,
  uint8_t msgType
)

Nome do perfil

const char * GetProfileName(
  uint32_t profileId
)

GetRandU16.

uint16_t GetRandU16(
  void
)

Essa função gera um número aleatório não assinado de 16 bits.

Detalhes
Retorna
Número inteiro aleatório não assinado de 16 bits.

GetRandU32.

uint32_t GetRandU32(
  void
)

Essa função gera um número aleatório não assinado de 32 bits.

Detalhes
Retorna
Número inteiro aleatório não assinado de 32 bits.

GetRandU64-

uint64_t GetRandU64(
  void
)

Essa função gera um número aleatório não assinado de 64 bits.

Detalhes
Retorna
Número inteiro aleatório não assinado de 64 bits.

GetRandU8.

uint8_t GetRandU8(
  void
)

Essa função gera um número aleatório não assinado de 8 bits.

Detalhes
Retorna
Número inteiro aleatório não assinado de 8 bits.

NomeDoFornecedor

const char * GetVendorName(
  uint16_t vendorId
)

ModeKeyAuthMode

WeaveAuthMode GroupKeyAuthMode(
  uint32_t keyId
)

Retorna um modo de autenticação de chave de grupo correspondente a 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 conveniência para testes, os identificadores de nó menores ou iguais a #kMaxAlwaysLocalWeaveNodeId (65535) são considerados 'local' e têm seu bit universal/local definido como zero. Isso simplifica a representação da string dos endereços IPv6 correspondentes. Por exemplo, um ULA para o identificador de nó 10 seria FD00:0:1:1::A.

Detalhes
Parâmetros
[in] interfaceId
O identificador de interface de 64 bits.
Retorna
o identificador de nó Weave mapeado de 64 bits.

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 em posse de uma chave privada associada a um certificado.

IsGroupKeyAuthMode

bool IsGroupKeyAuthMode(
  WeaveAuthMode authMode
)

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

"True" se o modo de autenticação for baseado em posse de uma senha compartilhada.

IsTakeAuthMode

bool IsTAKEAuthMode(
  WeaveAuthMode authMode
)

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

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_FieldFieldVal

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
)

NomeDaClasse

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 a uma determinada origem de senha.

PasswordSourceFromAuthMode

uint8_t PasswordSourceFromAuthMode(
  WeaveAuthMode authMode
)

Retorna a origem da senha do modo de autenticação fornecido.

Informações do túnel de impressão

void PrintTunnelInfo(
  const WeaveConnectionTunnel & tun,
  const TCPEndPoint & fromEndPoint,
  const TCPEndPoint & toEndPoint,
  const PacketBuffer & data
)

Hexadecimal

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
)

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

O identificador global ULA de um endereço de tecido é o código de tecido de 64 bits mais baixo, de 40 bits.

Detalhes
Parâmetros
[in] fabricId
Identificador de tecido Weave.
Retorna
o identificador global IPv6 mapeado.

WeaveMessageSourceToStr

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

WeaveNodeAddrToStr

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

WeaveNodeIdToIPv6InterfaceId

uint64_t WeaveNodeIdToIPv6InterfaceId(
  uint64_t nodeId
)

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

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

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

Detalhes
Parâmetros
[in] nodeId
O identificador de nó do Weave de 64 bits.
Retorna
o identificador de interface IPv6.

máx

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

min

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