nl::Weave

Résumé

Énumérations

@21{
  kFlagConnectionClosed = 0x0002,
  kFlagAutoRequestAck = 0x0004,
  kFlagDropAck = 0x0008,
  kFlagResponseExpected = 0x0010,
  kFlagAckPending = 0x0020,
  kFlagPeerRequestedAck = 0x0040,
  kFlagMsgRcvdFromPeer = 0x0080,
  kFlagAutoReleaseKey = 0x0100,
  kFlagAutoReleaseConnection = 0x0200,
  kFlagUseEphemeralUDPPort = 0x0400
}
énum
@36 énum
@37 énum
@38{
  kFabricIdDefaultForTest = 1ULL
}
énum
@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
}
énum
Identifie l'objectif ou l'application du certificat.
@40 énum
Identifie la source du mot de passe utilisé dans un protocole d'authentification par mot de passe (par exemple,
@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
}
énum
@42{
  kFabricSecretScope_All = 0x00
}
énum
@43{
  kTestKey_AES128CTRSHA1_DataKeyByte = 0xAB,
  kTestKey_AES128CTRSHA1_IntegrityKeyByte = 0xBA
}
énum
@44 énum
Taille du diversificateur de clé d'application Weave pour le chiffrement des messages.
@45 énum
@53 énum
@54{
  kWeavePeerDescription_MaxLength = 100
}
énum
@55{
  kWeaveHeaderFlag_DestNodeId = 0x0100,
  kWeaveHeaderFlag_SourceNodeId = 0x0200,
  kWeaveHeaderFlag_TunneledData = 0x0400,
  kWeaveHeaderFlag_MsgCounterSyncReq = 0x0800
}
énum
Définitions relatives à l'en-tête d'un message Weave codé.
@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
}
énum
Définitions des champs de bits pour les identifiants IEEE EUI-64.
@57{
  kMaxAlwaysLocalWeaveNodeId = 0x000000000000FFFFULL
}
énum
Plages spéciales d'ID de nœud Weave.
WeaveEncryptionType{
  kWeaveEncryptionType_None = 0,
  kWeaveEncryptionType_AES128CTRSHA1 = 1
}
énum
Types de chiffrement du message Weave.
WeaveExchangeFlags{
  kWeaveExchangeFlag_Initiator = 0x1,
  kWeaveExchangeFlag_AckId = 0x2,
  kWeaveExchangeFlag_NeedsAck = 0x4
}
énum
Bits d'indicateur d'en-tête Weave Exchange.
WeaveExchangeVersion énum
Version d'en-tête 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
}
énum
Indicateurs associés à un message Weave entrant ou sortant.
WeaveMessageVersion{
  kWeaveMessageVersion_Unspecified = 0,
  kWeaveMessageVersion_V1 = 1,
  kWeaveMessageVersion_V2 = 2
}
énum
Version du format de message Weave.
WeaveSubnetId{
  kWeaveSubnetId_NotSpecified = 0,
  kWeaveSubnetId_PrimaryWiFi = 1,
  kWeaveSubnetId_ThreadAlarm = 2,
  kWeaveSubnetId_WiFiAP = 3,
  kWeaveSubnetId_MobileDevice = 4,
  kWeaveSubnetId_Service = 5,
  kWeaveSubnetId_ThreadMesh = 6
}
énum
Weave offre des numéros de sous-réseau réservés pour les interfaces réseau distinguées sur les appareils classiques.
WeaveVendorId énum

Typedefs

FabricSecretRotationScheme typedef
uint8_t
FabricSecretScope nl::Weave::FabricSecretScope
uint8_t
Identifie la catégorie des appareils qui peuvent posséder et utiliser le code secret du tissu.
WeaveAuthMode typedef
uint16_t
Identifie la manière dont un nœud pair est authentifié.
WeaveEncryptionKey typedef
WeaveEncryptionType typedef
enum nl::Weave::WeaveEncryptionType
Types de chiffrement du message Weave.
WeaveExchangeFlags typedef
enum nl::Weave::WeaveExchangeFlags
Bits d'indicateur d'en-tête Weave Exchange.
WeaveExchangeVersion typedef
enum nl::Weave::WeaveExchangeVersion
Version d'en-tête Weave Exchange.
WeaveMessageFlags typedef
enum nl::Weave::WeaveMessageFlags
Indicateurs associés à un message Weave entrant ou sortant.
WeaveMessageHeader typedef
WeaveMessageVersion typedef
enum nl::Weave::WeaveMessageVersion
Version du format de message Weave.
WeaveSubnetId typedef
enum nl::Weave::WeaveSubnetId
Weave offre des numéros de sous-réseau réservés pour les interfaces réseau distinguées sur les appareils classiques.

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
Diversificateur de clé utilisé pour la dérivation des clés de chiffrement de message Weave.

