Dient als Schnittstelle für symmetrische Verschlüsselungs- und Entschlüsselungsoperationen in Datenströmen oder Einzelaufrufen.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 0261b663ca0dHerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Dient als Schnittstelle für symmetrische Verschlüsselungs- und Entschlüsselungsoperationen in Datenströmen oder Einzelaufrufen.
Die Klasse ara::crypto::cryp::SymmetricCipherCtx dient als threadsichere Schnittstelle für symmetrische Verschlüsselungs- und Entschlüsselungsoperationen in AUTOSAR Adaptive [SWS_CRYPT_50044]. Nach Konfiguration eines Schlüssels über SetKey() können Daten entweder in einem einzelnen Aufruf oder schrittweise in einem Streaming-Zyklus aus Start(), Update() und Finish() verarbeitet werden [SWS_CRYPT_50138], [SWS_CRYPT_50139]. Alle Methoden sind als noexcept spezifiziert und signalisieren Fehler wie fehlende Initialisierung oder zu kleine Puffer über ara::core::Result[SWS_CRYPT_50140].
Kontext
Die Schnittstelle ara::crypto::cryp::SymmetricCipherCtx kapselt symmetrische kryptografische Transformationen, welche sowohl Verschlüsselungs- als auch Entschlüsselungsoperationen umfassen. Innerhalb der Krypto-Architektur agiert die Klasse als Ausführungskontext für symmetrische Algorithmen und kooperiert mit Schlüsselobjekten sowie Speicherpuffern. Zur Konfiguration des kryptografischen Schlüssels interagiert die Klasse entweder direkt mit flüchtigen Schlüsseln über SymmetricKey[SWS_CRYPT_50138] oder mit persistent bzw. isoliert verwalteten Schlüsseln über KeySlot[SWS_CRYPT_50043]. Zu verarbeitende Klar- und Chiffretexte sowie Initialisierungsvektoren (IV) werden über Speicherbereiche vom Typ ReadOnlyMemRegion und ReadWriteMemRegion übergeben und empfangen [SWS_CRYPT_50048], [SWS_CRYPT_50049].
Lebenszyklus
Lebenszyklus und Besitzverhältnisse der Schnittstelle werden primär über den typisierten Smart-Pointer-Alias Sptr (std::shared_ptr<SymmetricCipherCtx>) gesteuert [SWS_CRYPT_50137]. Die Bereitstellung einer konkreten Instanz dürfte in der Praxis über eine übergeordnete Krypto-Fabrikmethode erfolgen (Interpretation), da die Schnittstellendefinition selbst keine Erzeugungsfunktionen ausweist. Frage Q-5b5f5ffdf964c91f (offen)
Nach der Instanziierung durchläuft der Kontext mehrere Betriebsphasen:
Nicht initialisiert: Unmittelbar nach der Instanziierung ist dem Kontext kein Schlüssel zugeordnet. Jeder Verarbeitungsaufruf in dieser Phase führt zum Fehler CryptoErrc::kUninitializedContext[SWS_CRYPT_50044], [SWS_CRYPT_50047].
Initialisiert / Schlüssel gebunden: Durch Aufruf von SetKey() mit einem SymmetricKey[SWS_CRYPT_50138] oder KeySlot[SWS_CRYPT_50043] wird der Kontext einsatzbereit. Aus diesem Zustand heraus können entweder zustandslose Single-Call-Operationen ausgeführt oder ein zustandsbehafteter Streaming-Prozess gestartet werden.
Streaming-Verarbeitung: Ein Aufruf von Start() leitet eine schrittweise Transformation ein [SWS_CRYPT_50044], [SWS_CRYPT_23625]. In dieser Phase können Daten über Update() transformiert [SWS_CRYPT_50139] und die Position via Seek() modifiziert werden [SWS_CRYPT_23613]. Der Streaming-Zustand wird regulär durch Finish()[SWS_CRYPT_50045] bzw. FinishEncrypt()[SWS_CRYPT_23618] beendet oder vorzeitig via Cancel() verworfen [SWS_CRYPT_50046]. Danach kehrt der Kontext in den initialisierten Grundzustand zurück.
Sämtliche Methoden von SymmetricCipherCtx sind als noexcept deklariert, gewährleisten Ausnahme-Sicherheit („exception safe“) und sind für den nebenläufigen Zugriff als threadsicher („thread-safe“) spezifiziert [SWS_CRYPT_50044], [SWS_CRYPT_50139].
Vor der eigentlichen Datentransformation empfiehlt sich die Bestimmung der geforderten Puffer- und Chunkgrößen. Über GetMinimumChunkSize()[SWS_CRYPT_50144] und GetMaximumChunkSize()[SWS_CRYPT_50050] lassen sich die zulässigen Grenzen für Eingabeblöcke ermitteln. Falls Initialisierungsvektoren erforderlich sind, können deren Längengrenzen mittels GetMinimumInputIvSize()[SWS_CRYPT_50141], GetMaximumInputIvSize()[SWS_CRYPT_50142] oder GetOutputIvSize()[SWS_CRYPT_50143] abgefragt werden. Die maximal notwendige Zielpuffergröße für eine Operation wird mittels GetRequiredOutputBufferSize() berechnet [SWS_CRYPT_50140].
Für die schrittweise Stream-Verschlüsselung oder -Entschlüsselung gilt folgender Standardablauf:
Schlüssel konfigurieren: Bindung des kryptografischen Schlüssels an den Kontext via SetKey()[SWS_CRYPT_50138].
Transformation starten: Aufruf von Start() unter Angabe von Transformationsrichtung (Verschlüsselung oder Entschlüsselung) und optionalem IV [SWS_CRYPT_23625] bzw. ohne IV [SWS_CRYPT_50044].
Datenblöcke transformieren: Wiederholter Aufruf von Update() zur schrittweisen Übergabe von Eingabedaten und Entnahme der Ausgabedaten [SWS_CRYPT_50139]. Bei Bedarf kann innerhalb des Datenstroms über Seek() navigiert werden [SWS_CRYPT_23613].
Abschluss: Finalisierung über Finish()[SWS_CRYPT_50045] oder über FinishEncrypt(), sofern der vom Kontext erzeugte IV zurückgegeben werden soll [SWS_CRYPT_23618].
Alternativ zu diesem Streaming-Muster unterstützt die Schnittstelle synchrone Einzelaufrufe. Liegt die gesamte Nutzlast vor, kann die Operation direkt über ProcessSingleCall()[SWS_CRYPT_50047], ProcessSingleCallWithInputIv()[SWS_CRYPT_50048] oder für kontexteigene IV-Generierung über EncryptSingleCallWithOutputIv()[SWS_CRYPT_50049] ausgeführt werden.
Methoden der Klasse signalisieren Fehler über ara::core::Result mit Codes der Fehlerdomäne ara::crypto::CryptoErrc. Wesentliche Fehlerbedingungen umfassen:
CryptoErrc::kUninitializedContext: Tritt auf, wenn Verarbeitungsaufrufe wie Start()[SWS_CRYPT_50044], Single-Call-Routinen [SWS_CRYPT_50047] oder GetRequiredOutputBufferSize()[SWS_CRYPT_50140] aufgerufen werden, bevor ein Schlüssel über SetKey() hinterlegt wurde.
CryptoErrc::kInsufficientCapacity: Der bereitgestellte Zielpuffer für Daten oder IVs ist kleiner als die minimal benötigte Kapazität [SWS_CRYPT_50139], [SWS_CRYPT_50049].
CryptoErrc::kUsageViolation und CryptoErrc::kIncompatibleObject: Der übergebene Schlüsseltyp ist für die Transformation unpassend oder die im Schlüssel hinterlegten Nutzungsregeln verbieten die Operation (z. B. Fehlen von kAllowDataEncryption oder kAllowDataDecryption) [SWS_CRYPT_50044], [SWS_CRYPT_50047].
CryptoErrc::kEmptyKeySlot und CryptoErrc::kBusyResource: Zeigt an, dass ein konfigurierter KeySlot zur Laufzeit keinen Schlüssel enthält oder eine für die Kryptooperation benötigte Ressource blockiert ist [SWS_CRYPT_50048], [SWS_CRYPT_50049].
CryptoErrc::kUnsupported: Wird zurückgegeben, wenn eine Betriebsart (wie Stream-Verarbeitung, Single-Call oder Seek()) vom gewählten Kontext oder Algorithmus nicht unterstützt wird [SWS_CRYPT_23613], [SWS_CRYPT_50047].
Dieser Leitfaden wurde durch einen KI-Assistenten anhand der Spezifikationsvorgaben erstellt.
Get the maximum input buffer size supported for processing in single calls to Update(), Finish(), FinishEncrypt(), or ProcessSingleCall() by this context.
Get the maximum IV size required to be passed to the context in the functions Start() and ProcessSingleCallWithInputIv() for the given transformDirection.
Get the minimum input buffer size supported for processing in single calls to Update(), Finish(), FinishEncrypt(), or ProcessSingleCall() by this context.
Get the minimum IV size required to be passed to the context in the functions Start() and ProcessSingleCallWithInputIv() for the given transformDirection.
Get the output IV size that will be returned by the functions FinishEncrypt() (in case no IV has been provided by the application during the call to Start()), and EncryptSingleCallWithOutputIv().
Cancel the ongoing streaming operation that has been initiated by Start() and has not yet been finished.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 0bea3f0e1d0dHerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die synchrone Methode Cancel() der Klasse ara::crypto::cryp::SymmetricCipherCtx dient dem vorzeitigen Abbruch einer laufenden Streaming-Operation, die zuvor mit Start() initiiert und noch nicht beendet wurde [SWS_CRYPT_50046]. Die Schnittstelle ist parameterlos in ara/crypto/cryp/symmetric_cipher_ctx.h deklariert und gibt bei erfolgreicher Durchführung ein leeres ara::core::Result<void> zurück [SWS_CRYPT_50046].
Wurde die Datenverarbeitung im Vorfeld nicht durch den Aufruf von Start() begonnen, schlägt die Operation mit dem spezifischen Fehlercode ara::crypto::CryptoErrc::kProcessingNotStarted und Rollback-Semantik fehl [SWS_CRYPT_50046]. Für den Aufrufkontext garantiert die Spezifikation Thread-Sicherheit (thread-safe) sowie Ausnahme-Sicherheit (exception safe) mit noexcept-Deklaration [SWS_CRYPT_50046]. Interpretation: Aufgrund der Rollback-Semantik dürfte das Objekt nach einem Abbruch wieder in einen bereiten Ausgangszustand zurückkehren. Frage Q-b6deb8db5367acc5 (offen)
Perform encryption in a single-call and return an IV generated by the context.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 9c4059afbb11HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung und Pufferbehandlung
Die synchrone Methode EncryptSingleCallWithOutputIv führt eine symmetrische Verschlüsselung in einem einzigen Aufruf durch und gibt den vom Kontext generierten Initialisierungsvektor über den Puffer ivOut zurück [SWS_CRYPT_50049]. Die Eingangsdaten werden über in übergeben, während out die verschlüsselten Daten aufnimmt [SWS_CRYPT_50049]. Bei erfolgreicher Ausführung liefert das Ergebnis ara::core::Result<std::size_t> die tatsächliche Größe der erzeugten Ausgabedaten, welche kleiner als die Gesamtkapazität von out sein kann [SWS_CRYPT_50049]. Benötigt der gewählte Algorithmus keinen Initialisierungsvektor, werden keine Daten in ivOut geschrieben [SWS_CRYPT_50049].
Zusammenspiel und Vorbedingungen
Vor dem Aufruf muss der Kontext über einen passenden Schlüssel initialisiert werden [SWS_CRYPT_50049]. Um eine ausreichende Kapazität des Puffers ivOut zu gewährleisten, kann die erforderliche IV-Länge vorab über GetOutputIvSize() ermittelt werden [SWS_CRYPT_50143]. Falls zusätzlich eine Authentifizierung mit Tag-Berechnung benötigt wird, bietet ara::crypto::cryp::AuthCipherCtx das entsprechende Gegenstück an [SWS_CRYPT_50080].
Fehlerbehandlung und Nebenläufigkeit
Die Schnittstelle ist threadsicher sowie ausnahmesicher („exception safe“) spezifiziert und wendet bei Fehlern eine Rollback-Semantik an [SWS_CRYPT_50049]. Interpretation: Diese Rollback-Semantik dürfte sicherstellen, dass bei auftretenden Fehlern der Zustand des Kontexts intakt bleibt und keine unvollständigen Daten im Puffer als gültig verbleiben. Frage Q-841087731518d866 (offen) Zu den relevanten Fehlern zählen:
UninitializedContext: Dem Kontext wurde noch kein Schlüssel zugewiesen [SWS_CRYPT_50049].
ara::crypto::CryptoErrc::kInsufficientCapacity: Die Kapazität von out oder ivOut ist unzureichend [SWS_CRYPT_50049].
ara::crypto::CryptoErrc::kUnsupported: Single-Call-Verschlüsselung wird nicht unterstützt oder der Algorithmus erzwingt die Vorgabe eines Eingangs-IVs [SWS_CRYPT_50049].
ara::crypto::CryptoErrc::kUsageViolation bzw. ara::crypto::CryptoErrc::kIncompatibleObject: Der Schlüsseltyp passt nicht zur Transformation oder die Schlüsselverwendung erlaubt keine Datenverschlüsselung [SWS_CRYPT_50049].
Dieser Nutzungshinweis wurde von einer KI basierend auf den Spezifikationen von AUTOSAR Adaptive generiert.
an input data buffer containing the ciphertext or plaintext
Parameter (out)
Parameter
Beschreibung
out
an output data buffer that the encrypted or decrypted data is written to
ivOut
an output data buffer that the initialization vector (IV) generated by the context will be written to. If the algorithm does not use an IV, no data will be written into the buffer.
Finalize the encryption/decryption without returning an IV.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 041cbaba2731HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung
Die synchrone Methode Finish finalisiert eine symmetrische Ver- oder Entschlüsselung innerhalb von ara::crypto::cryp::SymmetricCipherCtx ohne Rückgabe eines Initialisierungsvektors ([SWS_CRYPT_50045]). Sie verarbeitet den letzten Datenabschnitt aus dem Eingangspuffer in (ReadOnlyMemRegion) und schreibt die resultierenden Daten in den Ausgabepuffer out (ReadWriteMemRegion) ([SWS_CRYPT_50045]). Die hierfür benötigte Puffergröße kann vorab über GetRequiredOutputBufferSize() abgefragt werden ([SWS_CRYPT_50045]). Der Rückgabewert vom Typ ara::core::Result<std::size_t> liefert bei Erfolg die exakte Anzahl geschriebener Bytes, welche kleiner als die Gesamtkapazität von out sein kann ([SWS_CRYPT_50045]).
Fehlerbehandlung
Im Fehlerfall liefert die Methode ein ara::core::Result mit spezifischen Fehlercodes ([SWS_CRYPT_50045]):
ProcessingNotStarted: Die Datenverarbeitung wurde zuvor nicht durch Start() eingeleitet ([SWS_CRYPT_50045]).
ara::crypto::CryptoErrc::kInsufficientCapacity: Der Ausgabepuffer out ist zu klein ([SWS_CRYPT_50045]).
ara::crypto::CryptoErrc::kInvalidInputSize: Die Größe der Eingangsdaten kann nicht verarbeitet werden ([SWS_CRYPT_50045]).
ara::crypto::CryptoErrc::kInvalidArgument: Die übergebenen Eingangsdaten sind ungültig ([SWS_CRYPT_50045]).
ara::crypto::CryptoErrc::kUnsupported: Stream-Verarbeitung wird durch den aktuellen Kontext nicht unterstützt ([SWS_CRYPT_50045]).
Tritt einer der CryptoErrc-Fehler auf, greift eine Rollback-Semantik ([SWS_CRYPT_50045]).
Nebenläufigkeit und Zusammenspiel
Die Operation ist als thread-safe und exception safe definiert ([SWS_CRYPT_50045]). Vor dem Aufruf muss die Transformation zwingend durch Start() begonnen worden sein ([SWS_CRYPT_50045]). Die maximal zulässige Eingangsgröße für einzelne Aufrufe von Finish() kann über GetMaximumChunkSize() ermittelt werden ([SWS_CRYPT_50050]). Nach dem Abschluss dürfte der Transformationslauf beendet sein und für weitere Operationen vermutlich ein neuer Aufruf von Start() erforderlich werden. Frage Q-c4ffc8028e8f522b (offen)
Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R25-11 generiert.
Finalize the encryption and return the IV generated by the context.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: c0e4f2ad1bdcHerkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Methode FinishEncrypt schließt eine Verschlüsselungsoperation ab und gibt den vom Kontext generierten Initialisierungsvektor (IV) zurück [SWS_CRYPT_23618]. Sie verarbeitet den finalen Eingabedatenpuffer in und schreibt die resultierenden Daten in den Ausgabepuffer out sowie den IV in ivOut. Als Rückgabewert liefert sie ein ara::core::Result<std::size_t> mit der tatsächlichen Größe der geschriebenen Ausgabedaten, welche kleiner als die Kapazität von out sein kann [SWS_CRYPT_23618].
Für eine fehlerfreie Ausführung müssen Pufferdimensionen und Kontextzustand vorab abgestimmt werden:
Die erforderliche Puffergröße für out kann über [SWS_CRYPT_50140] mit gesetztem Parameter isFinal = true ermittelt werden. Ist out zu klein bemessen, schlägt der Aufruf mit CryptoErrc::kInsufficientCapacity fehl [SWS_CRYPT_23618].
Die erwartete Größe für ivOut lässt sich über [SWS_CRYPT_50143] abfragen.
Die Eingangsgröße von in muss zwischen den durch [SWS_CRYPT_50144] und [SWS_CRYPT_50050] definierten Minimal- und Maximalgrenzen liegen, andernfalls wird CryptoErrc::kInvalidInputSize zurückgegeben [SWS_CRYPT_23618].
Wurde die Datenverarbeitung nicht zuvor durch Start() eingeleitet, meldet die Methode CryptoErrc::kProcessingNotStarted[SWS_CRYPT_23618]. Enthält der Eingabepuffer ungültige Daten, folgt CryptoErrc::kInvalidArgument[SWS_CRYPT_23618]. Der Fehler CryptoErrc::kUnsupported tritt auf, wenn Stream-Verarbeitung nicht unterstützt wird, der Kontext keinen IV nutzt oder bereits in Start() ein IV übergeben wurde [SWS_CRYPT_23618]. Alle Fehler besitzen Rollback-Semantik [SWS_CRYPT_23618]. Gemäß Spezifikation ist der Aufruf threadsicher und ausnahmesicher (noexcept) [SWS_CRYPT_23618].
Dieser Nutzungshinweis wurde automatisiert auf Basis des AUTOSAR-Payloads generiert.
rollback_semantics if stream processing is not supported by the context or if this context does not use an IV or if the IV has been provided by the application in the Start() function
Request a governed re-review of this record. The record is not changed immediately.
Get the maximum input buffer size supported for processing in single calls to Update(), Finish(), FinishEncrypt(), or ProcessSingleCall() by this context.
Get the maximum IV size required to be passed to the context in the functions Start() and ProcessSingleCallWithInputIv() for the given transformDirection.
Get the minimum input buffer size supported for processing in single calls to Update(), Finish(), FinishEncrypt(), or ProcessSingleCall() by this context.
Get the minimum IV size required to be passed to the context in the functions Start() and ProcessSingleCallWithInputIv() for the given transformDirection.
Get the output IV size that will be returned by the functions FinishEncrypt() (in case no IV has been provided by the application during the call to Start()), and EncryptSingleCallWithOutputIv().
if true, calculate maximum required output buffer size for Finish(), FinishEncrypt(), ProcessSingleCallWithInputIv(), and Encrypt SingleCallWithOutputIv(), otherwise for Update()
Perform en-/decryption in a single-call without setting or returning an IV.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 4a1fdc95f521Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Methode ProcessSingleCall führt eine Ver- oder Entschlüsselung in einem einzelnen synchronen Aufruf ohne Initialisierungsvektor (IV) durch ([SWS_CRYPT_50047]). Als Eingabeparameter dienen der Datenpuffer in (ReadOnlyMemRegion) und die Transformationsrichtung transformDirection (CryptoTransform), während das Resultat in den Puffer out (ReadWriteMemRegion) geschrieben wird. Bei erfolgreicher Ausführung gibt die Funktion ein ara::core::Result<std::size_t> zurück, das die Anzahl der geschriebenen Bytes enthält; dieser Wert kann kleiner als die Gesamtkapazität des Ausgabepuffers sein.
Hinsichtlich Nebenläufigkeit und Sicherheit ist die Methode als thread-safe und exception safe spezifiziert ([SWS_CRYPT_50047]). Die verarbeitbare Eingabegröße von in unterliegt den durch den Kontext definierten Grenzen, die über [SWS_CRYPT_50144] (GetMinimumChunkSize) und [SWS_CRYPT_50050] (GetMaximumChunkSize) abgefragt werden können.
Sämtliche Fehlerfälle folgen einer Rollback-Semantik ([SWS_CRYPT_50047]):
ara::crypto::CryptoErrc::kUninitializedContext: Der Kontext wurde nicht vorab durch Zuweisen eines Schlüssels initialisiert.
ara::crypto::CryptoErrc::kUnsupported: Single-Call-Verarbeitung wird nicht unterstützt oder die Transformation erfordert das Setzen bzw. Auslesen eines IV.
ara::crypto::CryptoErrc::kInsufficientCapacity: Der Ausgabepuffer out bietet nicht genügend Kapazität.
ara::crypto::CryptoErrc::kInvalidInputSize: Die Eingabegröße kann vom Kontext nicht verarbeitet werden.
ara::crypto::CryptoErrc::kUsageViolation: Die Schlüsselverwendung deckt die angeforderte Operation nicht ab (kAllowDataEncryption bzw. kAllowDataDecryption).
ara::crypto::CryptoErrc::kIncompatibleObject, kEmptyKeySlot, kInvalidArgument oder kBusyResource: Schlüssel ist inkompatibel, Schlüssel-Slot ist leer, Eingabedaten sind ungültig oder benötigte Ressourcen sind belegt.
Im Zusammenspiel mit anderen Schnittstellen erfordert der Aufruf einen vollständig konfigurierten Kontext; für authentifizierende Chiffren mit zusätzlicher Tag-Verarbeitung steht in AuthCipherCtx die alternative Schnittstelle [SWS_CRYPT_50078] bereit.
Dieser Nutzungshinweis wurde automatisch generiert auf Basis der AUTOSAR-Spezifikation.
rollback_semantics if single-call en-/decryption is not supported, or if the context requires setting or returning an IV in the passed transformDirection
rollback_semantics if the allowed usage of the key does not include kAllowData Encryption for encryption, or kAllowDataDecryption for decryption, respectively
Perform en-/decryption in a single-call, providing an IV to be used during en-/decryption.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: f491c775eb62Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Methode ProcessSingleCallWithInputIv an ara::crypto::cryp::SymmetricCipherCtx führt eine symmetrische Ver- oder Entschlüsselung von Daten in einem einzigen synchronen Aufruf (Single-Call) durch [SWS_CRYPT_50048]. Dabei wird der zur Transformation genutzte Initialisierungsvektor explizit über den Eingabepuffer iv übergeben.
Verwendung und Zusammenspiel
Über transformDirection wird gesteuert, ob die Daten aus in ver- oder entschlüsselt werden. Das Ergebnis wird in den Puffer out geschrieben. Das zurückgegebene ara::core::Result<std::size_t> enthält die tatsächliche Anzahl der geschriebenen Bytes, welche geringer als die Gesamtkapazität von out ausfallen kann [SWS_CRYPT_50048].
Für die Dimensionierung der Puffer stehen Hilfsfunktionen bereit:
Die erforderliche Puffergröße für out kann vorab über GetRequiredOutputBufferSize mit dem Parameter isFinal = true berechnet werden [SWS_CRYPT_50140].
Die zulässige Länge für iv lässt sich für die gewählte Transformationsrichtung über GetMinimumInputIvSize[SWS_CRYPT_50141] sowie GetMaximumInputIvSize[SWS_CRYPT_50142] ermitteln.
Wird zusätzlich die Erzeugung oder Verifikation eines Authentifizierungs-Tags benötigt, ist stattdessen ara::crypto::cryp::AuthCipherCtx::ProcessSingleCallWithInputIv zu verwenden [SWS_CRYPT_50079].
Fehlerbehandlung und Nebenläufigkeit
Die Operation ist als thread-safe und exception safe definiert [SWS_CRYPT_50048]. Sämtliche Fehler besitzen Rollback-Semantik:
CryptoErrc::kUninitializedContext oder CryptoErrc::kEmptyKeySlot: Dem Kontext wurde kein Schlüssel zugewiesen bzw. der KeySlot ist leer [SWS_CRYPT_50048].
CryptoErrc::kUsageViolation: Der Schlüssel erlaubt die gewählte Richtung nicht (kAllowDataEncryption bzw. kAllowDataDecryption fehlt) [SWS_CRYPT_50048].
CryptoErrc::kIncompatibleObject: Der Schlüsseltyp ist mit der Transformation inkompatibel [SWS_CRYPT_50048].
CryptoErrc::kInsufficientCapacity: Der Ausgabepuffer out ist zu klein [SWS_CRYPT_50048].
CryptoErrc::kInvalidInputSize oder CryptoErrc::kInvalidArgument: Puffergröße oder Inhalt von in sind ungültig [SWS_CRYPT_50048].
CryptoErrc::kUnsupported: Single-Call-Verarbeitung oder Eingabe-IVs werden nicht unterstützt [SWS_CRYPT_50048].
CryptoErrc::kBusyResource: Eine benötigte Ressource ist belegt [SWS_CRYPT_50048].
Dieser Text wurde von einer KI erstellt und dient der Unterstützung bei der Nutzung des Spezifikationselements.
rollback_semantics if the allowed usage of the key does not include kAllowData Encryption for encryption, or kAllowDataDecryption for decryption, respectively
Set the position of the next byte within the data stream.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 2287fbd40f75HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Methode Seek der Schnittstelle ara::crypto::cryp::SymmetricCipherCtx setzt die Position des nächsten zu verarbeitenden Bytes innerhalb eines Datenstroms [SWS_CRYPT_23613]. Der Aufruf dürfte mangels asynchroner Rückgabetypen wie Futures synchron erfolgen. Frage Q-fccf732722263f60 (offen)
Verwendung
Die Positionierung wird über zwei Parameter gesteuert [SWS_CRYPT_23613]:
offset: Byte-Versatz im Datenstrom, bezogen entweder auf den Streamanfang oder die aktuelle Position [SWS_CRYPT_23613].
fromBegin: Referenzpunkt der Positionierung; true adressiert den Versatz vom Beginn des Streams, false relativ zur aktuellen Position [SWS_CRYPT_23613].
Die Funktion ist als noexcept deklariert und gibt ein ara::core::Result<void> zurück, welches den erfolgreichen Vollzug signalisiert oder ein aufgetretenes Fehlerobjekt enthält [SWS_CRYPT_23613].
Nebenläufigkeit und Einschränkungen
Laut Spezifikation ist Seek als ausnahmesicher (exception safe) und threadsicher (thread-safe) eingestuft [SWS_CRYPT_23613]. Voraussetzung für die Ausführung ist, dass die Datenverarbeitung zuvor durch Aufruf von Start() initiiert wurde [SWS_CRYPT_23613].
Fehlerbehandlung
Alle Fehlerfälle unterliegen einer definierten Rollback-Semantik (rollback_semantics), sodass der interne Zustand bei Fehlern konsistent bleibt [SWS_CRYPT_23613]:
ara::crypto::CryptoErrc::kUnsupported: Die Seek-Operation wird vom aktuellen kryptografischen Kontext nicht unterstützt [SWS_CRYPT_23613].
ara::crypto::CryptoErrc::kProcessingNotStarted: Die Datenverarbeitung wurde nicht vorab über Start() gestartet [SWS_CRYPT_23613].
ara::crypto::CryptoErrc::kOutOfBounds: Der resultierende Versatz ist zu klein oder zu groß für den Datenstrom [SWS_CRYPT_23613].
ara::crypto::CryptoErrc::kInvalidArgument: Der resultierende Offset ist nicht an einer Blockgrenze ausgerichtet, obwohl der Kontext eine Blockausrichtung verlangt [SWS_CRYPT_23613].
Configure the context to use the key stored in the provided KeySlot at the time the en-/decryption is started.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 72406ca015eaHerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die rein virtuelle Methode SetKey konfiguriert die Instanz von ara::crypto::cryp::SymmetricCipherCtx so, dass sie für künftige kryptografische Operationen den Schlüssel aus dem übergebenen KeySlot verwendet [SWS_CRYPT_50043].
Verwendung und Aufrufkontext
Der Aufruf erfolgt synchron und nimmt als Parameter keySlot einen KeySlot::Sptr entgegen, der einen SymmetricKey enthält [SWS_CRYPT_50043]. Der Rückgabewert ist ein ara::core::Result<void>, das den Erfolg signalisiert oder im Fehlerfall einen Fehlercode transportiert [SWS_CRYPT_50043]. Die Konfiguration bewirkt, dass der im Slot abgelegte Schlüssel erst zu dem Zeitpunkt herangezogen wird, zu dem die eigentliche Ver- oder Entschlüsselung gestartet wird [SWS_CRYPT_50043].
Fehlerbehandlung
Im Fehlerfall wird keine Ausnahme geworfen (die Methode ist als noexcept und exception safe spezifiziert), sondern ein Fehlercode mit Rollback-Semantik zurückgegeben [SWS_CRYPT_50043]:
ara::crypto::CryptoErrc::kIncompatibleObject: Der übergebene KeySlot ist mit dem Chiffrierkontext inkompatibel [SWS_CRYPT_50043].
ara::crypto::CryptoErrc::kUnsupported: Die Kontextimplementierung unterstützt ausschließlich das Setzen eines direkten Schlüssels (wie SymmetricKey) und keine Zuweisung über einen KeySlot[SWS_CRYPT_50043].
Nebenläufigkeit und Zusammenspiel
Die Methode ist als thread-safe ausgewiesen [SWS_CRYPT_50043]. Interpretation: Das tatsächliche Auslesen des Schlüsselmaterials dürfte erst beim Starten der Ver- oder Entschlüsselung erfolgen, sodass der Slot bis zum Transformationsstart konsistent bleiben muss. Frage Q-799125800ab0f93c (offen) Das Konzept, Kontexte über KeySlot::Sptr anstelle direkter Schlüsselobjekte zu konfigurieren, entspricht dem einheitlichen Muster verwandter Krypto-Kontexte, darunter KeyDerivationFunctionCtx[SWS_CRYPT_50010], MessageAuthnCodeCtx[SWS_CRYPT_50026], SymmetricKeyWrapperCtx[SWS_CRYPT_50034] sowie VerifierPublicCtx[SWS_CRYPT_50018].
Dieser Text wurde von einer KI auf Basis der Spezifikation AUTOSAR Adaptive R25-11 generiert.
Configure the context to use the provided symmetric key.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 7e5086bb8751Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung
Die Methode SetKey dient dazu, eine Instanz von ara::crypto::cryp::SymmetricCipherCtx für die Verwendung eines übergebenen symmetrischen Schlüssels zu konfigurieren [SWS_CRYPT_50138]. Als Eingabeparameter nimmt die Funktion den zu nutzenden Schlüssel als Smart Pointer key vom Typ SymmetricKey::Sptr entgegen. Der Aufruf erfolgt synchron und gibt ein ara::core::Result<void> zurück, welches bei erfolgreicher Zuweisung leer ist oder im Fehlerfall einen Fehlercode bereitstellt [SWS_CRYPT_50138]. Die Deklaration ist über den Header ara/crypto/cryp/symmetric_cipher_ctx.h eingebunden.
Fehlerbehandlung
Die Fehlerbehandlung garantiert Rollback-Semantik, sodass der Kontext bei einem Scheitern der Zuweisung in seinem vorherigen Zustand verbleibt [SWS_CRYPT_50138]. Es sind zwei spezifische Fehler definiert:
ara::crypto::CryptoErrc::kUnsupported: Tritt auf, wenn der Kontext ausschließlich die Zuweisung eines Schlüssels über einen KeySlot unterstützt [SWS_CRYPT_50138].
ara::crypto::CryptoErrc::kIncompatibleObject: Wird zurückgegeben, wenn das übergebene Schlüsselobjekt nicht mit dem Kontext kompatibel ist [SWS_CRYPT_50138].
Nebenläufigkeit und Zusammenspiel
Die virtuelle Funktion ist als noexcept definiert, gilt als Exception-safe und ist spezifikationsgemäß thread-safe ausgeführt [SWS_CRYPT_50138]. Ähnliche Schnittstellen zur Zuweisung von SymmetricKey::Sptr finden sich in verwandten Krypto-Kontexten wie AuthCipherCtx[SWS_CRYPT_23911] sowie SymmetricKeyWrapperCtx[SWS_CRYPT_24018]. Das Zusammenspiel mit Schlüsselbehältern verdeutlichen zudem Kontextklassen, die alternativ KeySlot::Sptr akzeptieren [SWS_CRYPT_50034].
Dieser Nutzungshinweis wurde automatisch auf Basis der AUTOSAR-Spezifikation R25-11 generiert.
Initialize the context for a new encryption or decryption and set the IV used by the context.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 33beff56357bHerkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung
Die Methode Start initialisiert den Kontext ara::crypto::cryp::SymmetricCipherCtx für eine neue synchrone Ver- oder Entschlüsselungsoperation und setzt den zugehörigen Initialisierungsvektor (IV) bzw. Nonce-Wert [SWS_CRYPT_23625]. Über den Parameter transformDirection wird die Transformationsrichtung festgelegt, während iv den Initialisierungsvektor als ReadOnlyMemRegion bereitstellt [SWS_CRYPT_23625]. Die zulässige Größe des Puffers kann vorab über die Methoden GetMinimumInputIvSize() und GetMaximumInputIvSize() abgefragt werden [SWS_CRYPT_23625]. Der Aufruf gibt ein ara::core::Result<void> zurück, ist als noexcept deklariert und gilt als ausnahmesicher (exception safe) [SWS_CRYPT_23625].
Fehlerbehandlung
Im Fehlerfall wird ein Fehlercode mit Rollback-Semantik zurückgegeben [SWS_CRYPT_23625]:
ara::crypto::CryptoErrc::kUninitializedContext: Der Kontext wurde zuvor nicht durch Zuweisung eines Schlüssels initialisiert [SWS_CRYPT_23625].
ara::crypto::CryptoErrc::kInvalidInputSize: Die übergebene IV-Größe wird nicht unterstützt [SWS_CRYPT_23625].
ara::crypto::CryptoErrc::kUnsupported: Das Setzen eines IV in der angegebenen Transformationsrichtung oder die Stromverarbeitung wird vom Kontext nicht unterstützt [SWS_CRYPT_23625].
ara::crypto::CryptoErrc::kEmptyKeySlot: Ein konfigurierter KeySlot ist gegenwärtig leer [SWS_CRYPT_23625].
ara::crypto::CryptoErrc::kUsageViolation: Die zulässige Schlüsselverwendung umfasst nicht kAllowDataEncryption für die Verschlüsselung bzw. kAllowDataDecryption für die Entschlüsselung [SWS_CRYPT_23625].
ara::crypto::CryptoErrc::kIncompatibleObject: Der Schlüsseltyp ist inkompatibel zur Transformation oder Transformationsrichtung [SWS_CRYPT_23625].
ara::crypto::CryptoErrc::kBusyResource: Eine benötigte Ressource ist belegt [SWS_CRYPT_23625].
Nebenläufigkeit und Zusammenspiel
Die Funktion ist als threadsicher (thread-safe) spezifiziert [SWS_CRYPT_23625]. Im Ablauf einer Stream-Verarbeitung fungiert Start als initiierender Schritt, dem beispielsweise Positionierungsoperationen via Seek[SWS_CRYPT_23613] oder die Finalisierung über FinishEncrypt[SWS_CRYPT_23618] nachfolgen.
Dieser Text wurde durch ein KI-System auf Basis der AUTOSAR-Spezifikation R25-11 generiert.
the transformation direction, i.e., encryption or decryption
iv
an Initialization Vector (IV) or "nonce" value. The allowed size of the IV can be queried using the functions GetMinimumInputIvSize() and GetMaximumInputIvSize().
rollback_semantics if the context does not support setting an IV in the given transform Direction or if stream processing is not supported by the context
rollback_semantics if the allowed usage of the key does not include kAllowData Encryption for encryption, or kAllowDataDecryption for decryption, respectively
Initialize the context for a new encryption or decryption. An IV is either not required for this context in this transformation direction, or set by the context itself.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 09affb4844e4Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung
Die Methode Start initialisiert eine Instanz von ara::crypto::cryp::SymmetricCipherCtx synchron für eine anstehende Ver- oder Entschlüsselung ([SWS_CRYPT_50044]). Sie kommt zum Einsatz, wenn für die über den Parameter transformDirection vorgegebene Transformationsrichtung kein Initialisierungsvektor (IV) nötig ist oder der Kontext diesen selbst erzeugt ([SWS_CRYPT_50044]). Verlangt der Kontext in der gewählten Richtung hingegen einen expliziten IV, muss die Überladung mit IV-Parameter aufgerufen werden ([SWS_CRYPT_23625]).
Fehlerbehandlung und Nebenläufigkeit
Die Operation ist als Thread-sicher und Exception-sicher spezifiziert ([SWS_CRYPT_50044]). Bei einem Fehler gibt die Funktion ein ara::core::Result<void> mit Rollback-Semantik zurück ([SWS_CRYPT_50044]). Relevante Fehlerursachen sind:
ara::crypto::CryptoErrc::kUninitializedContext: Dem Kontext wurde vorab kein Schlüssel zugewiesen ([SWS_CRYPT_50044]).
ara::crypto::CryptoErrc::kUnsupported: Die Stream-Verarbeitung wird nicht unterstützt oder die Operation erfordert in dieser Richtung zwingend das Setzen eines IV ([SWS_CRYPT_50044]).
ara::crypto::CryptoErrc::kUsageViolation: Der Schlüssel besitzt nicht die erforderliche Berechtigung kAllowDataEncryption bzw. kAllowDataDecryption ([SWS_CRYPT_50044]).
ara::crypto::CryptoErrc::kIncompatibleObject oder ara::crypto::CryptoErrc::kEmptyKeySlot: Der Schlüsseltyp passt nicht zur Transformation bzw. der konfigurierte Schlüsselplatz ist leer ([SWS_CRYPT_50044]).
ara::crypto::CryptoErrc::kBusyResource: Eine erforderliche Ressource ist derzeit belegt ([SWS_CRYPT_50044]).
Zusammenspiel
Nach erfolgreicher Initialisierung kann der Datenstrom bei Bedarf über Seek positioniert werden ([SWS_CRYPT_23613]). Wurde der IV durch den Kontext selbst festgelegt, wird dieser am Ende der Verschlüsselung über FinishEncrypt an den Aufrufer übergeben ([SWS_CRYPT_23618]).
Dieser Nutzungshinweis wurde automatisiert auf Basis der AUTOSAR-Spezifikation R25-11 erstellt.
rollback_semantics if the allowed usage of the key does not include kAllowData Encryption for encryption, or kAllowDataDecryption for decryption, respectively
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 5cb4a9bba31dHerkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die synchrone Methode Update() dient in ara::crypto::cryp::SymmetricCipherCtx dem schrittweisen Ver- oder Entschlüsseln von Teildatenströmen [SWS_CRYPT_50139]. Sie verarbeitet einen Eingabepuffer in (Typ ReadOnlyMemRegion) mit Klar- oder Geheimtext und schreibt die transformierten Daten in den Ausgabepuffer out (Typ ReadWriteMemRegion) [SWS_CRYPT_50139]. Der Rückgabewert ara::core::Result<std::size_t> liefert im Erfolgsfall die exakte Anzahl der tatsächlich in out geschriebenen Bytes, welche geringer als die Gesamtkapazität des Zielpuffers sein kann [SWS_CRYPT_50139].
Für den Aufruf gelten festgelegte Vorbedingungen und Pufferregeln:
Ablaufreihenfolge: Die Datenverarbeitung muss zwingend zuvor mit der Methode Start() initiiert worden sein; andernfalls schlägt der Aufruf mit ara::crypto::CryptoErrc::kProcessingNotStarted fehl [SWS_CRYPT_50139].
Pufferdimensionierung: Die maximal pro Einzelaufruf zulässige Eingabegröße kann über GetMaximumChunkSize() ermittelt werden [SWS_CRYPT_50050]; ungültige Puffergrößen quittiert die Methode mit ara::crypto::CryptoErrc::kInvalidInputSize[SWS_CRYPT_50139]. Der erforderliche Ausgabepuffer lässt sich über GetRequiredOutputBufferSize() abfragen [SWS_CRYPT_50139]; ein zu kleiner Puffer führt zu ara::crypto::CryptoErrc::kInsufficientCapacity[SWS_CRYPT_50139].
Streaming-Unterstützung: Unterstützt der konkrete Kontext keine kontinuierliche Stream-Verarbeitung, schlägt der Aufruf mit ara::crypto::CryptoErrc::kUnsupported fehl [SWS_CRYPT_50139].
Die Schnittstelle ist als thread-safe sowie exception safe spezifiziert und garantiert bei jedem Fehler eine Rollback-Semantik [SWS_CRYPT_50139]. Im Verarbeitungszyklus wirkt sie mit GetMaximumChunkSize() sowie abschließenden Operationen wie Finish() oder FinishEncrypt() zusammen [SWS_CRYPT_50050].
Dieser Nutzungshinweis wurde automatisiert anhand der AUTOSAR-Spezifikation R25-11 generiert.
an input data buffer containing a part of the ciphertext or plaintext
Parameter (out)
Parameter
Beschreibung
out
an output data buffer that the encrypted or decrypted data will be written into. The required size of this buffer can be queried using GetRequiredOutputBufferSize()
gemini-3.8-flash-medium· 2026-10-13