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-NamespaceCryptoContext): Asymmetrische Schlüsselkapselung (KEM - Key Encapsulation Mechanism, Sender-Rolle mit Public Key).- Operationen:
AddKeyingData(),Encapsulate(),GetEncapsulatedSize(),GetExtensionService(),GetKekEntropy(),Reset(),SetKey().
- Operationen:
KeyDecapsulatorPrivateCtx(Schnittstellen-NamespaceCryptoContext): Asymmetrische Schlüsselentkapselung (KEM, Empfänger-Rolle mit Private Key).- Operationen:
DecapsulateKey(),DecapsulateSeed(),GetEncapsulatedSize(),GetExtensionService(),GetKekEntropy(),Reset(),SetKey().
- Operationen:
SymmetricKeyWrapperCtx(Schnittstellen-NamespaceCryptoContext): 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().
- Operationen:
RandomGeneratorCtx(Schnittstellen-NamespaceCryptoContext): Kryptografischer Pseudozufalls- oder Hardware-Zufallsgenerator (CSPRNG/TRNG).- Operationen:
AddEntropy(),Generate(),GetExtensionService(),Seed(),SetKey().
- Operationen:
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().
- Operationen:
Beziehungen & Abhängigkeiten
- Abhängigkeit (
«use»):Adaptive Applicationnutzt alle fünf Interfaces direkt (KeyEncapsulatorPublicCtx,KeyDecapsulatorPrivateCtx,SymmetricKeyWrapperCtx,RandomGeneratorCtx,ExtensionService). - Realisierung (
--▷gestrichelt mit geschlossener Hohlspitze): Der funktionale ClusterCryptographyimplementiert alle genannten Interfaces. - Assoziation / Delegation: Jeder kryptografische Kontext bietet eine Methode
GetExtensionService()an, über die eine Instanz/Referenz vonExtensionServicefür kontextbezogene Schlüsselmetadaten erreichbar ist.
3. Dynamisches Verhalten & Sequenzablauf
Kontext-Lebenszyklus (Zustands- und Ablaufmuster)
- Initialisierung & Schlüsselbindung:
- Aufruf von
SetKey()bindet ein persistentes oder flüchtiges Schlüsselobjekt (ara::crypto::keys::Keybzw. Key Slot) an den Kontext. - Über
GetExtensionService()validiert die Applikation Schlüsselmetadaten (IsKeyAvailable(),GetAllowedUsage(), Bitlängen). - Bei Zufallsgeneratoren (
RandomGeneratorCtx) erfolgt die Initialisierung alternativ überSeed()und optionale Entropiezufuhr (AddEntropy()).
- Aufruf von
- 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.
- KEM:
- 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 abgerufenenExtensionServiceerfolgen. - Zustandssicherheit (State Machine): Alle Kontexte sind zustandsbehaftet. Vor einem erneuten
Start()oder Schlüsselwechsel viaSetKey()muss im Fehler- oder Abbruchfall zwingendReset()ausgeführt werden, um Speicherlecks und undefinierte Zustände im Daemon/HSM zu verhindern. - Polymorphie & Typgranularität:
SymmetricKeyWrapperCtxunterscheidet 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.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.