DEENESPTFRRUARHIKOZHNL
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-Namespace CryptoContext): Asymmetrische Schlüsselkapselung (KEM - Key Encapsulation Mechanism, Sender-Rolle mit Public Key).
    • Operationen: AddKeyingData(), Encapsulate(), GetEncapsulatedSize(), GetExtensionService(), GetKekEntropy(), Reset(), SetKey().
  • KeyDecapsulatorPrivateCtx (Schnittstellen-Namespace CryptoContext): Asymmetrische Schlüsselentkapselung (KEM, Empfänger-Rolle mit Private Key).
    • Operationen: DecapsulateKey(), DecapsulateSeed(), GetEncapsulatedSize(), GetExtensionService(), GetKekEntropy(), Reset(), SetKey().
  • SymmetricKeyWrapperCtx (Schnittstellen-Namespace CryptoContext): 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().
  • RandomGeneratorCtx (Schnittstellen-Namespace CryptoContext): Kryptografischer Pseudozufalls- oder Hardware-Zufallsgenerator (CSPRNG/TRNG).
    • Operationen: AddEntropy(), Generate(), GetExtensionService(), Seed(), SetKey().
  • 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().
  • Keyed MAC Context (tabellarisch definiert, z. B. MessageAuthnCodeCtx):
    • Operationen: Check(), Finish(), GetDigest(), GetDigestService(), Reset(), SetKey(), Start(), Update().
Beziehungen & Abhängigkeiten
  • Abhängigkeit («use»): Adaptive Application nutzt alle fünf Interfaces direkt (KeyEncapsulatorPublicCtx, KeyDecapsulatorPrivateCtx, SymmetricKeyWrapperCtx, RandomGeneratorCtx, ExtensionService).
  • Realisierung (--▷ gestrichelt mit geschlossener Hohlspitze): Der funktionale Cluster Cryptography implementiert alle genannten Interfaces.
  • Assoziation / Delegation: Jeder kryptografische Kontext bietet eine Methode GetExtensionService() an, über die eine Instanz/Referenz von ExtensionService für kontextbezogene Schlüsselmetadaten erreichbar ist.

3. Dynamisches Verhalten & Sequenzablauf

Kontext-Lebenszyklus (Zustands- und Ablaufmuster)
  1. Initialisierung & Schlüsselbindung:
    • Aufruf von SetKey() bindet ein persistentes oder flüchtiges Schlüsselobjekt (ara::crypto::keys::Key bzw. Key Slot) an den Kontext.
    • Über GetExtensionService() validiert die Applikation Schlüsselmetadaten (IsKeyAvailable(), GetAllowedUsage(), Bitlängen).
  2. 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 vergleicht Check() das Resultat direkt gegen eine erwartete Signatur.
  3. 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().
  4. 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 abgerufenen ExtensionService erfolgen.
  • Zustandssicherheit (State Machine): Alle Kontexte sind zustandsbehaftet. Vor einem erneuten Start() oder Schlüsselwechsel via SetKey() muss im Fehler- oder Abbruchfall zwingend Reset() ausgeführt werden, um Speicherlecks und undefinierte Zustände im Daemon/HSM zu verhindern.
  • Polymorphie & Typgranularität: SymmetricKeyWrapperCtx unterscheidet 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.

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

R21-11 → R22-11 normative Änderung Nachfolger: FIG-f863a82a21783193
  • Entfall der tabellarischen Schnittstellenspezifikation: Die vorangestellte Spezifikationstabelle für das native Interface des Keyed Message Authentication Code Context (MAC/HMAC) mit den Operationen Check, Finish, GetDigest, GetDigestService, Reset, SetKey, Start und Update wurde aus dem Schaubild entfernt. Das nachfolgende UML-Klassendiagramm ist unverändert.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

Description: Keyed message authentication code context interface definition (MAC/HMAC). | Check Check the calculated digest against an expected "signature" object. | Finish Finish the digest calculation and optionally produce the "signature" object. | GetDigest Get requested part of calculated digest to existing memory buffer. | GetDigestService Get the DigestService instance. | Reset Clear the crypto context. | SetKey Set (deploy) a key to the message authn code algorithm context. | Start Initialize the context for a new data stream processing or generation (depending from the primitive). | Operations: | Update Update the digest calculation context by a new part of the message. | «aapFunctionalCluster» | Cryptography daemon-based | CryptoContext | «aapAPI,aapNativeInterf... KeyDecapsulatorPrivateCtx | + DecapsulateKey() + DecapsulateSeed() + GetEncapsulatedSize() + GetExtensionService() + GetKekEntropy() + Reset() + SetKey() | CryptoContext | «aapAPI,aapNativeInterf... | KeyEncapsulatorPublicCtx | + AddKeyingData() + Encapsulate() + GetEncapsulatedSize() + GetExtensionService() + GetKekEntropy() + Reset() + SetKey() | CryptoContext | «aapAPI,aapNativeInt... | RandomGeneratorCtx | + AddEntropy() + Generate() + GetExtensionService() + Seed() + SetKey() | CryptoContext | «aapAPI,aapNativeInterface» | SymmetricKeyWrapperCtx | + CalculateWrappedKeySize() + GetExtensionService() + GetMaxTargetKeyLength() + GetTargetKeyGranularity() + Reset() + SetKey() + UnwrapConcreteKey() + UnwrapKey() + UnwrapSeed() + WrapKeyMaterial() | «aapAPI,aapNativeInterf... | ExtensionService | + GetActualKeyBitLength() + GetActualKeyCOUID() + GetAllowedUsage() + GetMaxKeyBitLength() + GetMinKeyBitLength() + IsKeyAvailable() + IsKeyBitLengthSupported() | Adaptive Application | «use» «use» «use» «use» «use»

Vorkommen in AUTOSAR-Releases (2)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R21-11 AUTOSAR_EXP_SWArchitecture S. 87 9.47 Figure 9.47: ExtensionService and CryptoContext Interfaces (1 of 2)
R21-11 AUTOSAR_EXP_SWArchitecture S. 87 9.47 Figure 9.47: ExtensionService and CryptoContext Interfaces (1 of 2)