DEENESPTFRRUARHIKOZHNL
AUTOSAR_AP_EXP_SWArchitecture FIG-08d96388d8a4e92c 861 × 444 px 1 Release(s)

Figure 9.60: ExtensionService and CryptoContext Interfaces (1 of 2)

SHA-256 Inhalts-Fingerabdruck: 08d96388d8a4e92cf455ce3dda04d4cd71f9334235aa4caf95cf86d9d2531853
✦ KI-generierte Bildanalyse & technische Beschreibung Modell: gemini-3.8-flash (via agy) · Rezept figure-series@1 · erstellt am 2026-10-08

1. Diagrammtyp & Architektur-Kontext

  • Klassifikation: UML-Klassendiagramm / Schnittstellen-Realisierungsdiagramm.
  • Funktionale Einordnung: AUTOSAR Adaptive Platform (Release R22-11), Functional Cluster Cryptography (ara::crypto).
  • Technischer Zweck: Definition der nativen Programmierschnittstellen (C++ Native Interfaces) für kryptografische Kontexte (KEM, Key-Wrapping, RNG) sowie deren Verknüpfung mit dem gemeinsamen Metadaten- und Schlüsselanalyse-Dienst ExtensionService.

2. Komponenten, Entitäten & Schnittstellen

Akteure & Komponenten
  • Adaptive Application: Konsumierende Anwendungsentität (Prozess im User-Space).
  • Cryptography («aapFunctionalCluster», daemon-based): Bereitstellende Plattform-Instanz des Adaptive Core. Die Realisierung ist architektonisch als Hintergrunddienst (Daemon) ausgewiesen, typischerweise mit Prozessisolation und Hardware-Anbindung (z. B. HSM/SHE über Treiber).
Schnittstellen & Klassen («aapAPI, aapNativeInterface»)
  • KeyEncapsulatorPublicCtx (Schnittstellen-Namespace CryptoContext): Asymmetrische Schlüsselkapselung (KEM - Key Encapsulation Mechanism, Sender-Rolle mit Public Key).
    • Operationen: AddKeyingData(), Encapsulate(), GetEncapsulatedSize(), GetExtensionService(), GetKekEntropy(), Reset(), SetKey().
  • KeyDecapsulatorPrivateCtx (Schnittstellen-Namespace CryptoContext): Asymmetrische Schlüsselentkapselung (KEM, Empfänger-Rolle mit Private Key).
    • Operationen: DecapsulateKey(), DecapsulateSeed(), GetEncapsulatedSize(), GetExtensionService(), GetKekEntropy(), Reset(), SetKey().
  • SymmetricKeyWrapperCtx (Schnittstellen-Namespace CryptoContext): Symmetrisches Schützen, Exportieren und Importieren von kryptografischem Schlüsselmaterial (Key Wrap Algorithms, z. B. AES-KW).
    • Operationen: CalculateWrappedKeySize(), GetExtensionService(), GetMaxTargetKeyLength(), GetTargetKeyGranularity(), Reset(), SetKey(), UnwrapConcreteKey(), UnwrapKey(), UnwrapSeed(), WrapKeyMaterial().
  • RandomGeneratorCtx (Schnittstellen-Namespace CryptoContext): Kryptografischer Pseudozufalls- oder Hardware-Zufallsgenerator (CSPRNG/TRNG).
    • Operationen: AddEntropy(), Generate(), GetExtensionService(), Seed(), SetKey().
  • ExtensionService: Begleitende Abfrage-Schnittstelle für den Zustand und die Attribute des im jeweiligen Kontext gebundenen Schlüssels.
    • Operationen: GetActualKeyBitLength(), GetActualKeyCOUID(), GetAllowedUsage(), GetMaxKeyBitLength(), GetMinKeyBitLength(), IsKeyAvailable(), IsKeyBitLengthSupported().
Beziehungen & Abhängigkeiten
  • Abhängigkeit («use»): Adaptive Application nutzt alle fünf Interfaces direkt (KeyEncapsulatorPublicCtx, KeyDecapsulatorPrivateCtx, SymmetricKeyWrapperCtx, RandomGeneratorCtx, ExtensionService).
  • Realisierung (--▷ gestrichelt mit geschlossener Hohlspitze): Der funktionale Cluster Cryptography implementiert alle genannten Interfaces.
  • Assoziation / Delegation: Jeder kryptografische Kontext bietet eine Methode GetExtensionService() an, über die eine Instanz/Referenz von ExtensionService für kontextbezogene Schlüsselmetadaten erreichbar ist.

3. Dynamisches Verhalten & Sequenzablauf