Fonctions

AppGroupMasterKeyIdFromAuthMode(WeaveAuthMode authMode)
uint8_t
Renvoie l'ID de clé principale du groupe d'applications associé au mode d'authentification.
CASEAuthMode(uint8_t certType)
WeaveAuthMode
Renvoie un mode d'authentification CASE correspondant à un type de certificat donné.
CertTypeFromAuthMode(WeaveAuthMode authMode)
uint8_t
Renvoie la source du mot de passe pour le mode d'authentification donné.
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
Pour une erreur Weave, cette fonction renvoie une chaîne C qui se termine par une valeur NULL et qui décrit l'erreur dans un format lisible.
GenerateWeaveNodeId(uint64_t & nodeId)
NL_DLL_EXPORT WEAVE_ERROR
Générez un ID de nœud Weave aléatoire.
GetFibonacciForIndex(uint32_t index)
uint32_t
Cette fonction génère le nombre de Fibonacci 32 bits pour un index 32 bits donné.
GetMessageName(uint32_t profileId, uint8_t msgType)
const char *
GetProfileName(uint32_t profileId)
const char *
GetRandU16(void)
uint16_t
Cette fonction génère un nombre aléatoire non signé de 16 bits.
GetRandU32(void)
uint32_t
Cette fonction génère un nombre aléatoire non signé de 32 bits.
GetRandU64(void)
uint64_t
Cette fonction génère un nombre aléatoire non signé de 64 bits.
GetRandU8(void)
uint8_t
Cette fonction génère un nombre aléatoire non signé de 8 bits.
GetVendorName(uint16_t vendorId)
const char *
GroupKeyAuthMode(uint32_t keyId)
WeaveAuthMode
Renvoie un mode d'authentification par clé de groupe correspondant à un ID de clé donné.
IPv6InterfaceIdToWeaveNodeId(uint64_t interfaceId)
uint64_t
Convertir un identifiant d'interface d'adresse IPv6 en identifiant de nœud Weave.
IsCASEAuthMode(WeaveAuthMode authMode)
bool
"True" si le mode d'authentification est basé sur le protocole Weave CASE.
IsCertAuthMode(WeaveAuthMode authMode)
bool
"True" si le mode d'authentification est basé sur la possession d'une clé privée associée à un certificat.
IsGroupKeyAuthMode(WeaveAuthMode authMode)
bool
"True" si le mode d'authentification est basé sur la possession d'une clé de groupe partagée.
IsPASEAuthMode(WeaveAuthMode authMode)
bool
"True" si le mode d'authentification est basé sur le protocole Weave PASE.
IsPasswordAuthMode(WeaveAuthMode authMode)
bool
"True" si le mode d'authentification est basé sur la possession d'un mot de passe partagé.
IsTAKEAuthMode(WeaveAuthMode authMode)
bool
"True" si le mode d'authentification est basé sur le protocole 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
Renvoie un mode d'authentification PASE correspondant pour une source de mot de passe donnée.
PasswordSourceFromAuthMode(WeaveAuthMode authMode)
uint8_t
Renvoie la source du mot de passe pour le mode d'authentification donné.
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
Convertir un identifiant de tissu Weave en identifiant global ULA IPv6
WeaveMessageSourceToStr(char *buf, uint32_t bufSize, const WeaveMessageInfo *msgInfo)
void
OBSOLÈTE Utilisez WeaveMessageLayer::GetPeerDescription() à la place.
WeaveNodeAddrToStr(char *buf, uint32_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, WeaveConnection *con)
void
OBSOLÈTE Utilisez WeaveMessageLayer::GetPeerDescription() à la place.
WeaveNodeIdToIPv6InterfaceId(uint64_t nodeId)
uint64_t
Convertir un identifiant de nœud Weave en identifiant d'interface d'adresse IPv6
max(const _T & a, const _T & b)
const _T &
min(const _T & a, const _T & b)
const _T &

Classes

nl::Weave::Binding

Capture la cible prévue d'une communication Weave et les informations de configuration associées.

nl::Weave::Counter

Interface permettant de gérer un compteur en tant que valeur entière.

nl::Weave::ExchangeContext

Cette classe représente une conversation en cours (ExchangeContext) entre deux nœuds ou plus.

nl::Weave::FabricStateDelegate

Cette classe déléguée abstraite communique les changements d'état de la structure.

nl::Weave::HostPortList

Permet de gérer et de manipuler une liste de ports d'hôte, une collection compacte et encodée en binaire de tuples d'identifiant d'hôte et de port associés à l'annuaire des services Weave.

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

Classe permettant de gérer un compteur augmentant de manière monotone en tant que valeur entière.

nl::Weave::PersistedCounter

