DEENESPTFRRUARHIKOZHNL

class ara::crypto::cryp::HashFunctionCtx

[SWS_CRYPT_21100] Upstream: RS_CRYPTO_02205

class HashFunctionCtx :           public CryptoContext {...};

Hash function interface.

Header-Datei#include "ara/crypto/cryp/hash_function_ctx.h"
Forwarding-Header#include "ara/crypto/crypto_fwd.h"
Scopenamespace ara::crypto::cryp
Basisklasse(n)CryptoContext

User GuideKI-GENERIERT

Berechnet kryptografische Hashwerte über kontinuierliche Datenströme oder einzelne Speicherblöcke.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: bf2cec48587e Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Berechnet kryptografische Hashwerte über kontinuierliche Datenströme oder einzelne Speicherblöcke.

Die Klasse ara::crypto::cryp::HashFunctionCtx stellt die Schnittstelle zur Berechnung kryptografischer Hashwerte über Speicherblöcke und Datenströme bereit ([SWS_CRYPT_50060]). Streaming-Operationen erfordern die Einhaltung des Verarbeitungszyklus aus Initialisierung mittels Start(), schrittweiser Datenübergabe über Update(), Finalisierung durch Finish() und anschließendem Auslesen via GetDigest() ([SWS_CRYPT_21116]). Sämtliche Methoden sind threadsicher spezifiziert, garantieren Rollback-Semantik und melden Sequenz- oder Pufferfehler deterministisch über Ergebnisobjekte.

Kontext

Die Klasse ara::crypto::cryp::HashFunctionCtx definiert im Modul crypto der AUTOSAR Adaptive Platform die Schnittstelle zur Berechnung kryptografischer Hashwerte und Prüfsummen. Als Spezialisierung von CryptoContext stellt sie Methoden für zustandslose Einzelaufrufe sowie für zustandsbehaftete Streaming-Verfahren bereit. Die Lebenszyklus- und Besitzverwaltung erfolgt typischerweise über den Smart-Pointer-Typalias Sptr ([SWS_CRYPT_21101]), der als std::shared_ptr<HashFunctionCtx> definiert ist.

Zu den wesentlichen Interaktionspartnern gehören:

  • Aufrufende Anwendung: Steuert den Lebenszyklus der Berechnung und übergibt Eingabedaten blockweise oder als Gesamtnachricht.
  • Speicherbereiche: Eingabedaten, Initialisierungsvektoren (IV) sowie Ausgabe- und Zustandspuffer werden über ReadOnlyMemRegion und ReadWriteMemRegion transportiert.
  • Schlüsselobjekte: Über CryptoObject::Sptr können kryptografische Schlüssel direkt als Datenquelle in die Hashberechnung einbezogen werden ([SWS_CRYPT_50057]).
  • Crypto Provider: Interpretation: Instanzen von HashFunctionCtx dürften typischerweise über einen zugehörigen Crypto Provider erzeugt werden; ein Austausch exportierter Kontextzustände setzt zwingend denselben Crypto Provider und dieselbe Algorithmen-ID voraus ([SWS_CRYPT_50065]). Frage Q-8365d4bee96bbf67 (offen)

Lebenszyklus

Eine Instanz von HashFunctionCtx durchläuft während der Streaming-Verarbeitung mehrere diskrete Zustände:

hash_states Bereit Bereit InVerarbeitung InVerarbeitung Bereit->InVerarbeitung Start() / Start(iv) Bereit->InVerarbeitung ImportContextState() InVerarbeitung->Bereit Cancel() / Start() InVerarbeitung->InVerarbeitung Update() / GetIntermediateDigest() Abgeschlossen Abgeschlossen InVerarbeitung->Abgeschlossen Finish() Unterbrochen Unterbrochen InVerarbeitung->Unterbrochen ExportContextState() Abgeschlossen->Bereit Start()

Zustandsdiagramm: Zustandsübergänge des Hash-Kontexts bei Initialisierung, Verarbeitung und Abschluss. Quellen: [SWS_CRYPT_50152], [SWS_CRYPT_50153], [SWS_CRYPT_21113], [SWS_CRYPT_50058], [SWS_CRYPT_21115], [SWS_CRYPT_50064], [SWS_CRYPT_50065]

Nach der Erzeugung befindet sich der Kontext im ungestarteten Zustand. Durch Aufruf von Start() ohne IV ([SWS_CRYPT_50152]) oder Start(iv) mit Initialisierungsvektor ([SWS_CRYPT_50153]) wechselt der Kontext in die aktive Verarbeitungsphase. Bereits laufende Berechnungen werden durch einen erneuten Start-Aufruf implizit verworfen.

Im Verarbeitungszustand werden Eingabedaten über wiederholte Aufrufe von Update() mit Rohteildaten ([SWS_CRYPT_21113]) oder Schlüsseln ([SWS_CRYPT_50057]) akkumuliert. Über GetIntermediateDigest() kann ein Zwischenergebnis berechnet werden, ohne den Kontext abzuschließen oder den Datenstrom zu unterbrechen ([SWS_CRYPT_50059]). Ein laufender Streaming-Vorgang kann jederzeit mittels Cancel() abgebrochen werden ([SWS_CRYPT_50058]), wodurch der Kontext in den ungestarteten Zustand zurückkehrt.

Der Aufruf von Finish() überführt den Kontext in den Zustand „abgeschlossen“ ([SWS_CRYPT_21115]). Erst in diesem Zustand kann der resultierende Hashwert über GetDigest() ([SWS_CRYPT_21116]) extrahiert oder über Compare() ([SWS_CRYPT_50154]) direkt gegen einen Erwartungswert geprüft werden.

Zur Unterbrechung und späteren Fortsetzung von Berechnungen kann die benötigte Puffergröße mittels GetContextStateSize() ([SWS_CRYPT_50063]) abgefragt und der interne Zustand über ExportContextState() ([SWS_CRYPT_50064]) gesichert werden. Die Wiederaufnahme erfolgt über ImportContextState() ([SWS_CRYPT_50065]). Sämtliche Schnittstellenmethoden sind ausnahmesicher (exception safe) und threadsicher (thread-safe) deklariert.

Nutzungspfad

Die Klasse unterstützt zwei Verarbeitungsmodi: die direkte Einzelschritt-Berechnung sowie die segmentierte Streaming-Verarbeitung.

Die Einzelschritt-Berechnung erfolgt über CalculateHashDigest() ([SWS_CRYPT_50060]). Hierbei werden Eingabedaten, ein optionaler IV sowie der Zielspeicherbereich übergeben und der Hashwert in einer atomaren Operation berechnet.

Für größere Datenmengen oder kontinuierliche Datenströme kommt der Streaming-Pfad zum Einsatz:

Streaming-Verarbeitung eines Hash-WertesAnwendungHashFunctionCtxStart()Result<void>loopFür jeden DatenblockUpdate(data)Result<void>Finish()Result<void>GetDigest(digest)Result<std::size_t>

