Figure 7: 3 Structure of Crypto_JobType (Job) and its dependencies
8d1f4e5c2e81d382e8a6fb744ed0309689cb431fb96af13162fbf02bbd347e2f
1. Diagrammtyp & Architektur-Kontext
UML-Klassendiagramm / Datenstruktur-Diagramm aus der AUTOSAR Classic Platform (SWS Crypto Service Manager / CSM). Das Diagramm spezifiziert die strukturelle Zusammensetzung des C-Datentyps Crypto_JobType sowie dessen hierarchische Abhängigkeiten zu Substrukturen, Konfigurationstypen und Enumerationen zur Ausführung und Steuerung kryptografischer Jobs über den CSM, das Crypto Interface (CryIf) und die zugrunde liegenden Krypto-Treiber.
2. Komponenten, Entitäten & Schnittstellen
Das Diagramm definiert folgende Entitäten und Relationen:
Strukturen (struct):
Crypto_JobType: Zentraler Steuerungskontext eines Krypto-Jobs.- Attribute:
cryptoKeyId: uint32,jobId: uint32,jobInfoType: const Crypto_JobInfoType *,jobPrimitiveInfoType: const Crypto_JobPrimitiveInfoType *,jobPrimitiveInputOutput: Crypto_JobPrimitiveInputOutputType,jobRedirectionInfoRef: Crypto_JobRedirectionInfoType *,jobState: Crypto_JobStateType,targetCryptoKeyId: uint32.
- Attribute:
Crypto_JobPrimitiveInputOutputType: Enthält Ein- und Ausgabepuffer sowie Laufzeitparameter des Jobs.- Attribute:
cryIfKeyId: uint32,inputLength: uint32,inputPtr: char *,mode: Crypto_OperationModeType,outputLengthPtr: char *,outputPtr: char *,secondaryInputLength: uint32,secondaryInputPtr: char *,secondaryOutputLengthPtr: char *,secondaryOutputPtr: char *,targetCryIfKeyId: uint32,tertiaryInputLength: uint32,tertiaryInputPtr: char *,verifyPtr: char *. - Relation: Komposition von
Crypto_JobType(per Wert eingebettet).
- Attribute:
Crypto_JobInfoType: Metadaten zur Job-Identifikation und Priorisierung.- Attribute:
jobId: uint32,jobPriority: uint32. - Relation: Aggregation / Zeigerreferenz von
Crypto_JobType.
- Attribute:
Crypto_JobRedirectionInfoType: Konfiguration zur Ein-/Ausgabeschlüssel-Umleitung.- Attribute:
inputKeyElementId: uint32,inputKeyId: uint32,outputKeyElementId: uint32,outputKeyId: uint32,redirectionConfig: uint8,secondaryInputKeyElementId: uint32,secondaryInputKeyId: uint32,secondaryOutputKeyElementId: uint32,secondaryOutputKeyId: uint32,tertiaryInputKeyElementId: uint32,tertiaryInputKeyId: uint32. - Relation: Optionale Assoziation / Zeigerreferenz (
0..1) vonCrypto_JobType.
- Attribute:
Crypto_JobPrimitiveInfoType: Beschreibt die Ausführungseigenschaften der kryptografischen Primitivfunktion.- Attribute:
callbackId: uint32,cryIfKeyId: uint32,primitiveInfo: const Crypto_PrimitiveInfoType *,processingType: Crypto_ProcessingType. - Relation: Aggregation / Zeigerreferenz von
Crypto_JobType.
- Attribute:
Crypto_PrimitiveInfoType: Spezifiziert den Dienst und Algorithmus.- Attribute:
algorithm: const Crypto_AlgorithmInfoType,resultLength: uint32,service: const Crypto_ServiceInfoType. - Relation: Aggregation / Zeigerreferenz von
Crypto_JobPrimitiveInfoType.
- Attribute:
Crypto_AlgorithmInfoType: Detaillierte Algorithmen-Eigenschaften.- Attribute:
family: Crypto_AlgorithmFamilyType,keyLength: uint32,mode: CryptoAlgorithmModeType,secondaryFamily: Crypto_AlgorithmFamilyType. - Relation: Komposition von
Crypto_PrimitiveInfoType.
- Attribute:
Enumerationen («enumeration»):
Crypto_JobStateType:CRYPTO_JOBSTATE_IDLE,CRPTO_JOBSTATE_ACTIVE(Typfehler im Literal im Diagramm).Crypto_OperationModeType:CRYPTO_OPERATIONMODE_START,CRYPTO_OPERATIONMODE_UPDATE,CRYPTO_OPERATIONMODE_FINISH,CRYPTO_OPERATIONMODE_SINGLECALL.Crypto_ProcessingType:CRYPTO_PROCESSING_ASNC(Typfehler im Literal im Diagramm),CRYPTO_PROCESSING_SYNC.Crypto_ServiceInfoType,Crypto_AlgorithmFamilyType,Crypto_AlgorithmModeType: Als Enumerationen typisiert (ohne explizit gelistete Literale dargestellt).
3. Dynamisches Verhalten & Sequenzablauf
Als statisches Klassen-/Strukturdiagramm zeigt die Abbildung keinen zeitlichen Ablauf. Sie bildet das Datenmodell für den dynamischen Lebenszyklus eines Jobs ab:
- Vorbereitung / Initialisierung: Ein Job wird im Zustand
CRYPTO_JOBSTATE_IDLEmit den statischen Konfigurationszeigern (Crypto_JobInfoType,Crypto_JobPrimitiveInfoType) sowie den Puffer- und Modusparametern inCrypto_JobPrimitiveInputOutputTypeinstanziiert. - Verarbeitung: Der Job wechselt bei Übergabe an den Treiber in
CRPTO_JOBSTATE_ACTIVE. ÜberprocessingType(CRYPTO_PROCESSING_SYNCbzw.CRYPTO_PROCESSING_ASNC) wird festgelegt, ob der Aufruf blockierend ausgeführt wird oder nach asynchroner Abarbeitung übercallbackIdbenachrichtigt. - Schrittweise Ausführung: Mittels
modeinCrypto_JobPrimitiveInputOutputTypesteuert der Aufrufer den Ablauf überCRYPTO_OPERATIONMODE_START,CRYPTO_OPERATIONMODE_UPDATE,CRYPTO_OPERATIONMODE_FINISHoder direktCRYPTO_OPERATIONMODE_SINGLECALL. - Schlüsselumleitung: Ist
jobRedirectionInfoRefgesetzt, werden Schlüsseldaten gemäßredirectionConfigzwischen den spezifizierten Key- und Key-Element-IDs umgeleitet.
4. Normative Relevanz & Entwickler-Hinweise
Die dargestellte Struktur Crypto_JobType bildet die zentrale Schnittstellendateneinheit für APIs des CSM und CryIf (z. B. Csm_JobProcess, CryIf_ProcessJob, Crypto_ProcessJob). Implementierer von Krypto-Treibern und CSM müssen sicherstellen:
- Die Lebensdauer und Gültigkeit von Puffern (
inputPtr,outputPtr,secondaryInputPtr, etc.) und konstanten Referenzstrukturen (jobInfoType,jobPrimitiveInfoType,primitiveInfo) muss über die gesamte Ausführungsdauer garantiert sein. jobRedirectionInfoRefist optional (0..1) und kann einNULL_PTRsein, sofern keine Schlüsselumleitung konfiguriert oder aktiv ist.- Im Diagramm enthaltene Literal-Schreibweisen weisen Schreibfehler auf (
CRPTO_JOBSTATE_ACTIVEstattCRYPTO_JOBSTATE_ACTIVE,CRYPTO_PROCESSING_ASNCstattCRYPTO_PROCESSING_ASYNC), welche in standardkonformen Implementierungen typischerweise gemäß SWS-Typdefinition korrigiert sind.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.