Classe permettant de gérer un compteur en tant que valeur entière destinée à persister lors des redémarrages.

nl::Weave::WeaveConnection

Définition de la classe Weave Connection.

nl::Weave::WeaveConnectionTunnel

Définition de la classe WeaveConnectionTunnel, qui gère une paire de TCPEndPoints dont les WeaveConnections d'origine ont été couplés, et entre lesquels WeaveMessageLayer transmet toutes les fermetures de données et de connexions.

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

Cela spécifie le profil et le type de message Weave d'un message Weave particulier dans un ExchangeContext.

nl::Weave::WeaveExchangeManager

Cette classe permet de gérer ExchangeContexts avec d'autres nœuds Weave.

nl::Weave::WeaveFabricState

Déclaration de WeaveFabricState.

nl::Weave::WeaveKeyId

Définition de l'identifiant de clé Weave.

nl::Weave::WeaveMessageLayer

Définition de la classe WeaveMessageLayer, qui gère la communication avec les autres nœuds Weave.

nl::Weave::WeaveMsgEncryptionKey

Contient des informations sur la clé de chiffrement des messages Weave.

nl::Weave::WeaveMsgEncryptionKeyCache

Cache de clé pour les clés de chiffrement de messages Weave.

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

Objet de base commun pour l'implémentation de répondeurs (serveurs) non sollicités dans le profil Weave. Ce dispositif encapsule la validation des requêtes authentifiées et l'envoi de rapports d'état, et fournit un espace de stockage commun des membres de données pour l'état de la fabric et un gestionnaire d'échange.

nl::Weave::WeaveServerDelegateBase

Classe de base commune pour implémenter des objets délégués de serveur Weave.

nl::Weave::WeaveSessionKey

Contient des informations sur une clé de session Weave.

nl::Weave::WeaveSessionState

Transmet l'état de communication nécessaire pour envoyer/recevoir des messages avec un autre nœud.

Structs

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

Configuration WRMP.

nl::Weave::WeaveMessageInfo

Informations concernant un message Weave en cours d'envoi ou de réception.

Union

nl::Weave::WeaveEncryptionKey

Espaces de noms

nl::Weave::ASN1

Cet espace de noms inclut toutes les interfaces de Weave permettant de travailler avec ASN.1 (Abstract Syntax Notation One).

nl::Weave::Crypto

Cet espace de noms inclut toutes les interfaces de Weave pour la compatibilité cryptographique partagée.

nl::Weave::DeviceLayer
nl::Weave::DeviceManager
nl::Weave::Encoding

Cet espace de noms fournit des fonctions pour:

nl::Weave::Logging

Cet espace de noms inclut toutes les interfaces de Weave pour la prise en charge de la journalisation partagée.

nl::Weave::Platform
nl::Weave::Profiles

Cet espace de noms inclut toutes les interfaces des profils Weave pour les profils Weave, à la fois Common et Nest Labs spécifiques.

nl::Weave::SecuritySupport
nl::Weave::Stats
nl::Weave::Support
nl::Weave::System
nl::Weave::TLV

Définitions relatives à l'utilisation de données encodées au format TLV Weave.

nl::Weave::Warm

Cet espace de noms comprend des interfaces pour le module d'adresse et de routage Weave, un module portable permettant de configurer les adresses IP et les routes Weave.

Énumérations

@21

 @21
Propriétés
kFlagAckPending

Indique si une réponse est attendue pour un message en cours d'envoi.

kFlagAutoReleaseConnection

Libérez automatiquement la clé de chiffrement du message lorsque le contexte d'échange est libéré.

kFlagAutoReleaseKey

Lorsqu'il est défini, il signifie qu'au moins un message a été reçu d'un pair dans ce contexte d'échange.

kFlagAutoRequestAck

Ce contexte a été associé à WeaveConnection.

kFlagConnectionClosed

Ce contexte est à l'origine de l'échange.

kFlagDropAck

Lorsque cette option est définie, un accusé de réception est automatiquement demandé chaque fois qu'un message est envoyé via UDP.

kFlagMsgRcvdFromPeer

Lorsqu'il est défini, il signifie qu'au moins un message reçu sur cet échange a demandé un accusé de réception.

Cet indicateur est lu par l'application pour décider si elle doit demander un accusé de réception pour le message de réponse qu'elle est sur le point d'envoyer. Cette option peut également indiquer si le pair utilise le protocole WRMP.

kFlagPeerRequestedAck

Lorsqu'il est défini, cela signifie qu'un accusé de réception est en attente d'envoi.

kFlagResponseExpected

Interne et débogage uniquement: lorsqu'elle est définie, la couche d'échange n'envoie pas d'accusé de réception.

kFlagUseEphemeralUDPPort

Libérez automatiquement la connexion WeaveConnection associée lorsque le contexte de l'échange est libéré.

