Ermöglicht das sichere Verpacken und Entpacken von Schlüsseln mittels symmetrischer Schlüsselverschlüsselung.
Kontext
Die Klasse SymmetricKeyWrapperCtx definiert die standardisierte Schnittstelle für symmetrische Schlüsselwicklungs-Algorithmen (Key Wrapping) innerhalb der AUTOSAR Adaptive Platform. Ihre zentrale Verantwortung besteht im kryptografischen Schutz von Schlüsseln beim Export sowie bei der Wiederherstellung verpackter Schlüssel für den internen Gebrauch. Hierbei interagiert die Klasse primär mit Schlüsselverschlüsselungsschlüsseln (Key Encryption Keys, KEK), die entweder als flüchtiges Schlüsselobjekt vom Typ SymmetricKey oder persistent über einen KeySlot bereitgestellt werden [SWS_CRYPT_24018], [SWS_CRYPT_50034]. Beim Verpacken nimmt der Kontext ein generisches CryptoObject entgegen [SWS_CRYPT_24014], während die Entpackungsoperation ein neues, einsatzbereites SymmetricKey-Objekt erzeugt und zurückliefert [SWS_CRYPT_24016].
Lebenszyklus
Instanzen von SymmetricKeyWrapperCtx werden über den typisierten Smart-Pointer Sptr (ein Alias für std::shared_ptr<SymmetricKeyWrapperCtx>) verwaltet [SWS_CRYPT_24001]. Die tatsächliche Objekterzeugung dürfte über eine zuständige Provider-Factory erfolgen, da die Klasse eine abstrakte Schnittstelle mit rein virtuellen Methoden darstellt. Frage Q-7b9a1007da43ddcd (offen) Sämtliche Elementfunktionen der Schnittstelle sind als ausnahmesicher (exception safe) sowie threadsicher (thread-safe) spezifiziert, was die sichere Verwendung in nebenläufigen Softwarekomponenten ermöglicht [SWS_CRYPT_24014], [SWS_CRYPT_24016].
Im Lebenszyklus durchläuft der Kontext zwei wesentliche Phasen: Unmittelbar nach der Instanziierung befindet er sich in einem nicht initialisierten Zustand. In dieser Phase schlagen kryptografische Operationen sowie Pufferberechnungen mit dem Fehler kUninitializedContext fehl [SWS_CRYPT_50035], [SWS_CRYPT_24014]. Erst durch den erfolgreichen Aufruf von SetKey mit einem kompatiblen KEK oder KeySlot wechselt der Kontext in den betriebsbereiten Zustand, in dem Schlüssel sicher verpackt oder entpackt werden können [SWS_CRYPT_24018], [SWS_CRYPT_50034].
Nutzungspfad
Der reguläre Ablauf zur Verpackung eines Schlüssels erfordert eine koordinierte Abfolge aus Konfiguration, Pufferprüfung und Ausführung. Zunächst konfiguriert die Anwendung den Kontext über SetKey mit dem gewünschten KEK-Objekt [SWS_CRYPT_24018] oder bindet einen entsprechenden KeySlot an [SWS_CRYPT_50034]. Im zweiten Schritt ermittelt die Anwendung über GetRequiredWrappedKeyBufferSize die maximal benötigte Ausgabepuffergröße für das zu verpackende Zielobjekt [SWS_CRYPT_50035]. Nachdem ein entsprechend dimensionierter Speicherbereich (ReadWriteMemRegion) bereitgestellt wurde, erfolgt der Aufruf von Wrap, der die serialisierten und verschlüsselten Schlüsseldaten in den Puffer schreibt und die exakte Bytezahl zurückgibt [SWS_CRYPT_24014].
Sequenzdiagramm: Typische Aufrufabfolge zur symmetrischen Schlüsselverpackung. Quellen: [SWS_CRYPT_24018], [SWS_CRYPT_50035], [SWS_CRYPT_24014]
Für den komplementären Vorgang des Entpackens übergibt die Anwendung nach der Konfiguration mittels SetKey den Eingabepuffer mit den gewickelten Daten an UnwrapSymmetricKey [SWS_CRYPT_24016]. Dabei müssen die Ziel-Algorithmenkennung (targetAlgId) sowie die erlaubten Nutzungsflags (allowedUsage) für den neu zu erzeugenden symmetrischen Schlüssel explizit festgelegt werden [SWS_CRYPT_24016].
Fehlerszenarien
Methoden der Klasse signalisieren Fehler über den Rückgabetyp ara::core::Result mit Rollback-Semantik. Zu den zentralen Fehlerszenarien gehören:
- Fehlende Initialisierung: Werden
GetRequiredWrappedKeyBufferSize, Wrap oder UnwrapSymmetricKey vor einer erfolgreichen Schlüsselzuweisung aufgerufen, liefern sie ara::crypto::CryptoErrc::kUninitializedContext [SWS_CRYPT_50035], [SWS_CRYPT_24014], [SWS_CRYPT_24016].
- Verletzung von Nutzungsrechten: Beim Setzen des KEK muss dieser mindestens die Berechtigung
kAllowKeyWrapping oder kAllowKeyUnwrapping besitzen, andernfalls schlägt SetKey mit ara::crypto::CryptoErrc::kUsageViolation fehl [SWS_CRYPT_24018]. Bei Wrap führt das Fehlen von kAllowKeyWrapping auf dem KEK oder das Fehlen von kAllowSecuredExport auf dem zu verpackenden Objekt ebenfalls zu kUsageViolation [SWS_CRYPT_24014]. Beim Entpacken wird geprüft, ob der KEK kAllowKeyUnwrapping erlaubt [SWS_CRYPT_24016].
- Inkompatibilitäten und Pufferfehler: Ist der Zielpuffer für
Wrap zu klein, wird ara::crypto::CryptoErrc::kInsufficientCapacity gemeldet [SWS_CRYPT_24014]. Fehlerhafte Schlüsselformate oder inkompatible Typen führen zu ara::crypto::CryptoErrc::kInvalidArgument [SWS_CRYPT_24014], [SWS_CRYPT_24016]. Unterstützt der Kontext nur Slots bzw. nur Schlüsselobjekte, meldet SetKey den Fehler kUnsupported [SWS_CRYPT_24018], [SWS_CRYPT_50034].
- Ressourcenkonflikte und leere Slots: Greift die Operation auf eine belegte Ressource zu, wird
ara::crypto::CryptoErrc::kBusyResource zurückgegeben; ist der referenzierte KeySlot leer, resultiert dies in ara::crypto::CryptoErrc::kEmptyKeySlot [SWS_CRYPT_24014], [SWS_CRYPT_24016].
Dieser Leitfaden wurde durch eine KI erstellt und stützt sich ausschließlich auf die AUTOSAR-Spezifikation.
gemini-3.8-flash-medium· 2026-10-13