Sequenzdiagramm: Typischer Ablauf der Streaming-Berechnung über Start, Update, Finish und GetDigest. Quellen: [SWS_CRYPT_50152], [SWS_CRYPT_21113], [SWS_CRYPT_21115], [SWS_CRYPT_21116]

  1. Kapazitätsprüfung: Abfrage der Ausgabegröße über GetDigestSize() ([SWS_CRYPT_50061]) und der maximalen Blockgröße über GetMaximumChunkSize() ([SWS_CRYPT_50062]).
  2. Initialisierung: Vorbereitung des Kontexts durch Aufruf von Start() ([SWS_CRYPT_50152]) oder Start(iv) ([SWS_CRYPT_50153]).
  3. Datenübergabe: Sukzessive Übergabe von Datenblöcken über Update(data) ([SWS_CRYPT_21113]) oder Schlüsseln über Update(key) ([SWS_CRYPT_50057]).
  4. Finalisierung: Beenden der Hashwertakkumulation durch Finish() ([SWS_CRYPT_21115]).
  5. Ergebnisauswertung: Auslesen des berechneten Hashwerts mittels GetDigest() ([SWS_CRYPT_21116]) oder In-Place-Vergleich mit einem Referenzwert über Compare() ([SWS_CRYPT_50154]).

Fehlerszenarien

Methoden von HashFunctionCtx signalisieren Fehler über ara::core::Result und garantieren bei Fehlern Rollback-Semantik. Typische Fehlerursachen sind:

  • Reihenfolgeverletzungen: Wird Update() ([SWS_CRYPT_21113], [SWS_CRYPT_50057]) oder Cancel() ([SWS_CRYPT_50058]) ohne vorherigen erfolgreichen Start()-Aufruf aufgerufen, wird CryptoErrc::kProcessingNotStarted zurückgegeben. Wird Finish() ([SWS_CRYPT_21115]) oder GetIntermediateDigest() ([SWS_CRYPT_50059]) ohne vorherige Initialisierung aufgerufen, meldet der Kontext CryptoErrc::kInvalidUsageOrder. Der Abruf von Ergebnissen über GetDigest() ([SWS_CRYPT_21116]) oder Compare() ([SWS_CRYPT_50154]) vor Ausführung von Finish() schlägt mit CryptoErrc::kProcessingNotFinished fehl.
  • Puffer- und Größenprobleme: Reicht der Ausgabepuffer nicht aus, liefern CalculateHashDigest() ([SWS_CRYPT_50060]), GetDigest() ([SWS_CRYPT_21116]), GetIntermediateDigest() ([SWS_CRYPT_50059]) sowie ExportContextState() ([SWS_CRYPT_50064]) den Fehler CryptoErrc::kInsufficientCapacity. Nicht unterstützte Eingabe- oder IV-Längen führen bei CalculateHashDigest(), Start(iv) ([SWS_CRYPT_50153]) und Update() zu CryptoErrc::kInvalidInputSize.
  • Inkompatibilität und fehlende Funktionsunterstützung: CryptoErrc::kUnsupported signalisiert, dass Einzelaufrufe nicht unterstützt werden ([SWS_CRYPT_50060]), das Vorhandensein eines IV nicht zur Hashfunktion passt ([SWS_CRYPT_50152], [SWS_CRYPT_50153]), Zwischenergebnisse nicht bereitgestellt werden ([SWS_CRYPT_50059]), der Kontext-Export/Import nicht unterstützt wird ([SWS_CRYPT_50063], [SWS_CRYPT_50064], [SWS_CRYPT_50065]) oder das Hashen von Schlüsseln nicht zulässig ist ([SWS_CRYPT_50057]).
  • Objektvalidierung und Rechte: Bei Schlüsselübergaben via Update(key) führt ein inkompatibler Schlüssel zu CryptoErrc::kIncompatibleObject und eine fehlende Freigabe für kAllowHashCalculation zu CryptoErrc::kUsageViolation ([SWS_CRYPT_50057]). Ungültige Pufferinhalte bei ImportContextState() erzeugen CryptoErrc::kInvalidArgument ([SWS_CRYPT_50065]).
  • Ressourcenengpässe: Ist eine erforderliche Krypto-Ressource belegt, quittiert Start() den Versuch mit CryptoErrc::kBusyResource ([SWS_CRYPT_50152], [SWS_CRYPT_50153]).

Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive Platform R25-11.

Mitgliederkarte

Klassendiagramm

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__crypto__cryp__HashFunctionCtx412 HashFunctionCtx + CalculateHashDigest() + Cancel() + Compare() + ExportContextState() + Finish() + GetContextStateSize() + GetDigest() + GetDigestSize() + GetIntermediateDigest() + GetMaximumChunkSize() + ImportContextState() + Start() + Update() nara__crypto__cryp__CryptoContext85 CryptoContext nara__crypto__cryp__HashFunctionCtx412->nara__crypto__cryp__CryptoContext85

Detailansicht

Wähle in der Gliederung einen Eintrag aus.

Methoden

Calculate the hash digest and write the the calculated digest into the provided output buffer.

virtual ara::core::Result< std::size_t > CalculateHashDigest (ReadOnly MemRegion data, ReadWriteMemRegion digest, ara::core::Optional< Read OnlyMemRegion > iv) const noexcept=0;
Cancel function

Cancel the ongoing streaming operation that has been initiated by Start() and has not yet been finished.

virtual ara::core::Result< void > Cancel () noexcept=0;
Compare function

Compare the size and content of the calculated digest against an expected value.

virtual ara::core::Result< bool > Compare (ReadOnlyMemRegion expected) const noexcept=0;

Write the current state of this hash context into the provided output buffer contextState. This function can be used to suspend an ongoing hash operation and resume it at a later point in time.

virtual ara::core::Result< void > ExportContextState (ReadWriteMem Region contextState) const noexcept=0;
Finish function

Finish the digest calculation.

virtual ara::core::Result< void > Finish () noexcept=0;

Get the buffer size required to store the state of this context using ExportContextState()

virtual ara::core::Result< std::size_t > GetContextStateSize () const noexcept=0;
GetDigest function

Write the calculated hash digest into the provided output buffer.

virtual ara::core::Result< std::size_t > GetDigest (ReadWriteMemRegion digest) const noexcept=0;
GetDigestSize function

Get the output digest size.

virtual ara::core::Result< std::size_t > GetDigestSize () const noexcept=0;

Calculate the hash digest with the data provided to the hash context and write the calculated hash digest into the provided output buffer. The hash digest is equal to the hash digest returned when calling Finish() and GetDigest(), however, after calling GetIntermediateDigest(), this context can still be updated with additional data.

virtual ara::core::Result< std::size_t > GetIntermediateDigest (Read WriteMemRegion digest) const noexcept=0;