36

 @36

p. 37

 @37

p. 38

 @38
Propriétés
kFabricIdDefaultForTest

ID de tissu par défaut, qui ne doit être utilisé qu'à des fins de test.

p. 39

 @39

Identifie l'objectif ou l'application du certificat.

Un type de certificat est une étiquette qui décrit l'objectif ou l'application d'un certificat. Les types de certificats ne sont pas transportés en tant qu'attributs des certificats correspondants, mais sont plutôt dérivés de la structure du certificat et/ou du contexte dans lequel il est utilisé. L'énumération du type de certificat comprend un ensemble de valeurs prédéfinies décrivant les applications de certificat couramment utilisées. Les développeurs peuvent également étendre la plage de valeurs du type de certificat avec des types spécifiques à des applications qui décrivent des certificats personnalisés ou des certificats avec des propriétés de sécurité uniques.

Les types de certificats sont principalement utilisés dans la mise en œuvre de stratégies de contrôle d'accès, où l'accès aux fonctionnalités de l'application est influencé par le type de certificat présenté par le demandeur.

Propriétés
kCertType_AccessToken

Certificat de jeton d'accès Weave.

kCertType_AppDefinedBase

Les types de certificats spécifiques à l’application doivent avoir des valeurs >= cette valeur.

kCertType_CA

Un certificat CA.

kCertType_Device

Un certificat d'appareil Weave.

kCertType_FirmwareSigning

Certificat de signature du micrologiciel Weave.

kCertType_General

Le certificat est de type général ou non spécifique.

kCertType_Max

Les types de certificats ne doivent pas être supérieurs à cette valeur.

kCertType_NotSpecified

Le type du certificat n'a pas été spécifié.

kCertType_ServiceEndpoint

Certificat de point de terminaison du service Weave.

@40

 @40

Identifie la source du mot de passe utilisé dans un protocole d'authentification par mot de passe (par exemple,

Weave PASE).

@41

 @41
Propriétés
kWeaveAuthModeCategory_AppDefinedBase

Valeur de base pour les catégories d'authentification définies par l'application.

kWeaveAuthModeCategory_CASE

Authentification par un pair authentifié à l'aide du protocole CASE Weave.

kWeaveAuthModeCategory_General

Authentification par un pair authentifié à l'aide de l'un des mécanismes généraux.

kWeaveAuthModeCategory_GroupKey

Authentification par un pair authentifié à l'aide d'une clé de groupe partagée.

kWeaveAuthModeCategory_PASE

Authentification par un pair authentifié à l'aide du protocole Weave PASE.

kWeaveAuthModeCategory_TAKE

Authentification par un pair authentifié à l'aide du protocole Weave Take.

kWeaveAuthMode_CASE_AccessToken

Appairage authentifié à l'aide de CASE avec certificat de jeton d'accès Weave.

kWeaveAuthMode_CASE_AnyCert

Appairage authentifié à l'aide de CASE avec un certificat arbitraire ou un certificat de type inconnu.

kWeaveAuthMode_CASE_Device

Appairage authentifié à l'aide de CASE avec le certificat d'appareil Weave.

kWeaveAuthMode_CASE_GeneralCert

Appairage authentifié à l'aide de CASE avec un type de certificat général ou non spécifique.

kWeaveAuthMode_CASE_ServiceEndPoint

Appairage authentifié à l'aide de CASE avec le certificat de point de terminaison du service Weave.

kWeaveAuthMode_NotSpecified

Mode d'authentification non spécifié.

kWeaveAuthMode_PASE_PairingCode

Appairage authentifié à l'aide de PASE avec le code d'association de l'appareil.

kWeaveAuthMode_TAKE_IdentificationKey

Appairage authentifié à l'aide de Take avec une clé d'identification de jeton.

kWeaveAuthMode_Unauthenticated

Pair non authentifié.

@42

 @42
Propriétés
kFabricSecretScope_All

Tous les appareils peuvent posséder le code secret correspondant.

@43

 @43
Propriétés
kTestKey_AES128CTRSHA1_DataKeyByte

Valeur d'octet qui construit la clé de chiffrement, utilisée uniquement à des fins de test.

kTestKey_AES128CTRSHA1_IntegrityKeyByte

Valeur d'octet qui construit la clé d'intégrité, utilisée uniquement à des fins de test.

@44

 @44

Taille du diversificateur de clé d'application Weave pour le chiffrement des messages.

@45

 @45

@53

 @53

@54

 @54
Propriétés
kWeavePeerDescription_MaxLength

Longueur maximale de la chaîne (caractère NUL compris) renvoyée par WeaveMessageLayer::GetPeerDescription().

@55

 @55

Définitions relatives à l'en-tête d'un message Weave codé.

