DEENESPTFRRUARHIKOZHNL
AUTOSAR_SWS_KeyManager FIG-2858072034ad024d 862 × 1238 px 1 Release(s)

Figure 10.9: KeyMCryptoKey Definition

SHA-256 Inhalts-Fingerabdruck: 2858072034ad024da2876a4fbf26b1cb8b3ded73e940680d1bef12a85cc40d85
✦ 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: AUTOSAR BSW Parameter Configuration Metamodel (UML-Klassendiagramm / ECUC Parameter Definition nach AUTOSAR BSW Architecture).
  • Funktionale Einordnung: AUTOSAR Classic Platform (Release R22-11), Spezifikation des Key Managers (AUTOSAR_SWS_KeyManager). Das Modell definiert die Konfigurationsstruktur KeyMCryptoKey innerhalb des BSW-Moduls KeyM (Crypto Key Manager) zur Abbildung, Verwaltung, Derivierung und Persistierung kryptografischer Schlüssel sowie deren Bindung an die Crypto Service Manager (CSM) Infrastruktur und den Non-Volatile RAM Manager (NvM).

2. Komponenten, Entitäten & Schnittstellen

Zentraler Container
  • KeyMCryptoKey (EcucParamConfContainerDef, Multiplizität: 0..65535): Repräsentiert die logische Konfigurationseinheit eines kryptografischen Schlüssels im KeyM.
Konfigurationsparameter (Aggregate via +parameter)
  • KeyMCryptoKeyId (EcucIntegerParamDef): Eindeutiger Identifikator (min = 0, max = 65535, symbolicNameValue = true). Dient als Handle für KeyM-APIs.
  • KeyMCryptoKeyMaxLength (EcucIntegerParamDef): Maximale Schlüssellänge in Byte (min = 1, max = 4294967295 / 2^32-1).
  • KeyMCryptoKeyName (EcucStringParamDef): Textuelle Bezeichnung des Schlüssels.
  • KeyMCryptoKeyGenerationType (EcucEnumerationParamDef):
    • KEYM_STORED_KEY: Statisch hinterlegter / direkt injizierter Schlüssel.
    • KEYM_DERIVED_KEY: Zur Laufzeit abgeleiteter Schlüssel.
  • KeyMCryptoKeyStorage (EcucEnumerationParamDef):
    • KEYM_STORAGE_IN_CSM: Persistierung/Verwaltung direkt im CSM bzw. Crypto Driver (Crypto Key Elements).
    • KEYM_STORAGE_IN_NVM: Persistierung im NvM über KeyM-Verwaltung.
    • KEYM_STORAGE_IN_RAM: Volatile Haltung im RAM.
  • KeyMCryptoCsmVerifyJobType (EcucEnumerationParamDef, Multiplizität: 0..1): Kryptografische Verifikationsoperation zur Integritäts-/Authentizitätsprüfung des Schlüssels:
    • KEYM_VERIFY_MACGENERATE
    • KEYM_VERIFY_MACVERIFY
    • KEYM_VERIFY_ENCRYPT
    • KEYM_VERIFY_DECRYPT
    • KEYM_VERIFY_AEADENCRYPT
    • KEYM_VERIFY_AEADDECRYPT
  • KeyMCryptoKeyGenerationInfo (EcucStringParamDef, Multiplizität: 0..1): Zusatzparameter/Kontext für Schlüsselableitung.
  • KeyMCryptoKeyCryptoProps (EcucStringParamDef, Multiplizität: 0..1): Kryptografische Eigenschaften/Restriktionen des Schlüssels.