Get the maximum input buffer size supported for processing in single calls to Update(), Finish(), or CalculateHashDigest() by this context.

virtual ara::core::Result< std::size_t > GetMaximumChunkSize () const noexcept=0;

Set the current state of this hash context to the state provided by contextState. This function can be used to resume a previously suspended hash operation. The contextState must have been exported from a HashFunctionCtx with the same AlgorithmId provided by the same Crypto Provider as the current context using the function ExportContextState(). The current state of this context (e.g., any ongoing hash calculation) will be replaced by the state provided to this function.

virtual ara::core::Result< void > ImportContextState (ReadOnlyMem Region contextState) noexcept=0;
Start function 2

Initialize the context for processing of a hash digest without an IV. Will cancel any ongoing hash calculation.

Überladungen Start 2
virtual ara::core::Result< void > Start () noexcept=0; SWS_CRYPT_50152
virtual ara::core::Result< void > Start (ReadOnlyMemRegion iv) noexcept=0; SWS_CRYPT_50153
Update function 2

Update the digest calculation context by a new part of the message.

Überladungen Update 2
virtual ara::core::Result< void > Update (ReadOnlyMemRegion data) noexcept=0; SWS_CRYPT_21113
virtual ara::core::Result< void > Update (CryptoObject::Sptr key) noexcept=0; SWS_CRYPT_50057

Typaliase

Sptr type alias

Smart pointer of the interface.

Dokumentation der Methoden

function CalculateHashDigest [SWS_CRYPT_50060] Upstream: RS_CRYPTO_02205

virtual ara::core::Result< std::size_t > CalculateHashDigest (ReadOnly MemRegion data, ReadWriteMemRegion digest, ara::core::Optional< Read OnlyMemRegion > iv) const noexcept=0;

Calculate the hash digest and write the the calculated digest into the provided output buffer.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: adb7aefb7feb Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Methode CalculateHashDigest führt eine synchrone One-Shot-Berechnung eines kryptografischen Hash-Werts durch und schreibt das Ergebnis in den bereitgestellten Ausgabepuffer [SWS_CRYPT_50060]. Als Parameter werden die zu verarbeitende Eingabenachricht data, der Zielpuffer digest sowie optional ein Initialisierungsvektor iv übergeben. Bei erfolgreicher Ausführung liefert die Funktion über das Ergebnisobjekt ara::core::Result<std::size_t> die tatsächliche Anzahl der geschriebenen Digest-Bytes zurück [SWS_CRYPT_50060].

Fehlerbehandlung

Schlägt die Berechnung fehl, garantiert die Schnittstelle Rollback-Semantik [SWS_CRYPT_50060]. Folgende Fehlercodes können im Ergebnis enthalten sein:

  • ara::crypto::CryptoErrc::kInvalidInputSize: Die Größe der übergebenen Daten oder des Initialisierungsvektors wird nicht unterstützt [SWS_CRYPT_50060].
  • ara::crypto::CryptoErrc::kUnsupported: Die Single-Call-Berechnung wird vom Kontext nicht unterstützt, oder die Übergabe des Initialisierungsvektors passt nicht zur Konfiguration des Kontexts (IV erforderlich, aber fehlt, bzw. IV übergeben, obwohl nicht unterstützt) [SWS_CRYPT_50060].
  • ara::crypto::CryptoErrc::kInsufficientCapacity: Die Kapazität des Ausgabepuffers digest reicht für den berechneten Digest nicht aus [SWS_CRYPT_50060].

Nebenläufigkeit und Zusammenspiel

Die Funktion ist als ausnahmesicher (exception safe) und threadsicher (thread-safe) deklariert [SWS_CRYPT_50060]. Um Fehler bezüglich unzulässiger Eingabelängen vorab zu vermeiden, kann die für einen Einzelaufruf maximal zulässige Puffergröße des Kontexts über GetMaximumChunkSize ermittelt werden [SWS_CRYPT_50062].

Dieser Nutzungshinweis wurde automatisiert auf Basis der AUTOSAR-Spezifikation R25-11 generiert.

Implementer's Guide folgt (Komplexität I1)

Header-Datei#include "ara/crypto/cryp/hash_function_ctx.h"
Scopeclass ara::crypto::cryp::HashFunctionCtx
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
datathe input message that should be processed
ivan optional initialization vector

Parameter (out)

ParameterBeschreibung
digestan output data buffer that the digest will be written into.

Rückgabewert

TypBeschreibung
ara::core::Result<std::size_t >A result containing the size in bytes of the digest or an error.

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kInvalidInputSizerollback_semantics if the size of provided data or IV is not supported
ara::crypto::CryptoErrc::kUnsupportedrollback_semantics if single-call operation is not supported, or if the context requires setting an IV but no IV is provided, or if the context does not support setting an IV but an IV is provided
ara::crypto::CryptoErrc::kInsufficientCapacityrollback_semantics if the output buffer is too small

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_50060
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50060@rel:R25-11#29fd4c6d
Content hash
29fd4c6d
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50060
Status: valid/unmigrated Version: rel:R25-11#29fd4c6d Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CRYPT_50060@rel:R25-11#29fd4c6d
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function Cancel [SWS_CRYPT_50058] Upstream: RS_CRYPTO_02302

virtual ara::core::Result< void > Cancel () noexcept=0;

Cancel the ongoing streaming operation that has been initiated by Start() and has not yet been finished.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 5c8d759c011a Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die Methode Cancel() dient dem gezielten Abbruch einer laufenden Streaming-Operation, die zuvor über die Methode Start() begonnen und noch nicht regulär fertiggestellt wurde [SWS_CRYPT_50058]. Der Aufruf erfolgt synchron und parameterlos auf einer Instanz von ara::crypto::cryp::HashFunctionCtx aus der Header-Datei ara/crypto/cryp/hash_function_ctx.h [SWS_CRYPT_50058]. Bei erfolgreicher Durchführung liefert die Operation ein leeres ara::core::Result<void> zurück [SWS_CRYPT_50058].

Fehlerbehandlung

Tritt während der Ausführung ein Problem auf, enthält das zurückgegebene ara::core::Result einen entsprechenden Fehlerwert [SWS_CRYPT_50058]. Wurde die Verarbeitung vor dem Aufruf von Cancel() nicht durch Start() initiiert, schlägt der Abbruch fehl und gibt den spezifischen Fehlercode ara::crypto::CryptoErrc::kProcessingNotStarted mit Rollback-Semantik zurück [SWS_CRYPT_50058].

Nebenläufigkeit und Einschränkungen

Die Schnittstelle ist als thread-safe und exception safe definiert und mit noexcept deklariert [SWS_CRYPT_50058]. Als wesentliche funktionale Vorbedingung gilt, dass sich die Datenverarbeitung in einem aktiven Zustand befinden muss, der durch einen vorherigen Start()-Aufruf erzeugt wurde [SWS_CRYPT_50058].