Propriétés
kWeaveHeaderFlag_DestNodeId

Indique que l'ID du nœud de destination est présent dans l'en-tête du message Weave.

kWeaveHeaderFlag_MsgCounterSyncReq

Indique que l'expéditeur demande à synchroniser le compteur de messages.

kWeaveHeaderFlag_SourceNodeId

Indique que l'ID du nœud source est présent dans l'en-tête du message Weave.

kWeaveHeaderFlag_TunneledData

Indique que la charge utile du message Weave est un paquet IP acheminé par tunnel.

56

 @56

Définitions des champs de bits pour les identifiants IEEE EUI-64.

Propriétés
kEUI64_IG_Group

Bit individuel/de groupe indiquant un identifiant EUI-64 d'adresse de groupe.

kEUI64_IG_Individual

Bit individuel/de groupe indiquant un identifiant EUI-64 d'adresse individuelle.

kEUI64_IG_Mask

Masque de bits pour le bit d'individu/groupe (I/G) dans un identifiant EUI-64.

Une valeur de 0 indique que l'identifiant correspond à une adresse individuelle. Une valeur de 1 indique que l'identifiant est une adresse de groupe.

kEUI64_UL_Local

Valeur de bit universel/local indiquant un identifiant EUI-64 administré localement.

kEUI64_UL_Mask

Masque de bits pour le bit universel/local (U/L) dans un identifiant EUI-64.

La valeur 0 indique que l'identifiant est géré (globalement) dans le monde entier. La valeur 1 indique que l'identifiant est géré localement.

kEUI64_UL_Unversal

Valeur de bit universel/local indiquant un identifiant EUI-64 administré universellement.

57

 @57

Plages spéciales d'ID de nœud Weave.

Propriétés
kMaxAlwaysLocalWeaveNodeId

Les identifiants de nœud Weave inférieurs ou égaux à cette valeur sont considérés comme locaux pour des raisons de commodité.

WeaveEncryptionType

 WeaveEncryptionType

Types de chiffrement du message Weave.

Propriétés
kWeaveEncryptionType_AES128CTRSHA1

Message chiffré à l'aide du chiffrement AES-128-CTR avec l'intégrité HMAC-SHA-1.

kWeaveEncryptionType_None

Message non chiffré.

WeaveExchangeFlags

 WeaveExchangeFlags

Bits d'indicateur d'en-tête Weave Exchange.

Propriétés
kWeaveExchangeFlag_AckId

Défini lorsque le message actuel est une confirmation d'un message reçu précédemment.

kWeaveExchangeFlag_Initiator

Défini lorsque le message actuel est envoyé par l'initiateur d'un échange.

kWeaveExchangeFlag_NeedsAck

Défini lorsque le message actuel demande un accusé de réception au destinataire.

WeaveExchangeVersion

 WeaveExchangeVersion

Version d'en-tête Weave Exchange.

WeaveMessageFlags

 WeaveMessageFlags

Indicateurs associés à un message Weave entrant ou sortant.

Les valeurs définies ici doivent être utilisées dans le champ WeaveMessageInfo.Flags.

Propriétés
kWeaveMessageFlag_DefaultMulticastSourceAddress

Indique que la sélection de l'adresse source IPv6 par défaut doit être utilisée lors de l'envoi de messages IPv6 multicast.

kWeaveMessageFlag_DelaySend

Indique que l'envoi du message doit être retardé.

kWeaveMessageFlag_DestNodeId

Indique que l'ID du nœud de destination est présent dans l'en-tête du message Weave.

kWeaveMessageFlag_DuplicateMessage

Indique que le message est un double d'un message reçu précédemment.

kWeaveMessageFlag_FromInitiator

Indique que la source du message est l'initiateur de l'échange Weave.

kWeaveMessageFlag_MessageEncoded

Indique que le message Weave est déjà encodé.

kWeaveMessageFlag_MsgCounterSyncReq

Indique que l'expéditeur demande la synchronisation du compteur de messages de l'homologue.

kWeaveMessageFlag_MulticastFromLinkLocal

Alias obsolète pour kWeaveMessageFlag_DefaultMulticastSourceAddress.

kWeaveMessageFlag_PeerGroupMsgIdNotSynchronized

Indique que le compteur de messages de clé de groupe du pair n'est pas synchronisé.

kWeaveMessageFlag_PeerRequestedAck

Indique que l'expéditeur du message a demandé une confirmation.

kWeaveMessageFlag_RetainBuffer

Indique que la mémoire tampon du message ne doit pas être libérée après l'envoi.

kWeaveMessageFlag_ReuseMessageId

Indique que l'identifiant du message existant doit être réutilisé.

kWeaveMessageFlag_ReuseSourceId

Indique que l'identifiant du nœud source existant doit être réutilisé.