Kontext-Lebenszyklus (Zustands- und Ablaufmuster)
  1. Initialisierung & Schlüsselbindung:
    • Aufruf von SetKey() bindet ein persistentes oder flüchtiges Schlüsselobjekt (ara::crypto::keys::Key bzw. Key Slot) an den Kontext.
    • Über GetExtensionService() validiert die Applikation Schlüsselmetadaten (IsKeyAvailable(), GetAllowedUsage(), Bitlängen).
    • Bei Zufallsgeneratoren (RandomGeneratorCtx) erfolgt die Initialisierung alternativ über Seed() und optionale Entropiezufuhr (AddEntropy()).
  2. Kapselung / Wrapping (Transaktional):
    • KEM: AddKeyingData() → Encapsulate() (Sender generiert Shared Secret + Ciphertext) bzw. DecapsulateKey() / DecapsulateSeed() (Empfänger rekonstruiert Schlüsselmaterial).
    • Key-Wrapping: CalculateWrappedKeySize() → WrapKeyMaterial() bzw. UnwrapKey() / UnwrapConcreteKey().
    • Zufallserzeugung: Aufruf von Generate() zur Ausgabe pseudozufälliger Bytes.
  3. Bereinigung:
    • Reset() verwirft interne Puffer, Zwischenzustände und temporäres Schlüsselmaterial im Kontext für die Wiederverwendung.

4. Normative Relevanz & Entwickler-Hinweise

  • Architekturmodell & Prozessgrenzen (daemon-based): Die Implementierung erfolgt über den Cryptography-Daemon. Methodenaufrufe können Interprozesskommunikation (IPC) zu einem privilegierten Sicherheitsdämon oder Hardware-Sicherheitsmodul (HSM) triggern. Zeitkritische Pfade müssen IPC-Latenzen berücksichtigen.
  • Metadaten-Entkopplung via ExtensionService: Kontext-Interfaces führen keine redundanten Methoden zur Schlüsselabfrage. Prüfungen auf Schlüsselattribute (COUID, Crypto Object Unique Identifier, erlaubte Key-Usage-Flags nach AUTOSAR Key Management) müssen strikt über den abgerufenen ExtensionService erfolgen.
  • Zustandssicherheit (State Machine): Alle Kontexte sind zustandsbehaftet. Vor einem erneuten Start() oder Schlüsselwechsel via SetKey() muss im Fehler- oder Abbruchfall zwingend Reset() ausgeführt werden, um Speicherlecks und undefinierte Zustände im Daemon/HSM zu verhindern.
  • Polymorphie & Typgranularität: SymmetricKeyWrapperCtx unterscheidet explizit zwischen rohem Schlüsselmaterial (WrapKeyMaterial()), generischen Schlüsseln (UnwrapKey()), typisierten Schlüsseln (UnwrapConcreteKey()) und Seeds (UnwrapSeed()), was strikte Typisierungsprüfungen zur Compile- und Laufzeit erzwingt.

Versionsvergleich KI-generiert · gemini-3.8-flash (via agy)

R24-11 → R25-11 redaktionell Vorgänger: FIG-e3d9371d1b4a98b2
  • Tabellenlayout / Umbruch: Das am oberen Bildrand als Umbruchfragment sichtbare Tabellenfragment (Zeilen Start und Update) wurde entfernt. Das verbleibende UML-Klassendiagramm ist unverändert.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

«aapFunctionalCluster» | Cryptography daemon-based | CryptoContext | «aapAPI,aapNativeInterf... KeyDecapsulatorPrivateCtx | + DecapsulateKey() + DecapsulateSeed() + GetEncapsulatedSize() + GetExtensionService() + GetKekEntropy() + Reset() + SetKey() | CryptoContext | «aapAPI,aapNativeInterf... | KeyEncapsulatorPublicCtx | + AddKeyingData() + Encapsulate() + GetEncapsulatedSize() + GetExtensionService() + GetKekEntropy() + Reset() + SetKey() | CryptoContext | «aapAPI,aapNativeInt... | RandomGeneratorCtx | + AddEntropy() + Generate() + GetExtensionService() + Seed() + SetKey() | CryptoContext | «aapAPI,aapNativeInterface» | SymmetricKeyWrapperCtx | + CalculateWrappedKeySize() + GetExtensionService() + GetMaxTargetKeyLength() + GetTargetKeyGranularity() + Reset() + SetKey() + UnwrapConcreteKey() + UnwrapKey() + UnwrapSeed() + WrapKeyMaterial() | «aapAPI,aapNativeInterf... | ExtensionService | + GetActualKeyBitLength() + GetActualKeyCOUID() + GetAllowedUsage() + GetMaxKeyBitLength() + GetMinKeyBitLength() + IsKeyAvailable() + IsKeyBitLengthSupported() | Adaptive Application | «use» «use» «use» «use» «use»

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R25-11 AUTOSAR_AP_EXP_SWArchitecture S. 106 9.60 Figure 9.60: ExtensionService and CryptoContext Interfaces (1 of 2)