Zusammenspiel

Das durch Cancel() umgesetzte Muster ist über diverse Streaming-Kontexte des Crypto-Stacks hinweg standardisiert. Eine exakt übereinstimmende Semantik und Fehlersignalisierung weisen auch die Kontexte VerifierPublicCtx [SWS_CRYPT_50023], MessageAuthnCodeCtx [SWS_CRYPT_50027], SignerPrivateCtx [SWS_CRYPT_50041], SymmetricCipherCtx [SWS_CRYPT_50046], DecryptorPrivateCtx [SWS_CRYPT_50069], AuthCipherCtx [SWS_CRYPT_50077] und EncryptorPublicCtx [SWS_CRYPT_50089] auf.

Dieser Nutzungshinweis basiert auf der Spezifikation von AUTOSAR Adaptive R25-11.

Implementer's Guide folgt (Komplexität I1)

Header-Datei#include "ara/crypto/cryp/hash_function_ctx.h"
Scopeclass ara::crypto::cryp::HashFunctionCtx
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Rückgabewert

TypBeschreibung
ara::core::Result< void >an empty result if the ongoing streaming operation was cancelled successfully, or a result containing an error

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kProcessingNotStartedrollback_semantics if data processing was not started by a call of the Start() method

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_50058
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50058@rel:R25-11#69ced25c
Content hash
69ced25c
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50058
Status: valid/unmigrated Version: rel:R25-11#69ced25c Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CRYPT_50058@rel:R25-11#69ced25c
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function Compare [SWS_CRYPT_50154] Upstream: RS_CRYPTO_02309

virtual ara::core::Result< bool > Compare (ReadOnlyMemRegion expected) const noexcept=0;

Compare the size and content of the calculated digest against an expected value.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 1c3bf0837502 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Methode Compare der Klasse ara::crypto::cryp::HashFunctionCtx ([SWS_CRYPT_50154]) vergleicht Größe und Inhalt eines zuvor berechneten Hash-Digests synchron mit einem erwarteten Referenzwert. Der Sollwert wird über den Parameter expected vom Typ ReadOnlyMemRegion übergeben. Im Erfolgsfall liefert die Funktion ein ara::core::Result<bool> zurück, das genau dann true enthält, wenn die erwartete Bytesequenz mit dem berechneten Digest identisch ist.

Voraussetzung für den Aufruf ist, dass die Digest-Berechnung zuvor mit der Methode Finish() abgeschlossen wurde. Ist dies nicht der Fall, schlägt der Aufruf fehl und liefert den Fehler ara::crypto::CryptoErrc::kProcessingNotFinished mit Rollback-Semantik ([SWS_CRYPT_50154]). Interpretation: Eine abweichende Länge oder ein ungleicher Inhalt von expected führt vermutlich nicht zu einem Fehlercode, sondern zu einem regulären false im Ergebnisobjekt. Frage Q-fdd0ecaec22f6985 (offen)

Hinsichtlich der Nebenläufigkeit ist die Methode als thread-safe und exception safe spezifiziert ([SWS_CRYPT_50154]). Sie wirft aufgrund der Deklaration als noexcept keine C++-Ausnahmen.

In verwandten Krypto-Kontexten kommt dasselbe Prüfungsmuster zum Einsatz: Für Message Authentication Codes vergleicht ara::crypto::cryp::MessageAuthnCodeCtx::Compare ([SWS_CRYPT_50133]) Größe und Inhalt des berechneten MAC-Werts, während CompareSubspan ([SWS_CRYPT_50028]) die höchstwertigen Bits prüft. Beide Methoden verlangen gleichermaßen eine zuvor beendete Berechnung.

Dieser Text wurde von einer KI auf Basis der Spezifikation AUTOSAR R25-11 generiert.

Header-Datei#include "ara/crypto/cryp/hash_function_ctx.h"
Scopeclass ara::crypto::cryp::HashFunctionCtx
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
expectedthe memory region containing an expected digest value

Rückgabewert

TypBeschreibung
ara::core::Result< bool >true if the expected byte sequence is identical to the calculated digest

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kProcessingNotFinishedrollback_semantics if the digest calculation was not finished by a call of the Finish() method

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_50154
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50154@rel:R25-11#d6c1faba
Content hash
d6c1faba
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50154
Status: valid/unmigrated Version: rel:R25-11#d6c1faba Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CRYPT_50154@rel:R25-11#d6c1faba
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function ExportContextState [SWS_CRYPT_50064] Upstream: RS_CRYPTO_02309

virtual ara::core::Result< void > ExportContextState (ReadWriteMem Region contextState) const noexcept=0;

Write the current state of this hash context into the provided output buffer contextState. This function can be used to suspend an ongoing hash operation and resume it at a later point in time.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 78b3b1c67b6a Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Methode [SWS_CRYPT_50064] der Klasse ara::crypto::cryp::HashFunctionCtx schreibt den aktuellen Zustand eines Hash-Kontexts synchron in den übergebenen Ausgabepuffer contextState vom Typ ReadWriteMem Region. Dies ermöglicht es Anwendungen, eine laufende kryptografische Hash-Operation zu unterbrechen und zu einem späteren Zeitpunkt wieder aufzunehmen. Bei erfolgreicher Durchführung liefert der Aufruf ein leeres ara::core::Result<void> zurück.

Zusammenspiel und Pufferdimensionierung

Um Speicherfehler zu verhindern, sollte die zwingend benötigte Puffergröße in Bytes vorab über die Funktion [SWS_CRYPT_50063] abgefragt werden. Der exportierte Zustand kann später mittels [SWS_CRYPT_50065] wieder in einen Hash-Kontext eingespielt werden. Voraussetzung hierfür ist, dass der Zielkontext dieselbe AlgorithmId aufweist und von demselben Crypto Provider bereitgestellt wird wie der Ursprungskontext. Beim Import wird ein eventuell bestehender Rechenzustand vollständig überschrieben.

Fehlerbehandlung

Schlägt die Operation fehl, wird ein Fehler im ara::core::Result zurückgegeben. Folgende Fehlercodes aus ara::crypto::CryptoErrc sind spezifiziert:

  • ara::crypto::CryptoErrc::kUnsupported: Der konkrete Kontext unterstützt das Exportieren oder Importieren von Zuständen nicht.
  • ara::crypto::CryptoErrc::kInsufficientCapacity: Die Kapazität des übergebenen Puffers contextState reicht nicht aus, um den Zustand aufzunehmen.

Für beide Fehlerfälle ist eine Rollback-Semantik definiert, sodass der Zustand des Objekts unverändert bleibt.

Nebenläufigkeit und Ausführungssicherheit

Die Schnittstelle ist als const und noexcept deklariert. Spezifikationsgemäß ist der Aufruf sowohl thread-safe als auch exception-safe.

