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

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

Eine Hilfsklasse, die den Integritätstyp und den tatsächlichen Hash des Software-Update-Images enthält.

Zusammenfassung

Das Objekt enthält das Feld IntegrityTypes, das den Hash-Typ sowie den tatsächlichen Hash des Software-Update-Images angibt. Die Länge des Hashs hängt vom Hashtyp ab. Das Objekt ist so bemessen, dass es den größten der unterstützten Hashes aufnehmen kann.

Konstruktoren und Zerstörer

IntegritySpec()
Der Standardkonstruktor für IntegritySpec.

Öffentliche Attribute

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

Öffentliche Funktionen

init(uint8_t, uint8_t *)
Initialisieren Sie das Objekt IntegritySpec explizit mit den angegebenen Werten.
operator==(const IntegritySpec &) const
bool
Gleichheitsoperator
pack(MessageIterator &)
Serialisieren Sie die IntegritySpec in den bereitgestellten MessageIterator.

Öffentliche statische Funktionen

parse(MessageIterator &, IntegritySpec &)
Deserialisieren Sie das Objekt aus dem angegebenen MessageIterator in die bereitgestellte IntegritySpec.

Öffentliche Attribute

eingeben

uint8_t type

Typ des Hashs, der aus IntegrityTypes abgerufen werden soll.

value

uint8_t value[64]

Eine Sequenz von Byte mit variabler Länge, die den Integritätswert für das durch das URI-Feld identifizierte Software-Image enthält.

Der Integritätswert wird berechnet, indem die vom Integritätstyp angegebene Integritätsfunktion auf den Inhalt des Software-Update-Images angewendet wird, auf das über den oben angegebenen URI zugegriffen wird. Mit der Integritätsspezifikation kann der Client bestätigen, dass das heruntergeladene Bild mit dem in dieser Antwort angegebenen Bild ü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 explizit mit den angegebenen Werten.

Details
Parameter
[in] aType
Ein Integritätstypwert aus IntegrityTypes
[in] aValue
Hash-Wert geeigneter Länge, dargestellt als gepackter Byte-String
Rückgabe
WEAVE_NO_ERROR Bei Erfolg
Rückgabe
WEAVE_ERROR_INVALID_INTEGRITY_TYPE Wenn der angegebene Integritätstyp keiner der unter IntegrityTypes angegebenen Werte ist

Operator==

bool operator==(
  const IntegritySpec &
) const 

Gleichheitsoperator

Details
Parameter
another
Eine IntegritySpec zur Prüfung auf diese IntegritySpec
Rückgabe
„true“, wenn alle Felder in beiden Objekten gleich sind, andernfalls „false“

Packung

WEAVE_ERROR pack(
  MessageIterator &
)

Serialisieren Sie die IntegritySpec in den bereitgestellten MessageIterator.

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 &
)

Deserialisieren Sie das Objekt aus dem angegebenen MessageIterator in die bereitgestellte IntegritySpec.

Details
Parameter
[in] i
Ein Iterator für die zu analysierende Nachricht.
[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 Hash enthielt
Rückgabe
WEAVE_ERROR_INVALID_INTEGRITY_TYPE Wenn der angegebene Integritätstyp keiner der unter IntegrityTypes angegebenen Werte ist