AUTOSAR_EXP_SWArchitecture
FIG-b7284cc36aba3396
765 × 444 px
1 Release(s)
Figure 9.47: DigestService and CryptoContext Interfaces
SHA-256 Inhalts-Fingerabdruck:
b7284cc36aba339610239ffa58d77e5e9d25805c3f236ea915dcc12223f76303
✦
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 / Schnittstellendiagramm (Strukturdiagramm der AUTOSAR Adaptive Platform).
- Technischer Zweck: Spezifikation der standardisierten C++-Schnittstellen (
«aapAPI,aapNativeInterface») für kryptografische Primitiven und Streaming-Kontexte innerhalb des funktionalen Clusters Cryptography (ara::crypto). - Architektur-Einordnung: Veranschaulichung der Client-Server- bzw. API-Beziehung zwischen einer
Adaptive Application(Nutzer) und dem daemon-basierten Plattform-ServiceCryptography(«aapFunctionalCluster»). Die Interfaces kapseln Zustandsautomaten für block- und streambasierte Krypto-Operationen (AEAD/Authenticated Ciphers, Message Authentication Codes, kryptografische Hashfunktionen) sowie den gemeinsamen Abfragedienst für Digest-Zustände (DigestService).
2. Komponenten, Entitäten & Schnittstellen
Akteure & Komponenten
Adaptive Application: Konsument der kryptografischen Dienste im Benutzer-Kontext (User Space Process).«aapFunctionalCluster» Cryptography(daemon-based): Bereitstellende Plattform-Instanz des Adaptive Core. Realisiert die hardware- oder softwaregestützten Krypto-Treiber/Engines (z. B. HSM, Crypto-Daemon, vHSM/PKCS#11).
Schnittstellen («aapAPI,aapNativeInterface»)
AuthCipherCtx(Scope:CryptoContext/ara::crypto::cryp::AuthCipherCtx):- Authenticated Encryption with Associated Data (AEAD) Kontext.
- Methoden:
Check(),GetDigest(),GetDigestService(),GetMaxAssociatedDataSize(),GetTransformation(),ProcessConfidentialData(),Reset(),SetKey(),Start(),UpdateAssociatedData().
HashFunctionCtx(Scope:CryptoContext/ara::crypto::cryp::HashFunctionCtx):- Streaming-Interface für unkeyed Hashverfahren (z. B. SHA-2, SHA-3).
- Methoden:
Finish(),GetDigest(),GetDigestService(),Start(),Update().
MessageAuthnCodeCtx(Scope:CryptoContext/ara::crypto::cryp::MessageAuthnCodeCtx):- Streaming-Interface für symmetrische Authentisierungscodes (z. B. HMAC, CMAC).
- Methoden:
Check(),Finish(),GetDigest(),GetDigestService(),Reset(),SetKey(),Start(),Update().
DigestService(Scope:BlockService/ara::crypto::cryp::DigestService):- Status- und Verifikationsschnittstelle für Digest-erzeugende Kontexte; zugänglich u. a. via
GetDigestService()der Krypto-Kontexte. - Methoden:
Compare(),GetDigestSize(),IsFinished(),IsStarted().
- Status- und Verifikationsschnittstelle für Digest-erzeugende Kontexte; zugänglich u. a. via
Beziehungen & Kardinalitäten
- Nutzung (
«use»/ Dependency):Adaptive Applicationgreift über direkte Abhängigkeitspfeile auf alle vier Schnittstellen zu. - Schnittstellen-Realisierung (Interface Realization): Der Cluster
Cryptographyimplementiert (implements/ gestrichelte Linie mit geschlossener Dreiecksspitze)AuthCipherCtx,HashFunctionCtx,MessageAuthnCodeCtxsowieDigestService. - Strukturelle Kopplung:
AuthCipherCtx,HashFunctionCtxundMessageAuthnCodeCtxaggregieren/referenzierenDigestServicetypischerweise über ihre MethodeGetDigestService(), um Verifikations- und Statusabfragen (Compare,IsFinished) thread-sicher und modular auszulagern.
3. Dynamisches Verhalten & Sequenzablauf
Die Kontexte erzwingen ein definiertes Zustandsmodell für Streaming-Operationen:
- Initialisierung & Parametrierung:
- Schlüsselgebundene Kontexte (
AuthCipherCtx,MessageAuthnCodeCtx) fordern zunächstSetKey(). - Start des Operationszyklus via
Start()(Initialvektor/Nonce-Übergabe je nach Algorithmus). DigestService::IsStarted()wechselt auftrue,IsFinished()auffalse.
- Schlüsselgebundene Kontexte (
- Datenverarbeitung (Streaming / Chunking):
HashFunctionCtx/MessageAuthnCodeCtx: Iterative Aufrufe vonUpdate()mit Nutzdaten-Chunks.AuthCipherCtx: Getrennte Verarbeitung von Zusatzdaten viaUpdateAssociatedData()und Nutzlast viaProcessConfidentialData().
- Abschluss & Verifikation:
- Hash / MAC Erzeugung:
Finish()schließt die Berechnung ab (IsFinished() == true),GetDigest()extrahiert das Ergebnis. - MAC / AEAD Verifikation (In-Place Check): Statt Klartext-Extraktion wird
Check()oderDigestService::Compare()genutzt (verhindert Timing-Side-Channel-Angriffe über konstante Laufzeitvergleiche).
- Hash / MAC Erzeugung:
- Zurücksetzen:
Reset()versetzt den Kontext in den uninitialisierten Zustand zur Wiederverwendung des Objekts ohne Neuzuweisung des Heap-Speichers.
4. Normative Relevanz & Entwickler-Hinweise
- Timing-Side-Channels & Constant-Time Verification: Applikationsentwickler müssen zur MAC- oder Tag-Verifikation zwingend
Check()bzw.DigestService::Compare()verwenden, anstatt den Digest überGetDigest()abzurufen und mittelsmemcmp()bzw.std::equalmanuell zu vergleichen. - IPC- & Daemon-Overhead: Da der funktionale Cluster als
daemon-basedgekennzeichnet ist, können Kontextoperationen je nach Stack-Implementierung IPC-Übergänge (z. B. Unix Domain Sockets, Shared Memory) zum Krypto-Daemon erfordern. Für Hochdurchsatzdaten (z. B. Videostreams, große Flash-Images) ist Chunk-Streaming (Update()) mit optimierten Puffergrößen erforderlich, um IPC-Latenzen zu minimieren. - Key-Slots & Handle-Sicherheit:
SetKey()akzeptiertara::crypto::keys::KeySlotbzw. symmetrische Schlüsselobjekte. Schlüsselmaterial verbleibt im sicheren Speicher des Daemons bzw. HSMs und wird nicht in den Adressraum der Adaptive Application kopiert. - Zustandssicherheit (State Machine Contract): Der Aufruf von
Update()nachFinish()ohne vorherigesStart()oderReset()führt zu Fehlern (ara::crypto::SecurityErrc::kProcessingNotStartedbzw. ungültigem Kontextzustand gemäß AUTOSAR SWS Cryptography). Vor Auswertung von Digest-Ergebnissen muss überDigestService::IsFinished()validiert werden.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.