nl::Weave::Profiles::SoftwareUpdate::IntegritySpec

#include <src/lib/profiles/software-update/SoftwareUpdateProfile.h>

Eine Hilfsklasse mit dem Integritätstyp und dem tatsächlichen Hash des Images für die Softwareaktualisierung.

Zusammenfassung

Das Objekt enthält das Feld IntegrityTypes, das den Hash-Typ und den tatsächlichen Hash des Softwareupdates-Bilds angibt. Die Länge des Hashwerts ist abhängig vom Hash-Typ. Das Objekt ist so groß, dass es den größten der unterstützten Hashes enthält.

Konstruktoren und Zerstörer

IntegritySpec()
Der Standardkonstruktor für IntegritySpec.

Öffentliche Attribute

type
uint8_t
Typ des Hashs, Wert, der aus IntegrityTypes abgerufen werden soll.
value[64]
uint8_t
Eine Bytesequenz variabler Länge, die den Integritätswert für das Software-Image enthält, das durch das URI-Feld identifiziert wird.

Öffentliche Funktionen

init(uint8_t, uint8_t *)
Initialisieren Sie das Objekt IntegritySpec mit den bereitgestellten Werten explizit.
operator==(const IntegritySpec &) const
bool
Ein Gleichheitsoperator.
pack(MessageIterator &)
IntegritySpec in den bereitgestellten MessageIterator-Wert serialisieren.

Öffentliche statische Funktionen

parse(MessageIterator &, IntegritySpec &)
Deserialisiert das Objekt aus dem bereitgestellten MessageIterator in die angegebene IntegritySpec.

Öffentliche Attribute

Typ

uint8_t type

Typ des Hashs, Wert, der aus IntegrityTypes abgerufen werden soll.

Wert

uint8_t value[64]

Eine Bytesequenz variabler Länge, die den Integritätswert für das Software-Image enthält, das durch das URI-Feld identifiziert wird.

Der Integritätswert wird berechnet, indem die durch den Integritätstyp angegebene Integritätsfunktion auf den Inhalt des Softwareupdate-Images angewendet wird, auf das über den oben angegebenen URI zugegriffen wird. Mit der Integritätsspezifikation kann der Client bestätigen, dass das heruntergeladene Image mit dem in dieser Antwort angegebenen übereinstimmt.

Öffentliche Funktionen

IntegritySpec

 IntegritySpec()

Der Standardkonstruktor für IntegritySpec.

Das Objekt muss entweder über die Methode init() oder durch Deserialisierung aus einer Nachricht initialisiert werden.

init

WEAVE_ERROR init(
  uint8_t,
  uint8_t *
)

Initialisieren Sie das Objekt IntegritySpec mit den bereitgestellten Werten explizit.

Details
Parameter
[in] aType
Einen Integritätstypwert, der aus IntegrityTypes stammt
[in] aValue
Ein Hash-Wert mit der entsprechenden Länge, dargestellt als gepackter String von Byte
Rückgabe
WEAVE_NO_ERROR Bei Erfolg
Rückgabe
WEAVE_ERROR_INVALID_INTEGRITY_TYPE Wenn der angegebene Integritätstyp nicht einer der in IntegrityTypes angegebenen Werte ist

Operator==

bool operator==(
  const IntegritySpec &
) const 

Ein Gleichheitsoperator.

Details
Parameter
another
Eine IntegritySpec zum Prüfen dieser IntegritySpec
Rückgabe
"true", wenn alle Felder in beiden Objekten gleich sind, andernfalls "false"

Packung

WEAVE_ERROR pack(
  MessageIterator &
)

IntegritySpec in den bereitgestellten MessageIterator-Wert serialisieren.

Details
Parameter
[in] i
Ein Iteration über die gepackte Nachricht
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
WEAVE_ERROR_BUFFER_TOO_SMALL
Wenn IntegritySpec zu groß für die Nachricht ist.

Öffentliche statische Funktionen

parse

WEAVE_ERROR parse(
  MessageIterator &,
  IntegritySpec &
)

Deserialisiert das Objekt aus dem bereitgestellten MessageIterator in die angegebene IntegritySpec.

Details
Parameter
[in] i
Ein Iterator für die Nachricht, die geparst wird.
[in] aSpec
Ein Verweis auf ein Objekt, das das Ergebnis enthalten soll
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
Rückgabewerte
WEAVE_ERROR_BUFFER_TOO_SMALL
Wenn die Nachricht nicht genügend Byte für den Integritätstyp und den zugehörigen Hashwert enthält
Rückgabe
WEAVE_ERROR_INVALID_INTEGRITY_TYPE Wenn der angegebene Integritätstyp nicht einer der in IntegrityTypes angegebenen Werte ist