kWeaveMessageFlag_SourceNodeId

Indique que l'ID du nœud source est présent dans l'en-tête du message Weave.

kWeaveMessageFlag_TunneledData

Indique que la charge utile du message Weave est un paquet IP acheminé par tunnel.

kWeaveMessageFlag_ViaEphemeralUDPPort

Indique que le message est envoyé/reçu via le port UDP local éphémère.

WeaveMessageVersion

 WeaveMessageVersion

Version du format de message Weave.

Weave choisit la version de message appropriée en fonction du format de trame requis pour le message Weave. Par défaut, la version du message est kWeaveMessageVersion_V1. Par exemple, lorsque vous utilisez la messagerie fiable de Weave, la version est kWeaveMessageVersion_V2.

Propriétés
kWeaveMessageVersion_Unspecified

Version du message non spécifiée.

kWeaveMessageVersion_V1

Version V1 du format d'en-tête de message.

kWeaveMessageVersion_V2

Version 2 du format d'en-tête de message.

WeaveSubnetId

 WeaveSubnetId

Weave offre des numéros de sous-réseau réservés pour les interfaces réseau distinguées sur les appareils classiques.

Ces nombres sont attribués ici à des constantes symboliques. Ces numéros de sous-réseau sont utilisés par Weave pour configurer les adresses IPv6 ULA sur les interfaces appropriées.

Propriétés
kWeaveSubnetId_MobileDevice

Identifiant de sous-réseau de tous les appareils mobiles.

kWeaveSubnetId_NotSpecified

Réservée en tant que valeur non spécifiée ou nulle.

kWeaveSubnetId_PrimaryWiFi

Numéro de sous-réseau de l'interface radio Wi-Fi.

kWeaveSubnetId_Service

Identifiant de sous-réseau des points de terminaison du service Nest.

kWeaveSubnetId_ThreadAlarm

Numéro de sous-réseau de l'interface radio d'alarme Thread.

kWeaveSubnetId_ThreadMesh

Identifiant du sous-réseau de l'interface radio du réseau maillé Thread.

kWeaveSubnetId_WiFiAP

Numéro de sous-réseau de l'interface du point d'accès Wi-Fi local.

WeaveVendorId

 WeaveVendorId

Typedefs

FabricSecretRotationScheme

uint8_t FabricSecretRotationScheme

FabricSecretScope

uint8_t FabricSecretScope

Identifie la catégorie des appareils qui peuvent posséder et utiliser le code secret du tissu.

WeaveAuthMode

uint16_t WeaveAuthMode

Identifie la manière dont un nœud pair est authentifié.

WeaveAuthMode décrit les moyens par lesquels un nœud pair a été, ou devrait être, authentifié lors d'un échange de messages Weave. Dans un contexte de lancement, les applications utilisent WeaveAuthMode pour indiquer le mode d'authentification des pairs souhaité pour un échange, demandant ainsi aux couches de sécurité et de messagerie Weave d'atteindre le mode souhaité ou d'échouer la communication. Dans un contexte de réponse, WeaveAuthMode identifie la manière dont le nœud demandeur (le pair) a été authentifié, ce qui permet à l'application qui répond d'appliquer des contrôles d'accès sur la base de ces informations.

Le mode WeaveAuthMode attribué à un message Weave entrant est lié à la nature de la clé utilisée pour chiffrer ce message. Le WeaveAuthMode est dérivé du mécanisme par lequel la clé a été établie et des critères utilisés pour vérifier l'identité des parties communicantes au moment de l'établissement de la clé.

WeaveAuthMode comprend un ensemble de valeurs prédéfinies décrivant les modes d'authentification courants. Celles-ci sont réparties par mécanisme d'accord clé (CASE, PASE, GroupKey, etc.). Les développeurs peuvent étendre WeaveAuthMode en définissant des modes spécifiques à l'application, qu'ils peuvent associer à des clés de chiffrement spécifiques.

WeaveEncryptionKey

union nl::Weave::WeaveEncryptionKey WeaveEncryptionKey

WeaveEncryptionType

enum nl::Weave::WeaveEncryptionType WeaveEncryptionType

Types de chiffrement du message Weave.

WeaveExchangeFlags

enum nl::Weave::WeaveExchangeFlags WeaveExchangeFlags

Bits d'indicateur d'en-tête Weave Exchange.

WeaveExchangeVersion

enum nl::Weave::WeaveExchangeVersion WeaveExchangeVersion

Version d'en-tête Weave Exchange.

WeaveMessageFlags

enum nl::Weave::WeaveMessageFlags WeaveMessageFlags

Indicateurs associés à un message Weave entrant ou sortant.

Les valeurs définies ici doivent être utilisées dans le champ WeaveMessageInfo.Flags.

WeaveMessageHeader