Referenzen (Aggregate via +reference → +destination)
  • KeyMCryptoKeyCsmKeyTargetRef (EcucReferenceDef, Multiplizität: 1..1, requiresSymbolicNameValue = true):
    • Ziel: CsmKey (from Csm, Multiplizität: 0..*).
    • Verpflichtende Verknüpfung auf den Ziel-CSM-Schlüssel, in den das Schlüsselmaterial geladen/aktualisiert wird.
  • KeyMCryptoKeyCsmKeySourceDeriveRef (EcucReferenceDef, Multiplizität: 0..1, requiresSymbolicNameValue = true):
    • Ziel: CsmKey (from Csm, Multiplizität: 0..*).
    • Basisschlüssel (Master/Base Key) im CSM für Ableitungsoperationen bei KEYM_DERIVED_KEY.
  • KeyMCryptoKeyCsmVerifyJobRef (EcucReferenceDef, Multiplizität: 0..1, requiresSymbolicNameValue = true):
    • Ziel: CsmJob (from Csm, Multiplizität: 1..*).
    • CSM-Job für kryptografische Verifikation des Schlüsselmaterials vor Aktivierung/Nutzung.
  • KeyMCryptoKeyNvmBlockRef (EcucReferenceDef, Multiplizität: 0..1):
    • Ziel: KeyMNvmBlock (EcucParamConfContainerDef, Multiplizität: 0..65535).
    • Verknüpfung zur NvM-Blockkonfiguration, obligatorisch bei KEYM_STORAGE_IN_NVM.

3. Dynamisches Verhalten & Sequenzablauf

Aus dem statischen Konfigurationsmodell resultieren folgende Laufzeitpfade:

  1. Initialisierung & Ladevorgang:
    • Bei Start/Request prüft KeyM KeyMCryptoKeyStorage:
      • KEYM_STORAGE_IN_NVM: Anforderung des Datensatzes über KeyMNvmBlockRef aus dem NvM; Übertragung des Schlüsselmaterials in das RAM bzw. Weiterleitung an CSM.
      • KEYM_STORAGE_IN_CSM: Schlüssel verbleibt im Crypto Driver Stack; KeyM hält nur ID-Zuordnungen.
      • KEYM_STORAGE_IN_RAM: Temporäres Caching; kein Non-Volatile Restore.
  2. Schlüsselableitung (KEYM_DERIVED_KEY):
    • Trigger via KeyM-API (KeyM_DeriveKey o. ä.).
    • Auslesen des Quellschlüssels über KeyMCryptoKeyCsmKeySourceDeriveRef.
    • Ableitungsoperation unter Nutzung von KeyMCryptoKeyGenerationInfo.
    • Schreiben des abgeleiteten Schlüssels in den Ziel-CSM-Key (KeyMCryptoKeyCsmKeyTargetRef).
  3. Schlüssel-Verifikation (Pre-/Post-Activation Gate):
    • Falls KeyMCryptoKeyCsmVerifyJobRef und KeyMCryptoCsmVerifyJobType konfiguriert sind:
    • Ausführung des referenzierten CsmJob (z. B. MAC/AEAD Verify).
    • Bei Fehlschlag: Abbruch der Schlüsselaktivierung, Fehler-Rückgabe (E_NOT_OK) und optional Det/Dem-Meldung.

4. Normative Relevanz & Entwickler-Hinweise

  • Kardinalitäts- und Validierungsregeln:
    • KeyMCryptoKeyCsmKeyTargetRef ist zwingend (1..1). Jeder KeyM-Schlüssel muss auf genau einen CSM-Schlüssel mappen.
    • Wenn KeyMCryptoKeyGenerationType == KEYM_DERIVED_KEY, muss KeyMCryptoKeyCsmKeySourceDeriveRef konfiguriert sein; andernfalls ist die Konfiguration inkonsistent.
    • Wenn KeyMCryptoKeyStorage == KEYM_STORAGE_IN_NVM, muss KeyMCryptoKeyNvmBlockRef zwingend auflösbar sein.
    • KeyMCryptoKeyCsmVerifyJobRef und KeyMCryptoCsmVerifyJobType müssen paarweise konsistent konfiguriert werden; der CSM-Job-Algorithmus muss dem gewählten VerifyJobType entsprechen.
  • Symbolic Name Generation:
    • Da KeyMCryptoKeyId, KeyMCryptoKeyCsmKeyTargetRef und KeyMCryptoKeyCsmVerifyJobRef symbolicNameValue = true setzen, generiert der Generator Header-Defines (z. B. KeyMConf_KeyMCryptoKey_<ShortName>), die typischerweise als uint16-Handles in BSW- und SWC-Aufrufen verwendet werden.
  • Pufferallokation & Dimensionierung:
    • KeyMCryptoKeyMaxLength steuert statische Puffergrößen im KeyM-RAM und Serialisierungs-Payloads bei NvM-Transaktionen. Falsch konfigurierte Werte führen entweder zu Buffer-Overflows (durch Security-Checks abgefangen) oder zu RAM-Verschwendung.