Dieser Nutzungshinweis wurde automatisch auf Basis der AUTOSAR-Spezifikation generiert.

Implementer's Guide folgt (Komplexität I1)

Header-Datei#include "ara/crypto/cryp/hash_function_ctx.h"
Scopeclass ara::crypto::cryp::HashFunctionCtx
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (out)

ParameterBeschreibung
contextStatean output data buffer that the state of the context will be written into.

Rückgabewert

TypBeschreibung
ara::core::Result< void >An empty result on success or an error

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kUnsupportedrollback_semantics if this context does not support im-/exporting the context state
ara::crypto::CryptoErrc::kInsufficientCapacityrollback_semantics if the output buffer is too small

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_50064
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50064@rel:R25-11#10cf645c
Content hash
10cf645c
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50064
Status: valid/unmigrated Version: rel:R25-11#10cf645c Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CRYPT_50064@rel:R25-11#10cf645c
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function Finish [SWS_CRYPT_21115] Upstream: RS_CRYPTO_02302, RS_CRYPTO_02205

virtual ara::core::Result< void > Finish () noexcept=0;

Finish the digest calculation.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 3afea8abb39d Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die synchrone Methode Finish() schließt die Berechnung eines Hash-Werts in ara::crypto::cryp::HashFunctionCtx ab [SWS_CRYPT_21115]. Der parameterlose Aufruf liefert ein ara::core::Result<void> zurück, das den erfolgreichen Abschluss signalisiert oder einen Fehler kapselt [SWS_CRYPT_21115]. Die Schnittstelle ist als noexcept deklariert sowie als ausnahmesicher (exception safe) und threadsicher (thread-safe) spezifiziert [SWS_CRYPT_21115].

Fehlerbehandlung und Nebenläufigkeit

Wurde die Hash-Berechnung vor dem Aufruf nicht erfolgreich gestartet, schlägt die Methode mit dem Fehler ara::crypto::CryptoErrc::kInvalidUsageOrder fehl [SWS_CRYPT_21115]. Für diesen Fehlerfall ist eine Rollback-Semantik definiert, sodass Aufrufer vor der Finalisierung zwingend auf einen ordnungsgemäß gestarteten Kontext achten müssen [SWS_CRYPT_21115].

Zusammenspiel

Nach erfolgreichem Aufruf von Finish() wird der berechnete Hash-Digest typischerweise mit GetDigest() in einen bereitgestellten Puffer übertragen [SWS_CRYPT_21116], [SWS_CRYPT_50059]. Zur Abgrenzung dient GetIntermediateDigest(): Diese Funktion liefert denselben Hash-Wert wie die Abfolge von Finish() und GetDigest(), erlaubt danach jedoch die Übergabe weiterer Daten [SWS_CRYPT_50059]. Interpretation: Nach dem Aufruf von Finish() dürfte die Berechnung endgültig abgeschlossen sein und der Kontext keine zusätzlichen Daten mehr annehmen. Frage Q-f4daf29364f45fd5 (offen) Zulässige Puffergrößen für Verarbeitungsschritte im Kontext lassen sich über GetMaximumChunkSize() abfragen [SWS_CRYPT_50062].

Dieser Nutzungshinweis wurde automatisch auf Basis der AUTOSAR-Spezifikation R25-11 generiert.

Header-Datei#include "ara/crypto/cryp/hash_function_ctx.h"
Scopeclass ara::crypto::cryp::HashFunctionCtx
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Rückgabewert

TypBeschreibung
ara::core::Result< void >An empty result or an error

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kInvalidUsageOrderrollback_semantics the hash calculation has not been started successfully.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_21115
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_21115@rel:R25-11#5c49c112
Content hash
5c49c112
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_21115
Status: valid/unmigrated Version: rel:R25-11#03ec3455 Versionshistorie & Revisions (1 transition, 7 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CRYPT_21115@rel:R25-11#03ec3455
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#5c49c1122026-09-30
  • R20-11rel:R20-11#23a4ded62026-10-14
  • R21-11rel:R21-11#33ec9dc92026-10-14
  • R22-11rel:R22-11#13315a192026-10-14
  • R23-11rel:R23-11#6b14e99d2026-10-14
  • R24-11rel:R24-11#de528ef72026-10-14
  • R25-11rel:R25-11#03ec34552026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function GetContextStateSize [SWS_CRYPT_50063] Upstream: RS_CRYPTO_02309

virtual ara::core::Result< std::size_t > GetContextStateSize () const noexcept=0;

Get the buffer size required to store the state of this context using ExportContextState()

Header-Datei#include "ara/crypto/cryp/hash_function_ctx.h"
Scopeclass ara::crypto::cryp::HashFunctionCtx
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Rückgabewert

TypBeschreibung
ara::core::Result<std::size_t >A result containing required context state buffer size in bytes or an error

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kUnsupportedrollback_semantics if this context does not support im-/exporting the context state

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_50063
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50063@rel:R25-11#c5c390c7
Content hash
c5c390c7
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50063
Status: valid/unmigrated Version: rel:R25-11#c5c390c7 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CRYPT_50063@rel:R25-11#c5c390c7
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function GetDigest [SWS_CRYPT_21116] Upstream: RS_CRYPTO_02205

virtual ara::core::Result< std::size_t > GetDigest (ReadWriteMemRegion digest) const noexcept=0;

Write the calculated hash digest into the provided output buffer.

Header-Datei#include "ara/crypto/cryp/hash_function_ctx.h"
Scopeclass ara::crypto::cryp::HashFunctionCtx
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (out)

ParameterBeschreibung
digestan output data buffer that the hash digest will be written into

Rückgabewert

TypBeschreibung
ara::core::Result<std::size_t >A result containing the size in bytes of the hash digest or an error.

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kProcessingNotFinishedrollback_semantics if the hash calculation was not finished by a call of the Finish() method
ara::crypto::CryptoErrc::kInsufficientCapacityrollback_semantics if the output buffer is too small

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_21116
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_21116@rel:R25-11#d36ab796
Content hash
d36ab796
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_21116
Status: valid/unmigrated Version: rel:R25-11#5176bc54 Versionshistorie & Revisions (1 transition, 7 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CRYPT_21116@rel:R25-11#5176bc54
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#d36ab7962026-09-30
  • R20-11rel:R20-11#6044ba662026-10-14
  • R21-11rel:R21-11#c195cbba2026-10-14
  • R22-11rel:R22-11#32e02a4e2026-10-14
  • R23-11rel:R23-11#7888ecb32026-10-14
  • R24-11rel:R24-11#96e2c5772026-10-14
  • R25-11rel:R25-11#5176bc542026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function GetDigestSize [SWS_CRYPT_50061] Upstream: RS_CRYPTO_02309

virtual ara::core::Result< std::size_t > GetDigestSize () const noexcept=0;

