AUTOSAR_CP_SWS_CryptoServiceManager
FIG-125ecbbb67a6863a
620 × 635 px
1 Release(s)
Figure 9.1: Sequence Diagram for Asynchronous Call with Callback
SHA-256 Inhalts-Fingerabdruck:
125ecbbb67a6863aac855078c6e22a0e4d1d3c28c4deb8fd63326c3890791c97
✦
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
- Diagrammtyp: UML-Sequenzdiagramm (Interaktionsdiagramm).
- Architektur-Ebene: AUTOSAR Classic Platform (CP), Security-Subsystem über drei Schichten:
- Application Layer: AUTOSAR Software-Component (SW-C) bzw. BSW-Nutzer.
- Service Layer: Crypto Service Manager (
CSM, BSW-Modul). - ECU Abstraction Layer: Crypto Interface (
CryIf, BSW-Modul). - Microcontroller Abstraction Layer (MCAL) / CDD: Crypto Driver (
Crypto, BSW-Modul).
- Funktionaler Zweck: Darstellung des zweiphasigen, nicht-blockierenden Kontrollflusses für asynchrone kryptografische Operationen (
CRYPTO_PROCESSING_ASYNC) mit asynchroner Ergebnisbenachrichtigung via Callback-Kaskade.
2. Komponenten, Entitäten & Schnittstellen
- Akteure & Modul-Instanzen:
Application: Applikations-SW-C bzw. aufrufendes BSW-Modul (z. B. SecOC, KeyM).«module» :Csm: Zentraler Einstiegspunkt für standardisierte Krypto-Dienste; kapselt Service-Verwaltung, Priorisierung und Job-Zuordnung.«module» :CryIf: Abstraktions- und Dispatcher-Schicht; routet logische Kanäle (ChannelId) auf physische Treiber (CryptoDriverObjectId).«module» :Crypto: Hardware-spezifischer Treiber (HSM-, SHE-, Coprozessor- oder Software-Engine).
- Schnittstellen & Operationen:
<Service>(): Platzhalter für typspezifische CSM-Service-APIs (z. B.Csm_Hash,Csm_Encrypt,Csm_MacGenerate) bzw. generische Job-Weiterleitungen (CryIf_ProcessJob/Crypto_ProcessJob).Crypto_ProcessJob(Std_ReturnType, uint32, Crypto_JobType**): Interne Kernoperation bzw. Treiber-Dispatcher-Schnittstelle zur asynchronen Abarbeitung des übergebenen Jobs (Crypto_JobType).callback with result: Kaskadierte Benachrichtigung über das Auftragsende (entspricht normativCryIf_CallbackNotification→Csm_CallbackNotification→ applikationsspezifischer Callback / RTE-Event).return(): Synchrone Rückgabe von Ausführungs- und Statuscodes (Std_ReturnType: z. B.E_OK,E_NOT_OK,CRYPTO_E_BUSY,CRYPTO_E_QUEUE_FULL).
3. Dynamisches Verhalten & Sequenzablauf
- Phase 1: Job-Initialisierung & Dispatching (synchron, blockierungsfrei):
- Die
Applicationstößt über<Service>()einen kryptografischen Auftrag an:Csman. :Csmvalidiert den Aufruf, erzeugt bzw. referenziert denCrypto_JobTypeund leitet ihn synchron an:CryIfweiter.:CryIfermittelt anhand der Kanal-Zuordnungstabelle den Zieltreiber und ruft<Service>()auf:Cryptoauf.:Cryptoreiht den Job in die interne Hardware-/Software-Queue ein und quittiert die Auftragsannahme unmittelbar mitreturn(E_OK).- Der Rückgabewert kaskadiert unverzüglich über
:CryIfund:Csmzurück an dieApplication. Die aufrufende Entität wird nicht blockiert.
- Die
- Phase 2: Asynchrone Ausführung:
:Cryptoverarbeitet den Job entkoppelt vom Aufruferkontext viaCrypto_ProcessJob(...). Die Ausführung erfolgt entweder hardwaregestützt (z. B. per HSM-DMA/Interrupt) oder zeitgesteuert im Kontext der zyklischenCrypto_MainFunction().
- Phase 3: Ergebnisrückmeldung via Callback-Kaskade:
- Nach Abschluss der Operation triggert
:Cryptoden Aufrufcallback with result(CryIf_CallbackNotification) an:CryIf. :CryIfleitet das Signal an:Csm(Csm_CallbackNotification) weiter.:Csmaktualisiert den internen Job-Zustand (CRYPTO_JOBSTATE_IDLE) und informiert dieApplicationüber den konfigurierten Callback (oder setzt ein RTE-Event).- Die Rückkehrpfade (
return()) der Callbacks laufen synchron von derApplicationüber:Csmund:CryIfzurück in den Kontext von:Crypto, um den Notification-Vorgang formal zu schließen.
- Nach Abschluss der Operation triggert
4. Normative Relevanz & Entwickler-Hinweise
- Puffer-Lebensdauer & Reentrancy:
- Datenpuffer (
inputPtr,outputPtrinnerhalb vonCrypto_JobType) müssen bis zum Eingang des finalen Callbacks im Speicher unverändert und gültig bleiben. Allokationen auf dem lokalen Task-Stack der Applikation führen zu undefiniertem Verhalten / Speicherkorruption.
- Datenpuffer (
- Ausführungskontext des Callbacks:
- Die Callback-Kette läuft typischerweise im Treiber-Kontext ab (ISR oder Task-Kontext der
Crypto_MainFunction). Der Applikations-Callback darf keine blockierenden Operationen, Mutex-Waits oder zeitintensiven Berechnungen ausführen, um Verletzungen von Task-Deadlines oder ISR-Latenzen zu verhindern.
- Die Callback-Kette läuft typischerweise im Treiber-Kontext ab (ISR oder Task-Kontext der
- Fehlerbehandlung:
- Ein synchrones
return(E_OK)garantiert ausschließlich die erfolgreiche Annahme bzw. Pufferung des Jobs, nicht dessen erfolgreiche kryptografische Berechnung. Das tatsächliche Operationsergebnis (Std_ReturnType/Crypto_ResultType) wird erst im Parameter des Callbacks übermittelt.
- Ein synchrones
- Konfigurationsabhängigkeit (ARXML):
- Erfordert konsistente Parametrierung über die Schichten:
CsmJobPrimitiveRef,CryIfChannelIdgemappt auf den passendenCryptoDriverObjectId, Aktivierung vonCsmJobUseAsynchronousJobProcessing = TRUEsowie die Zuweisung eines gültigen Funktionszeigers für den Fertigstellungs-Callback (CsmCallbackNotification).
- Erfordert konsistente Parametrierung über die Schichten:
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.