Versionsvergleich KI-generiert · gemini-3.8-flash (via agy)

R22-11 → R23-11 keine inhaltliche Änderung Nachfolger: FIG-8261cf79906aa23f

Keine inhaltlichen Änderungen erkennbar.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

KeyMCryptoKey: EcucParamConfContainerDef | lowerMultiplicity = 0 upperMultiplicity = 65535 | KeyMCryptoKeyId: EcucIntegerParamDef | min = 0 max = 65535 symbolicNameValue = true KeyMCryptoKeyMaxLength: EcucIntegerParamDef | min = 1 max = 4294967295 | KeyMCryptoKeyGenerationType: | EcucEnumerationParamDef | KEYM_STORED_KEY: EcucEnumerationLiteralDef | KEYM_DERIVED_KEY: EcucEnumerationLiteralDef | KeyMCryptoKeyName: | EcucStringParamDef | KeyMCryptoKeyStorage: EcucEnumerationParamDef | KEYM_STORAGE_IN_CSM: | EcucEnumerationLiteralDef | KEYM_STORAGE_IN_NVM: | EcucEnumerationLiteralDef | KEYM_STORAGE_IN_RAM: | EcucEnumerationLiteralDef | CsmJob: EcucParamConfContainerDef | lowerMultiplicity = 1 upperMultiplicity = * | (from Csm) | CsmKey: EcucParamConfContainerDef | lowerMultiplicity = 0 upperMultiplicity = * | (from Csm) | KeyMCryptoKeyCsmKeySourceDeriveRef: | EcucReferenceDef | requiresSymbolicNameValue = true lowerMultiplicity = 0 upperMultiplicity = 1 | KeyMCryptoKeyCsmKeyTargetRef: | EcucReferenceDef | lowerMultiplicity = 1 upperMultiplicity = 1 requiresSymbolicNameValue = true | KeyMCryptoKeyCsmVerifyJobRef: | EcucReferenceDef | lowerMultiplicity = 0 upperMultiplicity = 1 requiresSymbolicNameValue = true | KeyMCryptoCsmVerifyJobType: | EcucEnumerationParamDef | lowerMultiplicity = 0 upperMultiplicity = 1 | KEYM_VERIFY_MACGENERATE: | EcucEnumerationLiteralDef | KEYM_VERIFY_MACVERIFY: | EcucEnumerationLiteralDef | KEYM_VERIFY_ENCRYPT: | EcucEnumerationLiteralDef | KEYM_VERIFY_DECRYPT: | EcucEnumerationLiteralDef | KEYM_VERIFY_AEADENCRYPT: | EcucEnumerationLiteralDef | KEYM_VERIFY_AEADDECRYPT: | EcucEnumerationLiteralDef | KeyMCryptoKeyGenerationInfo: | EcucStringParamDef | lowerMultiplicity = 0 upperMultiplicity = 1 | KeyMCryptoKeyCryptoProps: EcucStringParamDef | lowerMultiplicity = 0 upperMultiplicity = 1 | KeyMCryptoKeyNvmBlockRef: | EcucReferenceDef | lowerMultiplicity = 0 upperMultiplicity = 1 | KeyMNvmBlock: EcucParamConfContainerDef | lowerMultiplicity = 0 upperMultiplicity = 65535 | +parameter | +literal | +literal | +destination | +parameter | +reference | +parameter | +literal | +literal | +parameter | +reference +destination | +parameter | +literal | +literal | +parameter | +literal | +parameter | +destination | +reference | +literal | +literal | +reference | +destination | +parameter | +literal | +literal

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R22-11 AUTOSAR_SWS_KeyManager S. 137 10.9 Figure 10.9: KeyMCryptoKey Definition