Get the output digest size.

Header-Datei#include "ara/crypto/cryp/hash_function_ctx.h"
Scopeclass ara::crypto::cryp::HashFunctionCtx
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Rückgabewert

TypBeschreibung
ara::core::Result<std::size_t >A result containing the size of the output from this digest-function in bytes or an error

Fehler

FehlercodeBeschreibung
This function does not specify any standardized errors.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_50061
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50061@rel:R25-11#739a55c8
Content hash
739a55c8
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50061
Status: valid/unmigrated Version: rel:R25-11#739a55c8 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CRYPT_50061@rel:R25-11#739a55c8
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function GetIntermediateDigest [SWS_CRYPT_50059] Upstream: RS_CRYPTO_02205

virtual ara::core::Result< std::size_t > GetIntermediateDigest (Read WriteMemRegion digest) const noexcept=0;

Calculate the hash digest with the data provided to the hash context and write the calculated hash digest into the provided output buffer. The hash digest is equal to the hash digest returned when calling Finish() and GetDigest(), however, after calling GetIntermediateDigest(), this context can still be updated with additional data.

Header-Datei#include "ara/crypto/cryp/hash_function_ctx.h"
Scopeclass ara::crypto::cryp::HashFunctionCtx
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (out)

ParameterBeschreibung
digestan output data buffer that the hash digest will be written into

Rückgabewert

TypBeschreibung
ara::core::Result<std::size_t >A result containing the size in bytes of the hash digest or an error.

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kInvalidUsageOrderrollback_semantics the hash calculation has not been started successfully.
ara::crypto::CryptoErrc::kInsufficientCapacityrollback_semantics if the output buffer is too small
ara::crypto::CryptoErrc::kUnsupportedrollback_semantics if this context does not support getting an intemediate digest

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_50059
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50059@rel:R25-11#9bc73898
Content hash
9bc73898
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50059
Status: valid/unmigrated Version: rel:R25-11#9bc73898 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CRYPT_50059@rel:R25-11#9bc73898
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function GetMaximumChunkSize [SWS_CRYPT_50062] Upstream: RS_CRYPTO_02309

virtual ara::core::Result< std::size_t > GetMaximumChunkSize () const noexcept=0;

Get the maximum input buffer size supported for processing in single calls to Update(), Finish(), or CalculateHashDigest() by this context.

Header-Datei#include "ara/crypto/cryp/hash_function_ctx.h"
Scopeclass ara::crypto::cryp::HashFunctionCtx
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Rückgabewert

TypBeschreibung
ara::core::Result<std::size_t >A result containing the maximum buffer size in bytes or an error

Fehler

FehlercodeBeschreibung
This function does not specify any standardized errors.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_50062
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50062@rel:R25-11#17fdd281
Content hash
17fdd281
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50062
Status: valid/unmigrated Version: rel:R25-11#17fdd281 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CRYPT_50062@rel:R25-11#17fdd281
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function ImportContextState [SWS_CRYPT_50065] Upstream: RS_CRYPTO_02309

virtual ara::core::Result< void > ImportContextState (ReadOnlyMem Region contextState) noexcept=0;

Set the current state of this hash context to the state provided by contextState. This function can be used to resume a previously suspended hash operation. The contextState must have been exported from a HashFunctionCtx with the same AlgorithmId provided by the same Crypto Provider as the current context using the function ExportContextState(). The current state of this context (e.g., any ongoing hash calculation) will be replaced by the state provided to this function.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 16a68c3d97e9 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Methode ImportContextState der Klasse ara::crypto::cryp::HashFunctionCtx (definiert in ara/crypto/cryp/hash_function_ctx.h) dient dazu, den internen Zustand eines Hash-Kontexts aus einem übergebenen Puffer wiederherzustellen und damit eine zuvor unterbrochene Hash-Operation fortzuführen [SWS_CRYPT_50065]. Ein etwaig laufender Berechnungszustand des aktuellen Kontexts wird dabei vollständig durch den importierten Zustand ersetzt [SWS_CRYPT_50065].

Aufruf und Vorbedingungen

Der synchrone Aufruf erfolgt über die Signatur ImportContextState(ReadOnlyMem Region contextState) noexcept und gibt ein ara::core::Result<void> zurück [SWS_CRYPT_50065]. An den Parameter contextState gelten folgende zwingende Voraussetzungen:

  • Der Datenpuffer muss zuvor mit der Methode ExportContextState() aus einer Instanz von HashFunctionCtx exportiert worden sein [SWS_CRYPT_50065].
  • Der Quellkontext muss dieselbe AlgorithmId besessen haben und vom selben Crypto Provider bereitgestellt worden sein wie der Zielkontext [SWS_CRYPT_50065].

Fehlerbehandlung und Nebenläufigkeit

Im Fehlerfall wird ein Fehlercode mit Rollback-Semantik zurückgegeben, sodass der bestehende Zustand des Kontexts bei Misserfolg unverändert bleibt [SWS_CRYPT_50065]:

  • ara::crypto::CryptoErrc::kInvalidArgument: Das Argument contextState enthält ungültige Daten [SWS_CRYPT_50065].
  • ara::crypto::CryptoErrc::kUnsupported: Der spezifische Kontext unterstützt das Exportieren und Importieren von Kontextzuständen nicht [SWS_CRYPT_50065].

Die Operation ist als thread-safe und exception safe spezifiziert [SWS_CRYPT_50065].

Dieser Nutzungshinweis basiert auf der Spezifikation AUTOSAR Adaptive Release R25-11.

Implementer's Guide folgt (Komplexität I1)

Header-Datei#include "ara/crypto/cryp/hash_function_ctx.h"
Scopeclass ara::crypto::cryp::HashFunctionCtx
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
contextStatea data buffer that contains a previously exported state of the context

Rückgabewert

TypBeschreibung
ara::core::Result< void >An empty result on success or an error

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kUnsupportedrollback_semantics if this context does not support im-/exporting the context state
ara::crypto::CryptoErrc::kInvalidArgumentrollback_semantics if the contextState argument contains invalid data

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_50065
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50065@rel:R25-11#7db4f4c5
Content hash
7db4f4c5
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50065
Status: valid/unmigrated Version: rel:R25-11#7db4f4c5 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CRYPT_50065@rel:R25-11#7db4f4c5
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function Start [SWS_CRYPT_50152] Upstream: RS_CRYPTO_02302

virtual ara::core::Result< void > Start () noexcept=0;

Initialize the context for processing of a hash digest without an IV. Will cancel any ongoing hash calculation.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 6588b8251bb2 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Methode Start() der Schnittstelle ara::crypto::cryp::HashFunctionCtx initialisiert den Kontext für die schrittweise Berechnung eines Hash-Werts ohne Initialisierungsvektor (IV) [SWS_CRYPT_50152]. Ein erneuter Aufruf bricht eine eventuell bereits laufende Hash-Berechnung ab und setzt den Kontext für eine neue Berechnung auf [SWS_CRYPT_50152].

