nl:: Weave
Resumo
Typedefs |
|
---|---|
FabricSecretRotationScheme
|
typedefuint8_t
|
FabricSecretScope
|
nl::Weave::FabricSecretScopeuint8_t
Identifica a categoria de dispositivos que podem ter e usar segredo de tecido. |
WeaveAuthMode
|
typedefuint16_t
Identifica como um nó de peering é autenticado. |
WeaveEncryptionKey
|
typedef |
WeaveEncryptionType
|
typedefenum nl::Weave::WeaveEncryptionType
Os tipos de criptografia da mensagem do Weave. |
WeaveExchangeFlags
|
typedefenum nl::Weave::WeaveExchangeFlags
Os bits de sinalização do cabeçalho do Weave Exchange. |
WeaveExchangeVersion
|
typedefenum nl::Weave::WeaveExchangeVersion
A versão do cabeçalho do Weave Exchange. |
WeaveMessageFlags
|
typedefenum nl::Weave::WeaveMessageFlags
Sinalizações associadas a uma mensagem de entrada ou saída do Weave. |
WeaveMessageHeader
|
typedefstruct WeaveMessageInfo
|
WeaveMessageVersion
|
typedefenum nl::Weave::WeaveMessageVersion
A versão do formato de mensagens do Weave. |
WeaveSubnetId
|
typedefenum nl::Weave::WeaveSubnetId
O Weave tem alguns números de sub-rede reservados para interfaces de rede distintas em dispositivos comuns. |
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 chaves usado para derivação de chaves de criptografia de mensagens do 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 origem da senha do modo de autenticação especificado.
|
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 por humanos que descreve o erro.
|
GenerateWeaveNodeId(uint64_t & nodeId)
|
NL_DLL_EXPORT WEAVE_ERROR
Gere um ID aleatório do nó do Weave.
|
GetFibonacciForIndex(uint32_t index)
|
uint32_t
Esta função gera um número 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 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ó do Weave.
|
IsCASEAuthMode(WeaveAuthMode authMode)
|
bool
Verdadeiro se o modo de autenticação for baseado no protocolo CASE do Weave.
|
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 origem de senha.
|
PasswordSourceFromAuthMode(WeaveAuthMode authMode)
|
uint8_t
Retorna a origem da senha do modo de autenticação especificado.
|
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
Converta um identificador de malha do Weave em um identificador global ULA IPv6.
|
WeaveMessageSourceToStr(char *buf, uint32_t bufSize, const WeaveMessageInfo *msgInfo)
|
void
USO SUSPENSO Use WeaveMessageLayer::GetPeerDescription().
|
WeaveNodeAddrToStr(char *buf, uint32_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, WeaveConnection *con)
|
void
USO SUSPENSO Use WeaveMessageLayer::GetPeerDescription().
|
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:: |
Captura o alvo pretendido de uma comunicação do Weave e as informações de configuração associadas. |
nl:: |
Interface para gerenciar um contador como um valor inteiro. |
nl:: |
Esta classe representa uma conversa em andamento (ExchangeContext) entre dois ou mais nós. |
nl:: |
Essa classe delegada abstrata comunica as alterações de estado da malha. |
nl:: |
Para gerenciar e manipular uma lista de portas de host, uma coleção compacta e de codificação binária de tuplas de identificadores de host e porta associadas ao Diretório de serviços do Weave. |
nl:: |
|
nl:: |
Uma classe para gerenciar um contador monotonicamente crescente como um valor inteiro. |
nl:: |
Uma classe para gerenciar um contador como um valor inteiro destinado a persistir durante as reinicializações. |
nl:: |
A definição da classe Conexão do Weave. |
nl:: |
A definição da classe WeaveConnectionTunnel, que gerencia um par de TCPEndPoints cujos WeaveConnections originais foram acoplados, e entre os quais WeaveMessageLayer encaminha todos os dados e fechamentos de conexão. |
nl:: |
|
nl:: |
Isso especifica o perfil e o tipo de mensagem de uma mensagem específica do Weave em um ExchangeContext. |
nl:: |
Essa classe é usada para gerenciar ExchangeContexts com outros nós do Weave. |
nl:: |
Declaração de encaminhamento de WeaveFabricState. |
nl:: |
A definição do identificador de chaves do Weave. |
nl:: |
A definição da classe WeaveMessageLayer, que gerencia a comunicação com outros nós do Weave. |
nl:: |
Contém informações sobre a chave de criptografia de mensagens do Weave. |
nl:: |
Cache de chaves para as chaves de criptografia de mensagens do Weave. |
nl:: |
|
nl:: |
Objeto de base comum para implementar respostas não solicitadas de perfis (servidores) do Weave que encapsulam a validação de solicitações autenticadas e o envio de relatórios de status, além de fornecer armazenamento comum de membros de dados para o estado da malha e um gerenciador de troca. |
nl:: |
Uma classe de base comum para implementar objetos delegados do servidor do Weave. |
nl:: |
Contém informações sobre uma chave de sessão do Weave. |
nl:: |
Informa o estado de comunicação necessário para enviar/receber mensagens com outro nó. |
Estruturas |
|
---|---|
nl:: |
|
nl:: |
A configuração do WRMP. |
nl:: |
Informações sobre uma mensagem do Weave que está em processo de envio ou recebimento. |
União |
|
---|---|
nl:: |
Namespaces |
|
---|---|
nl:: |
Esse namespace inclui todas as interfaces no Weave para trabalhar com ASN.1 (Abstrato Syntax Notation Notation One). |
nl:: |
Esse namespace inclui todas as interfaces no Weave para suporte criptográfico compartilhado. |
nl:: |
|
nl:: |
|
nl:: |
Esse namespace oferece funções para: |
nl:: |
Esse namespace inclui todas as interfaces do Weave para suporte à geração de registros compartilhada. |
nl:: |
|
nl:: |
Esse namespace inclui todas as interfaces no Weave para perfis do Weave, tanto comum quanto específicas do fornecedor da Nest Labs. |
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
Definições para trabalhar com dados codificados no formato TLV do Weave. |
nl:: |
Esse namespace inclui interfaces para o módulo de roteamento e endereços do Weave, um módulo portátil para configuração de endereços IP e rotas do Weave. |
Enumerações
@21
@21
Propriedades | |
---|---|
kFlagAckPending
|
Se uma resposta é esperada para uma mensagem que está sendo enviada. |
kFlagAutoReleaseConnection
|
Liberar automaticamente a chave de criptografia de mensagens quando o contexto da troca for liberado. |
kFlagAutoReleaseKey
|
Quando definido, significa que pelo menos uma mensagem foi recebida de um peer no contexto de troca. |
kFlagAutoRequestAck
|
Este contexto foi associado a uma WeaveConnection. |
kFlagConnectionClosed
|
Esse 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. Essa flag é lida pelo aplicativo para decidir se 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 o WRMP. |
kFlagPeerRequestedAck
|
Quando definido, significa que há uma confirmação pendente a ser enviada de volta. |
kFlagResponseExpected
|
Somente interno e de depuração: quando definida, a camada de troca não envia uma confirmação. |
kFlagUseEphemeralUDPPort
|
Libera automaticamente o WeaveConnection associado quando o contexto da troca é liberado. |
@36
@36
@37
@37
@38
@38
Propriedades | |
---|---|
kFabricIdDefaultForTest
|
ID da malha padrão, que só deve ser usado 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 o aplicativo de um certificado. Os tipos de certificado não são transportados como atributos dos certificados correspondentes. Eles 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 mais usados. Os desenvolvedores também podem estender o intervalo de valores de tipo de certificado com tipos específicos de aplicativo 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 aplicativo é influenciado pelo tipo de certificado apresentado pelo solicitante.
Propriedades | |
---|---|
kCertType_AccessToken
|
Um certificado de token de acesso do Weave. |
kCertType_AppDefinedBase
|
Os tipos de certificado específicos do aplicativo precisam ter um valor maior ou igual a esse. |
kCertType_CA
|
Um certificado de CA. |
kCertType_Device
|
Um 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 do que esse valor. |
kCertType_NotSpecified
|
O tipo do certificado não foi especificado. |
kCertType_ServiceEndpoint
|
Um certificado de endpoint de serviço do Weave. |
a 40
@40
Identifica a origem da senha usada em um protocolo de autenticação com base em senha (por exemplo,
Weave)
@41
@41
Propriedades | |
---|---|
kWeaveAuthModeCategory_AppDefinedBase
|
Valor base para categorias de autenticação definidas pelo aplicativo. |
kWeaveAuthModeCategory_CASE
|
Pare autenticado com o protocolo Weave CASE. |
kWeaveAuthModeCategory_General
|
Pare autenticado usando um de um conjunto de mecanismos gerais. |
kWeaveAuthModeCategory_GroupKey
|
Par autenticado usando uma chave de grupo compartilhada. |
kWeaveAuthModeCategory_PASE
|
Pare autenticado com o protocolo Weave PASE. |
kWeaveAuthModeCategory_TAKE
|
Pare autenticado com o protocolo Weave Take. |
kWeaveAuthMode_CASE_AccessToken
|
Par autenticado usando CASE com certificado de token de acesso do Weave. |
kWeaveAuthMode_CASE_AnyCert
|
Pare autenticado usando CASE com certificado arbitrário ou certificado de tipo desconhecido. |
kWeaveAuthMode_CASE_Device
|
Pare autenticado usando CASE com certificado de dispositivo do Weave. |
kWeaveAuthMode_CASE_GeneralCert
|
Pare autenticado usando CASE com um tipo de certificado geral ou não específico. |
kWeaveAuthMode_CASE_ServiceEndPoint
|
Pare autenticado usando CASE com o certificado de endpoint de serviço do Weave. |
kWeaveAuthMode_NotSpecified
|
Modo de autenticação não especificado. |
kWeaveAuthMode_PASE_PairingCode
|
Pare autenticado usando PASE com o 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 segredos de tecido correspondentes. |
@43
@43
Propriedades | |
---|---|
kTestKey_AES128CTRSHA1_DataKeyByte
|
Valor de byte que cria a chave de criptografia, usada apenas para testes. |
kTestKey_AES128CTRSHA1_IntegrityKeyByte
|
Valor de byte que constrói a chave de integridade, usada apenas para testes. |
a 44
@44
Tamanho do diversificador da chave de aplicativo de criptografia de mensagens do Weave.
a 45
@45
a 53
@53
a 54
@54
Propriedades | |
---|---|
kWeavePeerDescription_MaxLength
|
Tamanho máximo da string (incluindo o caractere NUL) retornado por WeaveMessageLayer::GetPeerDescription(). |
a 55
@55
Definições relativas 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 do contador de mensagens. |
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 IP em túnel. |
a 56
@56
Definições de campo de bit para identificadores IEEE EUI-64.
Propriedades | |
---|---|
kEUI64_IG_Group
|
Valor de bit individual/grupo indicando 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/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 indicando um identificador EUI-64 administrado localmente. |
kEUI64_UL_Mask
|
Bitmask para o bit universal/local (U/L) dentro de 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. |
a 57
@57
Intervalos especiais de IDs de nós do Weave.
Propriedades | |
---|---|
kMaxAlwaysLocalWeaveNodeId
|
Identificadores de nós do Weave menores ou iguais a esse valor são considerados locais para facilitar o teste. |
WeaveEncryptionType
WeaveEncryptionType
Os tipos de criptografia da mensagem do 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 sinalização do cabeçalho do Weave Exchange.
Propriedades | |
---|---|
kWeaveExchangeFlag_AckId
|
Definido 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
|
Definido 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 de entrada ou saída do Weave.
Os valores definidos aqui são para uso no campo WeaveMessageInfo.Flags.
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 adiado. |
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 solicita a sincronização do contador de mensagens do peering. |
kWeaveMessageFlag_MulticastFromLinkLocal
|
Alias descontinuado de |
kWeaveMessageFlag_PeerGroupMsgIdNotSynchronized
|
Indica que o contador de mensagens de chave de grupo do peering não está sincronizado. |
kWeaveMessageFlag_PeerRequestedAck
|
Indica que o remetente da mensagem solicitou uma confirmação. |
kWeaveMessageFlag_RetainBuffer
|
Indica que o buffer da mensagem não pode ser liberado após o envio. |
kWeaveMessageFlag_ReuseMessageId
|
Indica que o identificador de mensagem existente precisa ser reutilizado. |
kWeaveMessageFlag_ReuseSourceId
|
Indica que o identificador de nó de origem existente 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 IP em túnel. |
kWeaveMessageFlag_ViaEphemeralUDPPort
|
Indica que a mensagem está sendo enviada/recebida pela porta UDP temporária local. |
WeaveMessageVersion
WeaveMessageVersion
A versão do formato de mensagens do Weave.
O Weave escolherá a versão de mensagem apropriada com base no formato de frame exigido para a mensagem. 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
|
Formato da mensagem versão V1. |
kWeaveMessageVersion_V2
|
Formato da mensagem versão V2. |
WeaveSubnetId
WeaveSubnetId
O Weave tem alguns números de sub-rede reservados para interfaces de rede distintas em dispositivos comuns.
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 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 da interface de rádio do alarme do Thread. |
kWeaveSubnetId_ThreadMesh
|
O identificador de sub-rede da interface de rádio da malha de encadeamento. |
kWeaveSubnetId_WiFiAP
|
O número da sub-rede da interface de AP local do Wi-Fi. |
WeaveVendorId
WeaveVendorId
Typedefs
FabricSecretRotationScheme
uint8_t FabricSecretRotationScheme
FabricSecretScope
uint8_t FabricSecretScope
Identifica a categoria de dispositivos que podem ter e usar segredo de tecido.
WeaveAuthMode
uint16_t WeaveAuthMode
Identifica como um nó de peering é autenticado.
WeaveAuthMode descreve os meios pelos quais um nó de peering foi ou deveria 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, assim, as camadas de segurança e mensagens do Weave para alcançar o modo desejado ou falhar na comunicação. Em um contexto de resposta, WeaveAuthMode identifica como o nó solicitante (o peer) foi autenticado, permitindo que o aplicativo que responde imponha controles de acesso com base nessas informações.
O WeaveAuthMode atribuído a uma mensagem do Weave recebida está relacionado à natureza da chave usada para criptografar essa mensagem. O WeaveAuthMode deriva do mecanismo pelo qual a chave foi estabelecida e dos critérios usados para verificar as identidades das partes que se comunicam no momento do estabelecimento da chave.
O WeaveAuthMode inclui um conjunto de valores predefinidos que descrevem modos comuns de autenticação. Eles são divididos pelo mecanismo de contrato de chave (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 da mensagem do Weave.
WeaveExchangeFlags
enum nl::Weave::WeaveExchangeFlags WeaveExchangeFlags
Os bits de sinalização do 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 de entrada ou saída do Weave.
Os valores definidos aqui são para uso no campo WeaveMessageInfo.Flags.
WeaveMessageHeader
struct WeaveMessageInfo WeaveMessageHeader
WeaveMessageVersion
enum nl::Weave::WeaveMessageVersion WeaveMessageVersion
A versão do formato de mensagens do Weave.
O Weave escolherá a versão de mensagem apropriada com base no formato de frame exigido para a mensagem. 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
O Weave tem alguns números de sub-rede reservados para interfaces de rede distintas em dispositivos comuns.
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 em 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 chaves usado para derivação de chaves de criptografia de mensagens do Weave.
Esse valor representa os primeiros 4 bytes do SHA-1 HASH de "Nest Weave Message EK and AK" frase
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 origem da senha do modo de autenticação especificado.
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 do Weave, retorna uma string C terminada em NULL legível por humanos que descreve o erro.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Retornos |
true Se uma string de descrição foi gravada no buffer fornecido.
|
||||||
Retornos |
false Se o erro fornecido não for um erro do Weave.
|
GenerateWeaveNodeId
NL_DLL_EXPORT WEAVE_ERROR GenerateWeaveNodeId( uint64_t & nodeId )
Gere um ID aleatório do nó do Weave.
Essa função gera um ID de nó do Weave local exclusivo de 64 bits. 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ó do Weave gerado está definido como 1 para indicar que o ID do nó do Weave gerado é local (não globalmente) exclusivo.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Valores de retorno |
|
GetFibonacciForIndex
uint32_t GetFibonacciForIndex( uint32_t index )
Esta função gera um número Fibonacci de 32 bits para um determinado índice de 32 bits.
Detalhes | |
---|---|
Retornos |
Número Fibonacci não assinado 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 )
Essa função gera um número aleatório não assinado de 16 bits.
Detalhes | |
---|---|
Retornos |
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 | |
---|---|
Retornos |
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 | |
---|---|
Retornos |
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 | |
---|---|
Retornos |
Número inteiro aleatório não assinado 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ó do Weave.
Para facilitar o teste, os identificadores de nó menores ou iguais a #kMaxSempreLocalWeaveNodeId (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, um ULA para o identificador de nó 10
seria FD00:0
:1:1::A.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retornos |
o identificador de nó do Weave de 64 bits mapeado.
|
IsCASEAuthMode
bool IsCASEAuthMode( WeaveAuthMode authMode )
Verdadeiro se o modo de autenticação for baseado no protocolo CASE do Weave.
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 origem de senha.
PasswordSourceFromAuthMode
uint8_t PasswordSourceFromAuthMode( WeaveAuthMode authMode )
Retorna a origem da senha do modo de autenticação especificado.
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 malha do Weave em um identificador global ULA IPv6.
O identificador global ULA de um endereço de malha corresponde aos 40 bits inferiores do ID de malha de 64 bits.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retornos |
o identificador global IPv6 mapeado.
|
WeaveMessageSourceToStr
void WeaveMessageSourceToStr( char *buf, uint32_t bufSize, const WeaveMessageInfo *msgInfo )
USO SUSPENSO Use WeaveMessageLayer::GetPeerDescription().
WeaveNodeAddrToStr
void WeaveNodeAddrToStr( char *buf, uint32_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, WeaveConnection *con )
USO SUSPENSO Use WeaveMessageLayer::GetPeerDescription().
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 a RFC-3513, são convertidos em identificadores de interface invertendo o bit universal/local (bit 57 contando o LSB como 0).
Para facilitar o teste, os identificadores de nó menores ou iguais a #kMaxSempreLocalWeaveNodeId (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, um ULA para o identificador de nó 10
seria FD00:0
:1:1::A.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retornos |
identificador de interface IPv6.
|
max
const _T & max( const _T & a, const _T & b )
min
const _T & min( const _T & a, const _T & b )