nl:: Weave
Résumé
Typedefs |
|
---|---|
FabricSecretRotationScheme
|
typedefuint8_t
|
FabricSecretScope
|
nl::Weave::FabricSecretScopeuint8_t
Identifie la catégorie des appareils qui peuvent posséder et utiliser le code secret du tissu. |
WeaveAuthMode
|
typedefuint16_t
Identifie la manière dont un nœud pair est authentifié. |
WeaveEncryptionKey
|
typedef |
WeaveEncryptionType
|
typedefenum nl::Weave::WeaveEncryptionType
Types de chiffrement du message Weave. |
WeaveExchangeFlags
|
typedefenum nl::Weave::WeaveExchangeFlags
Bits d'indicateur d'en-tête Weave Exchange. |
WeaveExchangeVersion
|
typedefenum nl::Weave::WeaveExchangeVersion
Version d'en-tête Weave Exchange. |
WeaveMessageFlags
|
typedefenum nl::Weave::WeaveMessageFlags
Indicateurs associés à un message Weave entrant ou sortant. |
WeaveMessageHeader
|
typedefstruct WeaveMessageInfo
|
WeaveMessageVersion
|
typedefenum nl::Weave::WeaveMessageVersion
Version du format de message Weave. |
WeaveSubnetId
|
typedefenum 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:: |
Capture la cible prévue d'une communication Weave et les informations de configuration associées. |
nl:: |
Interface permettant de gérer un compteur en tant que valeur entière. |
nl:: |
Cette classe représente une conversation en cours (ExchangeContext) entre deux nœuds ou plus. |
nl:: |
Cette classe déléguée abstraite communique les changements d'état de la structure. |
nl:: |
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:: |
|
nl:: |
Classe permettant de gérer un compteur augmentant de manière monotone en tant que valeur entière. |
nl:: |
Classe permettant de gérer un compteur en tant que valeur entière destinée à persister lors des redémarrages. |
nl:: |
Définition de la classe Weave Connection. |
nl:: |
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:: |
|
nl:: |
Cela spécifie le profil et le type de message Weave d'un message Weave particulier dans un ExchangeContext. |
nl:: |
Cette classe permet de gérer ExchangeContexts avec d'autres nœuds Weave. |
nl:: |
Déclaration de WeaveFabricState. |
nl:: |
Définition de l'identifiant de clé Weave. |
nl:: |
Définition de la classe WeaveMessageLayer, qui gère la communication avec les autres nœuds Weave. |
nl:: |
Contient des informations sur la clé de chiffrement des messages Weave. |
nl:: |
Cache de clé pour les clés de chiffrement de messages Weave. |
nl:: |
|
nl:: |
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:: |
Classe de base commune pour implémenter des objets délégués de serveur Weave. |
nl:: |
Contient des informations sur une clé de session Weave. |
nl:: |
Transmet l'état de communication nécessaire pour envoyer/recevoir des messages avec un autre nœud. |
Structs |
|
---|---|
nl:: |
|
nl:: |
Configuration WRMP. |
nl:: |
Informations concernant un message Weave en cours d'envoi ou de réception. |
Union |
|
---|---|
nl:: |
Espaces de noms |
|
---|---|
nl:: |
Cet espace de noms inclut toutes les interfaces de Weave permettant de travailler avec ASN.1 (Abstract Syntax Notation One). |
nl:: |
Cet espace de noms inclut toutes les interfaces de Weave pour la compatibilité cryptographique partagée. |
nl:: |
|
nl:: |
|
nl:: |
Cet espace de noms fournit des fonctions pour: |
nl:: |
Cet espace de noms inclut toutes les interfaces de Weave pour la prise en charge de la journalisation partagée. |
nl:: |
|
nl:: |
Cet espace de noms inclut toutes les interfaces des profils Weave pour les profils Weave, à la fois Common et Nest Labs spécifiques. |
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
|
nl:: |
Définitions relatives à l'utilisation de données encodées au format TLV Weave. |
nl:: |
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_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 |
|
||||||
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 |
|
||
Valeurs renvoyées |
|
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 |
|
||
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 |
|
||
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 |
|
||
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 )