Die Funktion ist synchron, nimmt keine Parameter entgegen und gibt ein ara::core::Result<void> zurück [SWS_CRYPT_50152]. Tritt bei der Initialisierung ein Fehler auf, greift Rollback-Semantik mit folgenden spezifischen Fehlercodes [SWS_CRYPT_50152]:

  • ara::crypto::CryptoErrc::kUnsupported: Die verwendete Hash-Funktion erwartet zwingend einen Initialisierungsvektor [SWS_CRYPT_50152].
  • ara::crypto::CryptoErrc::kBusyResource: Eine für die Operation zwingend erforderliche interne Ressource ist belegt [SWS_CRYPT_50152].

Hinsichtlich der Nebenläufigkeit ist die Methode als thread-safe sowie exception safe spezifiziert und als noexcept deklariert [SWS_CRYPT_50152]. Nach erfolgreicher Initialisierung können Nachrichtenteile sequenziell über die Methode Update() des Kontexts eingespeist werden [SWS_CRYPT_21113]. Da der Aufruf laufende Berechnungen abbricht, dürfte die Funktion in der Praxis auch als Reset-Mechanismus vor einem Neustart dienen. Frage Q-9c369489a6c6e8cb (offen)

Dieser Nutzungshinweis wurde automatisiert anhand der AUTOSAR-Spezifikation für R25-11 generiert.

Implementer's Guide folgt (Komplexität I1)

Header-Datei#include "ara/crypto/cryp/hash_function_ctx.h"
Scopeclass ara::crypto::cryp::HashFunctionCtx
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Rückgabewert

TypBeschreibung
ara::core::Result< void >An empty result or an error

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kUnsupportedrollback_semantics the used hash function expects an IV
ara::crypto::CryptoErrc::kBusyResourcerollback_semantics a required resource is busy

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_50152
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50152@rel:R25-11#b2ed1e78
Content hash
b2ed1e78
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50152
Status: valid/unmigrated Version: rel:R25-11#b2ed1e78 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CRYPT_50152@rel:R25-11#b2ed1e78
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function Start [SWS_CRYPT_50153] Upstream: RS_CRYPTO_02302

virtual ara::core::Result< void > Start (ReadOnlyMemRegion iv) noexcept=0;

Initialize the context for processing of a hash digest with an IV. Will cancel any ongoing hash calculation.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 3e6743c0173b Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die Funktion Start der Schnittstelle ara::crypto::cryp::HashFunctionCtx initialisiert den Kontext für die Berechnung eines Hash-Digests unter Verwendung eines Initialisierungsvektors (IV) [SWS_CRYPT_50153]. Als Parameter wird der Initialisierungsvektor iv über eine ReadOnlyMemRegion übergeben [SWS_CRYPT_50153]. Der synchrone Aufruf liefert ein ara::core::Result<void> zurück, das im Erfolgsfall keinen Rückgabewert enthält [SWS_CRYPT_50153]. Ein Aufruf bricht zudem eine eventuell bereits laufende Hash-Berechnung auf diesem Kontext ab [SWS_CRYPT_50153].

Fehlerbehandlung

Tritt bei der Initialisierung ein Fehler auf, wird ein entsprechender Fehlercode zurückgegeben, wobei für alle Fehlerfälle eine Rollback-Semantik garantiert wird [SWS_CRYPT_50153]:

  • ara::crypto::CryptoErrc::kInvalidInputSize: Die Größe des bereitgestellten Initialisierungsvektors wird nicht unterstützt [SWS_CRYPT_50153].
  • ara::crypto::CryptoErrc::kUnsupported: Die zugrundeliegende Hash-Funktion verwendet keinen Initialisierungsvektor [SWS_CRYPT_50153].
  • ara::crypto::CryptoErrc::kBusyResource: Eine für die Initialisierung benötigte Ressource ist belegt [SWS_CRYPT_50153].

Nebenläufigkeit und Zusammenspiel

Die Schnittstelle ist als noexcept deklariert sowie als threadsicher (thread-safe) und ausnahmesicher (exception safe) spezifiziert [SWS_CRYPT_50153]. Im typischen Ablauf bildet der Aufruf die Vorbedingung für die nachfolgende schrittweise Verarbeitung der Eingabenachricht über die Methode Update [SWS_CRYPT_21113].

Dieser Nutzungshinweis wurde automatisiert auf Basis der AUTOSAR-Spezifikation R25-11 erstellt.

Implementer's Guide folgt (Komplexität I1)

Header-Datei#include "ara/crypto/cryp/hash_function_ctx.h"
Scopeclass ara::crypto::cryp::HashFunctionCtx
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
ivthe used Initialization Vector (IV)

Rückgabewert

TypBeschreibung
ara::core::Result< void >An empty result or an error

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kInvalidInputSizerollback_semantics the size of provided IV is not supported
ara::crypto::CryptoErrc::kUnsupportedrollback_semantics the used hash function does not use an IV
ara::crypto::CryptoErrc::kBusyResourcerollback_semantics a required resource is busy

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_50153
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50153@rel:R25-11#8543358e
Content hash
8543358e
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50153
Status: valid/unmigrated Version: rel:R25-11#8543358e Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CRYPT_50153@rel:R25-11#8543358e
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function Update [SWS_CRYPT_21113] Upstream: RS_CRYPTO_02302

virtual ara::core::Result< void > Update (ReadOnlyMemRegion data) noexcept=0;

Update the digest calculation context by a new part of the message.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: fe6681ce0628 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Methode Update dient in [SWS_CRYPT_21113] der inkrementellen Aktualisierung eines laufenden Hash-Berechnungskontexts (ara::crypto::cryp::HashFunctionCtx). Über den Parameter data (ReadOnlyMemRegion) wird ein Teil der zu verarbeitenden Eingabenachricht übergeben. Die Funktion liefert ein ara::core::Result<void> zurück, das im Erfolgsfall leer ist oder einen entsprechenden Fehlercode kapselt.

Hinsichtlich des Fehlerverhaltens bietet die Methode Rollback-Semantik bei zwei spezifischen Fehlerzuständen:

  • ara::crypto::CryptoErrc::kProcessingNotStarted: Die Berechnung wurde zuvor nicht durch einen Aufruf der Methode Start() initiiert [SWS_CRYPT_21113].
  • ara::crypto::CryptoErrc::kInvalidInputSize: Die Größe der übergebenen Daten wird vom Kontext nicht unterstützt [SWS_CRYPT_21113].