struct WeaveMessageInfo WeaveMessageHeader

WeaveMessageVersion

enum nl::Weave::WeaveMessageVersion WeaveMessageVersion

Version du format de message Weave.

Weave choisit la version de message appropriée en fonction du format de trame requis pour le message Weave. Par défaut, la version du message est kWeaveMessageVersion_V1. Par exemple, lorsque vous utilisez la messagerie fiable de Weave, la version est kWeaveMessageVersion_V2.

WeaveSubnetId

enum nl::Weave::WeaveSubnetId WeaveSubnetId

Weave offre des numéros de sous-réseau réservés pour les interfaces réseau distinguées sur les appareils classiques.

Ces nombres sont attribués ici à des constantes symboliques. Ces numéros de sous-réseau sont utilisés par Weave pour configurer les adresses IPv6 ULA sur les interfaces appropriées.

Variables

ExchangeMgr

NL_DLL_EXPORT WeaveExchangeManager ExchangeMgr

FabricState

NL_DLL_EXPORT WeaveFabricState FabricState

MessageLayer

NL_DLL_EXPORT WeaveMessageLayer MessageLayer

SecurityMgr

NL_DLL_EXPORT WeaveSecurityManager SecurityMgr

WeaveConnection

class NL_DLL_EXPORT WeaveConnection

WeaveExchangeManager

class NL_DLL_EXPORT WeaveExchangeManager

WeaveMessageLayer

class NL_DLL_EXPORT WeaveMessageLayer

gDefaultWRMPConfig

const WRMPConfig gDefaultWRMPConfig = { WEAVE_CONFIG_WRMP_DEFAULT_INITIAL_RETRANS_TIMEOUT,
                                        WEAVE_CONFIG_WRMP_DEFAULT_ACTIVE_RETRANS_TIMEOUT,
                                        WEAVE_CONFIG_WRMP_DEFAULT_ACK_TIMEOUT,
                                        WEAVE_CONFIG_WRMP_DEFAULT_MAX_RETRANS }

kWeaveMsgEncAppKeyDiversifier

const uint8_t kWeaveMsgEncAppKeyDiversifier[] = { 0xB1, 0x1D, 0xAE, 0x5B }

Diversificateur de clé utilisé pour la dérivation des clés de chiffrement de message Weave.

Cette valeur représente les 4 premiers octets du hachage SHA-1 de "Nest Weave Message EK and AK" l'expression.

Fonctions

AppGroupMasterKeyIdFromAuthMode

uint8_t AppGroupMasterKeyIdFromAuthMode(
  WeaveAuthMode authMode
)

Renvoie l'ID de clé principale du groupe d'applications associé au mode d'authentification.

CASEAuthMode

WeaveAuthMode CASEAuthMode(
  uint8_t certType
)

Renvoie un mode d'authentification CASE correspondant à un type de certificat donné.

CertTypeFromAuthMode

uint8_t CertTypeFromAuthMode(
  WeaveAuthMode authMode
)

Renvoie la source du mot de passe pour le mode d'authentification donné.

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
)

Pour une erreur Weave, cette fonction renvoie une chaîne C qui se termine par une valeur NULL et qui décrit l'erreur dans un format lisible.

Détails
Paramètres
[in] buf
Tampon dans lequel la chaîne d'erreur sera placée.
[in] bufSize
Taille du tampon fourni en octets.
[in] err
Erreur à décrire.
Renvoie
"true" si une chaîne de description a été écrite dans le tampon fourni.
Renvoie
"false" si l'erreur fournie n'était pas une erreur Weave.

GenerateWeaveNodeId

NL_DLL_EXPORT WEAVE_ERROR GenerateWeaveNodeId(
  uint64_t & nodeId
)

Générez un ID de nœud Weave aléatoire.

Cette fonction génère un ID de nœud Weave local unique de 64 bits. Cette fonction utilise une source de données aléatoire avec un chiffrement sécurisé pour garantir l'unicité de la valeur générée. Notez que le bit 57 de l'ID du nœud Weave généré est défini sur 1 pour indiquer que l'ID du nœud Weave généré est unique (et non globalement).

Détails
Paramètres
nodeId
Référence à l'ID du nœud Weave 64 bits.
Valeurs renvoyées
WEAVE_NO_ERROR
Si l'ID du nœud Weave a bien été généré.

GetFibonacciForIndex

uint32_t GetFibonacciForIndex(
  uint32_t index
)

Cette fonction génère le nombre de Fibonacci 32 bits pour un index 32 bits donné.

Détails
Renvoie
Numéro Fibonacci non signé 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
)

Cette fonction génère un nombre aléatoire non signé de 16 bits.

Détails
Renvoie
Entier aléatoire non signé de 16 bits.

GetRandU32

uint32_t GetRandU32(
  void
)

Cette fonction génère un nombre aléatoire non signé de 32 bits.

Détails
Renvoie
Entier aléatoire non signé de 32 bits.

GetRandU64

uint64_t GetRandU64(
  void
)

Cette fonction génère un nombre aléatoire non signé de 64 bits.

Détails
Renvoie
Entier aléatoire non signé de 64 bits.

GetRandU8

uint8_t GetRandU8(
  void
)

Cette fonction génère un nombre aléatoire non signé de 8 bits.

Détails
Renvoie
Entier aléatoire non signé de 8 bits.

GetVendorName

const char * GetVendorName(
  uint16_t vendorId
)

GroupKeyAuthMode

WeaveAuthMode GroupKeyAuthMode(
  uint32_t keyId
)

Renvoie un mode d'authentification par clé de groupe correspondant à un ID de clé donné.

IPv6InterfaceIdToWeaveNodeId

uint64_t IPv6InterfaceIdToWeaveNodeId(
  uint64_t interfaceId
)

Convertir un identifiant d'interface d'adresse IPv6 en identifiant de nœud Weave.

Pour des raisons de commodité pour les tests, les identifiants de nœud inférieurs ou égaux à #kMaxAlwaysLocalWeaveNodeId (65535) sont considérés comme "locals" et leur bit universel/local est défini sur zéro. Cela simplifie la représentation sous forme de chaîne des adresses IPv6 correspondantes. Par exemple, une ULA pour l'identifiant de nœud 10 serait FD00:0:1:1::A.

Détails
Paramètres
[in] interfaceId
Identifiant d'interface 64 bits.
Renvoie
l'identifiant mappé du nœud Weave 64 bits.

IsCASEAuthMode

bool IsCASEAuthMode(
  WeaveAuthMode authMode
)

"True" si le mode d'authentification est basé sur le protocole Weave CASE.

IsCertAuthMode

bool IsCertAuthMode(
  WeaveAuthMode authMode
)

"True" si le mode d'authentification est basé sur la possession d'une clé privée associée à un certificat.

IsGroupKeyAuthMode

bool IsGroupKeyAuthMode(
  WeaveAuthMode authMode
)

"True" si le mode d'authentification est basé sur la possession d'une clé de groupe partagée.

IsPASEAuthMode

bool IsPASEAuthMode(
  WeaveAuthMode authMode
)

"True" si le mode d'authentification est basé sur le protocole Weave PASE.

IsPasswordAuthMode

bool IsPasswordAuthMode(
  WeaveAuthMode authMode
)

"True" si le mode d'authentification est basé sur la possession d'un mot de passe partagé.

IsTAKEAuthMode

bool IsTAKEAuthMode(
  WeaveAuthMode authMode
)

"True" si le mode d'authentification est basé sur le protocole 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
)

Renvoie un mode d'authentification PASE correspondant pour une source de mot de passe donnée.

PasswordSourceFromAuthMode

uint8_t PasswordSourceFromAuthMode(
  WeaveAuthMode authMode
)

Renvoie la source du mot de passe pour le mode d'authentification donné.

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
)

Convertir un identifiant de tissu Weave en identifiant global ULA IPv6

L'identifiant global ULA d'une adresse de structure correspond aux 40 bits inférieurs de l'ID de structure 64 bits de la structure.

Détails
Paramètres
[in] fabricId
Identifiant du tissu Weave.
Renvoie
l'identifiant global IPv6 mappé.

WeaveMessageSourceToStr

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

OBSOLÈTE Utilisez WeaveMessageLayer::GetPeerDescription() à la place.

WeaveNodeAddrToStr

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

OBSOLÈTE Utilisez WeaveMessageLayer::GetPeerDescription() à la place.

WeaveNodeIdToIPv6InterfaceId

uint64_t WeaveNodeIdToIPv6InterfaceId(
  uint64_t nodeId
)

Convertir un identifiant de nœud Weave en identifiant d'interface d'adresse IPv6

Les identifiants de nœuds Weave sont des EUI-64 universels/locals, qui, conformément à la RFC-3513, sont convertis en identifiants d'interface en inversant le bit universel/local (le bit 57 comptabilisant le LSB comme étant 0).

Pour des raisons de commodité pour les tests, les identifiants de nœud inférieurs ou égaux à #kMaxAlwaysLocalWeaveNodeId (65535) sont considérés comme "locals" et leur bit universel/local est défini sur zéro. Cela simplifie la représentation sous forme de chaîne des adresses IPv6 correspondantes. Par exemple, une ULA pour l'identifiant de nœud 10 serait FD00:0:1:1::A.

Détails
Paramètres
[in] nodeId
Identifiant du nœud Weave 64 bits.
Renvoie
l'identifiant d'interface IPv6.

max

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

min

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