AUTOSAR_EXP_SWArchitecture
FIG-46117b03abf1f5a4
930 × 979 px
1 Release(s)
Figure 9.47: ExtensionService and CryptoContext Interfaces (1 of 2)
SHA-256 Inhalts-Fingerabdruck:
46117b03abf1f5a467b4fb18d2c4b503b1e1e99ac8e5e89864d1cf32b7d74389
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-description@2 · erstellt am 2026-10-07
1. Diagrammtyp & Architektur-Kontext
- Klassifikation: Hybrides Spezifikationsdiagramm bestehend aus einer tabellarischen Schnittstellen- und Methodenübersicht (oben) und einem UML-Klassendiagramm / Schnittstellen-Realisierungsdiagramm (unten).
- Funktionale Einordnung: AUTOSAR Adaptive Platform (Release R21-11), Functional Cluster Cryptography (
ara::crypto). - Technischer Zweck: Definition der nativen Programmierschnittstellen (C++ Native Interfaces) für kryptografische Kontexte (KEM, Key-Wrapping, RNG, MAC) 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:
- Keyed MAC Context (tabellarisch definiert, z. B.
MessageAuthnCodeCtx):- Operationen:
Check(),Finish(),GetDigest(),GetDigestService(),Reset(),SetKey(),Start(),Update().
- 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).
- Aufruf von
- Datenstrom-Verarbeitung (Streaming am Beispiel MAC-Kontext):
Start()initialisiert den Puffer/IV für einen neuen Rechenlauf.Update()verarbeitet Nachrichten-Chunks schrittweise (iterativ, synchron/asynchron gepuffert).Finish()schließt die Berechnung ab und erzeugt das Digest-/Signaturobjekt; alternativ vergleichtCheck()das Resultat direkt gegen eine erwartete Signatur.
- 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().
- 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.