Für den Aufrufkontext gelten klare Reihenfolge- und Größenbedingungen: Vor der Datenübergabe muss der Hash-Vorgang initialisiert worden sein [SWS_CRYPT_21113]. Um kInvalidInputSize zu vermeiden, kann die maximal zulässige Blockgröße für einen einzelnen Update-Aufruf vorab über GetMaximumChunkSize ermittelt werden [SWS_CRYPT_50062]. Gemäß Spezifikation ist die Funktion als ausnahmesicher (exception safe) und threadsicher (thread-safe) deklariert [SWS_CRYPT_21113].

Im Zusammenspiel mit anderen Schnittstellen existiert innerhalb von HashFunctionCtx eine Überladung zur Übergabe von Schlüsselobjekten via Update(CryptoObject::Sptr) [SWS_CRYPT_50057]. Nach der Zufuhr aller Datenblöcke dürfte die Finalisierung der Prüfsumme vermutlich über Finish() erfolgen [SWS_CRYPT_50062]. Frage Q-dcac20f353ca55f4 (offen)

Dieser Nutzungshinweis wurde automatisch auf Basis der Spezifikation generiert.

Header-Datei#include "ara/crypto/cryp/hash_function_ctx.h"
Scopeclass ara::crypto::cryp::HashFunctionCtx
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
dataa part of the input message that should be processed

Rückgabewert

TypBeschreibung
ara::core::Result< void >An empty result or an error

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kProcessingNotStartedrollback_semantics if the digest calculation was not initiated by a call of the Start() method
ara::crypto::CryptoErrc::kInvalidInputSizerollback_semantics if the size of provided data is not supported

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_21113
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_21113@rel:R25-11#a256303e
Content hash
a256303e
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_21113
Status: valid/unmigrated Version: rel:R25-11#1061ad76 Versionshistorie & Revisions (1 transition, 7 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CRYPT_21113@rel:R25-11#1061ad76
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#a256303e2026-09-30
  • R20-11rel:R20-11#c42a6b602026-10-14
  • R21-11rel:R21-11#8395b3922026-10-14
  • R22-11rel:R22-11#c133132e2026-10-14
  • R23-11rel:R23-11#68132f692026-10-14
  • R24-11rel:R24-11#0809f9622026-10-14
  • R25-11rel:R25-11#1061ad762026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function Update [SWS_CRYPT_50057] Upstream: RS_CRYPTO_02302

virtual ara::core::Result< void > Update (CryptoObject::Sptr key) noexcept=0;

Update the digest calculation context by a new part of the message.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 87fb2c080f4a Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Methode Update dient in [SWS_CRYPT_50057] dazu, den Kontext einer Hashwert-Berechnung in ara::crypto::cryp::HashFunctionCtx schrittweise um einen neuen Nachrichtenabschnitt in Form eines Schlüsselobjekts zu erweitern. Als Parameter wird ein Smart Pointer auf das Schlüsselobjekt (CryptoObject::Sptr key) übergeben. Der Aufruf liefert als Rückgabewert ein ara::core::Result<void>, das bei erfolgreicher Verarbeitung leer ist oder im Fehlerfall einen entsprechenden Fehlercode kapselt [SWS_CRYPT_50057].

Als Reihenfolgebedingung gilt, dass die Berechnung zuvor zwingend durch den Aufruf von Start() initiiert worden sein muss; andernfalls wird der Fehler ProcessingNotStarted gemeldet [SWS_CRYPT_50057]. Weitere spezifische Fehlerfälle umfassen (jeweils mit Rollback-Semantik) [SWS_CRYPT_50057]:

  • ara::crypto::CryptoErrc::kUnsupported, wenn der Hash-Kontext das Hashen von Schlüsseln generell nicht unterstützt,
  • ara::crypto::CryptoErrc::kIncompatibleObject, falls das übergebene Schlüsselobjekt nicht kompatibel mit dem Kontext ist,
  • ara::crypto::CryptoErrc::kUsageViolation, sofern die zulässige Verwendung des Schlüssels nicht kAllowHash Calculation umfasst,
  • ara::crypto::CryptoErrc::kInvalidInputSize, wenn die Datengröße des übergebenen Schlüssels nicht unterstützt wird.

Die Methode ist als thread-safe sowie als exception safe (noexcept) deklariert [SWS_CRYPT_50057]. Im Zusammenspiel mit anderen Schnittstellen des Moduls kann die maximal zulässige Puffergröße für einzelne Update-Aufrufe über GetMaximumChunkSize() ermittelt werden [SWS_CRYPT_50062]. Für reguläre Nachrichtenteile ohne Schlüsselobjekt existiert in HashFunctionCtx parallel die Überladung Update(ReadOnlyMemRegion data) [SWS_CRYPT_21113].

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation erstellt.

Header-Datei#include "ara/crypto/cryp/hash_function_ctx.h"
Scopeclass ara::crypto::cryp::HashFunctionCtx
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe ara::crypto::CryptoErrc::k rollback_semantics

Parameter (in)

ParameterBeschreibung
keya part of the input message that should be processed

Rückgabewert

TypBeschreibung
ara::core::Result< void >An empty result or an error

Fehler

FehlercodeBeschreibung
ProcessingNotStartedif the digest calculation was not initiated by a call of the Start() method
ara::crypto::CryptoErrc::kInvalidInputSizerollback_semantics if the size of provided data is not supported
ara::crypto::CryptoErrc::kUnsupportedrollback_semantics if this context does not support hashing of keys
ara::crypto::CryptoErrc::kIncompatibleObjectrollback_semantics if the provided key is incompatible with this context
ara::crypto::CryptoErrc::kUsageViolationrollback_semantics if the allowed usage of the key does not include kAllowHash Calculation

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_50057
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50057@rel:R25-11#6d3cf021
Content hash
6d3cf021
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50057
Status: valid/unmigrated Version: rel:R25-11#6d3cf021 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CRYPT_50057@rel:R25-11#6d3cf021
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

Dokumentation der Typaliase

type alias Sptr [SWS_CRYPT_21101] Upstream: RS_CRYPTO_02205

using Sptr = std::shared_ptr<HashFunctionCtx>;

Smart pointer of the interface.

Header-Datei#include "ara/crypto/cryp/hash_function_ctx.h"
Scopeclass ara::crypto::cryp::HashFunctionCtx
SymbolSptr

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_21101
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_21101@rel:R25-11#806f0f39
Content hash
806f0f39
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_21101
Status: valid/unmigrated Version: rel:R25-11#6b0a2315 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CRYPT_21101@rel:R25-11#6b0a2315
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#806f0f392026-09-30
  • R19-11rel:R19-11#d559cb4a2026-10-14
  • R20-11rel:R20-11#6ba26a492026-10-14
  • R21-11rel:R21-11#6ba26a492026-10-14
  • R22-11rel:R22-11#49c7b6f72026-10-14
  • R23-11rel:R23-11#cfd4adfd2026-10-14
  • R24-11rel:R24-11#cfd4adfd2026-10-14
  • R25-11rel:R25-11#6b0a23152026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill