Stellt Basistypen, Fehlerdomänen und Factory-Funktionen für kryptografische Dienste und Schlüsselverwaltung bereit.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 253d08fc1defHerkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Stellt Basistypen, Fehlerdomänen und Factory-Funktionen für kryptografische Dienste und Schlüsselverwaltung bereit.
Der Namespace ara::crypto stellt die gemeinsamen Basistypen, Speicherpuffer und globalen Factory-Funktionen für kryptografische Dienste in AUTOSAR Adaptive bereit. Anwendungen erzeugen oder beziehen Teilsystem-Instanzen wie Krypto- und Schlüsselspeicher-Provider deterministisch über Einstiegspunkte wie LoadCryptoProvider[SWS_CRYPT_20099]. Alle kryptografischen Operationen und Schlüsselverwendungen werden dabei strikt über definierte Nutzungsflags sowie die standardisierte Fehlerdomäne mit CryptoErrc[SWS_CRYPT_10099] überwacht. Sämtliche Factory-Schnittstellen setzen ein valides Prozess-Mapping voraus und sind threadsicher ausgelegt.
Kontext
Der Namespace ara::crypto bildet das gemeinsame Fundament und den zentralen Einstiegspunkt für alle kryptografischen Dienste, Schlüsselverwaltungsfunktionen und Zertifikatsoperationen der AUTOSAR Adaptive Platform. Anstatt Implementierungsdetails der zugrunde liegenden Treiber oder Hardware-Sicherheitsmodule offenzulegen, definiert der Namespace standardisierte Schnittstellen und globale Factory-Funktionen. Über diese Einstiegspunkte fordern Anwendungen Instanzen der spezialisierten Teilsysteme an: den allgemeinen Kryptografie-Provider [SWS_CRYPT_20099], den X.509-Provider [SWS_CRYPT_40099], Lese- und Schreibzugriffe auf Schlüsselspeicherplätze [SWS_CRYPT_50004][SWS_CRYPT_50005] sowie Formatierer zur Objektserialisierung [SWS_CRYPT_50200].
Kontextdiagramm: Zusammenspiel zwischen Anwendungsinstanzen, den Einstiegspunkten in ara::crypto und den bereitgestellten Teilsystem-Objekten. Quellen: [SWS_CRYPT_20099], [SWS_CRYPT_40099], [SWS_CRYPT_50004], [SWS_CRYPT_50005], [SWS_CRYPT_50200].
Lebenszyklus
Die Lebenszyklusverwaltung der kryptografischen Kernobjekte folgt dem Factory-Muster über globale Einstiegspunkte:
Instanziierung und Besitzverhältnisse: Anwendungen erzeugen Instanzen nicht manuell über Konstruktoren. Stattdessen liefern die Factory-Funktionen LoadCryptoProvider[SWS_CRYPT_20099], LoadKeySlot[SWS_CRYPT_50004], LoadWriteableKeySlot[SWS_CRYPT_50005], LoadX509Provider[SWS_CRYPT_40099] und LoadFormatter[SWS_CRYPT_50200] geteilte Besitzerreferenzen in Form von ara::core::Result<...::Sptr> zurück.
Singleton- und Provider-Lebenszyklen: Die Funktion LoadX509Provider stellt die eindeutige Instanz des Singleton-X.509-Providers bereit [SWS_CRYPT_40099]. LoadCryptoProvider erzeugt oder referenziert die existierende Instanz des über einen ara::core::InstanceSpecifier modellierten Krypto-Providers [SWS_CRYPT_20099].
Nebenläufigkeit und Zerstörung: Alle Factory-Funktionen sowie die Fehlerdomänen-Helfer GetCryptoErrorDomain[SWS_CRYPT_19952] und MakeErrorCode[SWS_CRYPT_19951] sind als ausnahmesicher (noexcept) und threadsicher (thread-safe) spezifiziert. Die Freigabe der referenzierten Objekte erfolgt automatisch, sobald der letzte gehaltene Shared Pointer erlischt.
Nutzungspfad
Ein typischer Nutzungspfad zur Durchführung kryptografischer Operationen oder zur Verwaltung von Schlüsseln verläuft über folgende Schritte:
Provider laden: Die Anwendung ruft LoadCryptoProvider mit einem passenden ara::core::InstanceSpecifier auf, um Zugriff auf die kryptografischen Operationen zu erhalten [SWS_CRYPT_20099].
Schlüsselslot referenzieren: Für schlüsselbasierte Abläufe wird der zugehörige Speicherplatz geladen: schreibgeschützt mittels LoadKeySlot[SWS_CRYPT_50004] oder mit Schreibrechten über LoadWriteableKeySlot[SWS_CRYPT_50005].
Objektvalidierung und Rechteprüfung: Vor der Ausführung verifiziert die Anwendung die Objekttypen (CryptoObjectType[SWS_CRYPT_10016]) und die konfigurierten Nutzungsbeschränkungen (AllowedUsageFlags[SWS_CRYPT_10015]), beispielsweise kAllowDataEncryption[SWS_CRYPT_13101] oder kAllowDataDecryption[SWS_CRYPT_13102] passend zu CryptoTransform[SWS_CRYPT_10019].
Sequenzdiagramm: Aufruf- und Initialisierungsreihenfolge zum Laden von Providern und Schlüsselslots mit anschließender Fehlerprüfung. Quellen: [SWS_CRYPT_20099], [SWS_CRYPT_50004], [SWS_CRYPT_19951].
Fehlerszenarien
Die Fehlerbehandlung in ara::crypto basiert auf der globalen Fehlerdomäne CryptoErrorDomain[SWS_CRYPT_19952], deren Enumeration CryptoErrc[SWS_CRYPT_10099] alle spezifischen Fehlercodes festlegt:
Argument- und Pufferfehler: Ungültige Argumente führen zu kInvalidArgument, unbekannte Bezeichner zu kUnknownIdentifier und unpassende Parameterkombinationen zu kIncompatibleArguments[SWS_CRYPT_10099]. Reicht die Kapazität einer ReadWriteMemRegion[SWS_CRYPT_10031] nicht aus, signalisiert die Schnittstelle kInsufficientCapacity[SWS_CRYPT_10099]. Bei fehlerhaften Eingabegrößen tritt kInvalidInputSize auf [SWS_CRYPT_10099].
Zustands- und Ablaufverletzungen: Bei fehlerhafter Aufrufreihenfolge meldet das System kInvalidUsageOrder[SWS_CRYPT_10099]. Wird ein Kontext vor der Initialisierung genutzt oder ein Rechenschritt vor dem Abschluss abgefragt, resultiert dies in kUninitializedContext, kProcessingNotStarted bzw. kProcessingNotFinished[SWS_CRYPT_10099].
Rechte- und Sicherheitsverletzungen: Operationen entgegen den in AllowedUsageFlags deklarierten Rechten erzeugen kUsageViolation[SWS_CRYPT_10099]. Schlägt die Prüfung eines Authentisierungs-Tags fehl, wird kAuthTagNotValid ausgelöst [SWS_CRYPT_10099].
Slot- und Mappingfehler: Leere oder inkompatible Schlüsselcontainer führen zu kEmptyKeySlot oder kIncompatibleObject[SWS_CRYPT_10099]. Zeigt der InstanceSpecifier bei LoadCryptoProvider, LoadKeySlot oder LoadWriteableKeySlot nicht auf einen für den aktuellen Prozess modellierten PortPrototype, wird dies als ProcessMappingViolation gewertet ([SWS_CRYPT_20099], [SWS_CRYPT_50004], [SWS_CRYPT_50005]).
Fehlerinstanzen werden programmseitig über die Hilfsfunktion MakeErrorCode generiert und referenzieren ausnahmslos die CryptoErrorDomain[SWS_CRYPT_19951].
Dieser Leitfaden basiert ausschließlich auf den Spezifikationsanforderungen von AUTOSAR R25-11.
KI-gestützte Gruppierung auf Basis der Records und Spezifikationsauszüge; keine Gliederung aus der AUTOSAR-Spezifikation.
Klassendiagramm
Abgerundete Rahmen = Namespace- bzw. Klassen-Scopes; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = namespace-fremde bzw. externe Basisklassen. Klicken öffnet die jeweilige Klassen- bzw. cppreference-Seite.
This factory method shall create or return the existing instance of a specific Crypto Provider.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: b6b49fc6b39dHerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Factory-Funktion LoadCryptoProvider im Namensraum ara::crypto dient als zentraler Einstiegspunkt, um eine Instanz eines kryptografischen Dienstleisters zu erzeugen oder eine bereits bestehende Instanz abzurufen [SWS_CRYPT_20099]. Zur Einbindung ist der Header ara/crypto/common/entry_point.h erforderlich [SWS_CRYPT_20099].
Beim Aufruf gelten folgende Parameter- und Rückgabeeigenschaften [SWS_CRYPT_20099]:
Aufrufparameter: Der Übergabeparameter iSpecify (Typ const ara::core::InstanceSpecifier&) identifiziert den RPortPrototype vom Typ CryptoProviderInterface, der dem aufrufenden Prozess zugeordnet ist [SWS_CRYPT_20099].
Rückgabewert: Bei erfolgreicher Instanziierung liefert die Funktion ein ara::core::Result<cryp::CryptoProvider::Sptr> zurück, welches einen Shared Pointer auf das geladene Provider-Objekt kapselt [SWS_CRYPT_20099].
Nebenläufigkeit: Die Funktion ist als noexcept deklariert, gilt als exception safe und ist explizit als thread-safe spezifiziert, sodass Aufrufe aus parallelen Threads zulässig sind [SWS_CRYPT_20099].
Hinsichtlich der Fehlerbehandlung definiert die Spezifikation keine standardisierten Fehlercodes [SWS_CRYPT_20099]. Ein Scheitern der Operation dürfte jedoch als Fehlerzustand im zurückgegebenen ara::core::Result abgebildet werden. Frage Q-ad283a067489b0eb (offen) Zudem ist die Modellierungsverletzung ProcessMappingViolation definiert: Diese tritt auf, wenn der übergebene InstanceSpecifier nicht auf einen für den aktuellen Prozess gültigen PortPrototype verweist, der durch ein CryptoProviderInterface typisiert ist [SWS_CRYPT_20099].
Dieser Text wurde von einer KI auf Basis der Spezifikation AUTOSAR R25-11 generiert.
ProcessMappingVio- In case InstanceSpecifier does not point to a PortPrototype typed lation by a CryptoProviderInterface modeled for the current process.
Parameter (in)
Parameter
Beschreibung
iSpecify
InstanceSpecifier of the RPortPrototype of type CryptoProvider Interface
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 1ad37ba369f0HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Funktion LoadFormatter im Namensraum ara::crypto dient als Factory zur Erzeugung einer Instanz von Formatter[SWS_CRYPT_50200]. Die Deklaration wird über die Header-Datei ara/crypto/common/formatter.h bereitgestellt.
Verwendung und Schnittstelle: Der Aufruf erfolgt synchron und erfordert keine Übergabeparameter. Als Rückgabewert liefert die Funktion ein ara::core::Result<ara::crypto::Formatter::Sptr> zurück, welches im Erfolgsfall einen Shared Pointer auf das neu erzeugte Formatter-Objekt kapselt [SWS_CRYPT_50200].
Fehlerbehandlung: Die Spezifikation definiert für LoadFormatter keine standardisierten Fehlercodes [SWS_CRYPT_50200]. Da der Rückgabewert als ara::core::Result ausgelegt ist, dürften implementationsspezifische Fehler bei der Objekterzeugung über den Fehlerkanal dieses Ergebnistyps übermittelt werden. Frage Q-dd9ac8319a9ad931 (offen)
Nebenläufigkeit und Ausführungssicherheit: Die Funktion ist als noexcept deklariert und als ausnahmesicher (exception safe) sowie threadsicher (thread-safe) spezifiziert [SWS_CRYPT_50200]. Sie kann somit ohne externe Synchronisationsmaßnahmen parallel aus unterschiedlichen Threads aufgerufen werden.
Dieser Nutzungshinweis wurde automatisiert generiert und basiert auf den Vorgaben des AUTOSAR-Standards.
Load a read-only key slot. This factory method shall load the information associated with the specified KeySlot into a KeySlot object.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 8366de538e98Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Funktion LoadKeySlot im Namespace ara::crypto ist als Factory-Methode konzipiert, um einen schreibgeschützten Key-Slot (read-only key slot) zu laden [SWS_CRYPT_50004]. Beim synchronen Aufruf lädt die Methode die mit dem angegebenen Slot assoziierten Metadaten und Schlüsselinformationen in ein entsprechendes KeySlot-Objekt [SWS_CRYPT_50004]. Zur Einbindung dient die Header-Datei ara/crypto/common/entry_point.h.
Als Eingabeparameter nimmt die Funktion eine Instanzangabe iSpecify vom Typ const ara::core::InstanceSpecifier& entgegen [SWS_CRYPT_50004]. Dieser Bezeichner muss auf den RPortPrototype eines CryptoKeySlotInterface oder eines CryptoKeySlotClientInterface verweisen, der den zu ladenden Schlüssel eindeutig identifiziert [SWS_CRYPT_50004].
Als Ergebnis liefert die Methode ein ara::core::Result<cryp::KeySlot::Sptr> zurück, welches entweder einen Shared Pointer auf das geladene KeySlot-Objekt oder einen Fehler bereitstellt [SWS_CRYPT_50004]. Die Spezifikation definiert für LoadKeySlot keine standardisierten Fehlercodes [SWS_CRYPT_50004]. Es wird jedoch eine ProcessMappingViolation dokumentiert: Diese liegt vor, wenn der übergebene InstanceSpecifier nicht auf einen für den aktuellen Prozess modellierten Port verweist, der durch ein CryptoKeySlotInterface oder CryptoKeySlotClientInterface typisiert ist [SWS_CRYPT_50004].
Für die Ausführung ist die Funktion als noexcept deklariert und bietet vollständige Ausnahmesicherheit (exception safe) [SWS_CRYPT_50004]. Zudem ist der Aufruf als threadsicher (thread-safe) spezifiziert, sodass ein nebenläufiger Zugriff mehrerer Threads unterstützt wird [SWS_CRYPT_50004].
Dieser Nutzungshinweis wurde automatisiert auf Basis der AUTOSAR-Spezifikation R25-11 generiert.
ProcessMappingVio- In case InstanceSpecifier does not point to a PortPrototype typed lation by a CryptoKeySlotInterface or CryptoKeySlotClientInterface modeled for the current process.
Parameter (in)
Parameter
Beschreibung
iSpecify
instance specifier to the RPortPrototype of a CryptoKeySlot Interface or a CryptoKeySlotClientInterface that identifies the key to be loaded
Load a writeable key slot. This factory method shall load the information associated with the specified KeySlot into a WriteableKeySlot object.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 548256d68415HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung
Die Funktion LoadWriteableKeySlot dient als synchrone Factory-Methode, um die Informationen eines spezifizierten Schlüsselslots in ein cryp::WriteableKeySlot-Objekt zu laden [SWS_CRYPT_50005]. Die Funktion ist im Namensraum ara::crypto definiert und wird über den Header ara/crypto/common/entry_point.h bereitgestellt [SWS_CRYPT_50005].
Parameter:iSpecify (vom Typ const ara::core::InstanceSpecifier&) verweist auf den RPortPrototype eines CryptoKeySlotInterface und identifiziert damit den zu ladenden Schlüssel [SWS_CRYPT_50005].
Rückgabewert: Ein ara::core::Result<cryp::WriteableKeySlot::Sptr>, das entweder den geladenen KeySlot als Shared Pointer oder ein Fehlerobjekt enthält [SWS_CRYPT_50005].
Semantik: Der Aufruf erfolgt synchron direkt bei der Ausführung [SWS_CRYPT_50005].
Fehlerbehandlung und Randbedingungen
Für diese Funktion sind keine standardisierten Fehlercodes spezifiziert [SWS_CRYPT_50005]. Auftretende Fehlerbedingungen dürften vermutlich über das zurückgegebene ara::core::Result übermittelt werden. Frage Q-e2f8966bf78b1569 (offen) Ein Architektur- oder Konfigurationsfehler führt zu einer ProcessMappingViolation, falls der übergebene InstanceSpecifier nicht auf einen für den aktuellen Prozess modellierten PortPrototype verweist, der durch ein CryptoKeySlotInterface typisiert ist [SWS_CRYPT_50005].
Nebenläufigkeit und Zusammenspiel
Die Funktion ist als threadsicher (thread-safe) und ausnahmesicher (exception safe) mit noexcept-Garantie deklariert [SWS_CRYPT_50005]. Sie adressiert die übergeordnete Kryptographie-Anforderung [RS_CRYPTO_02004] und stellt den zentralen Zugriffspunkt dar, um beschreibbare Schlüssel-Slots im Prozess bereitzustellen [SWS_CRYPT_50005].
Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikation AUTOSAR R25-11 generiert.
ProcessMappingVio- In case InstanceSpecifier does not point to a PortPrototype typed lation by a CryptoKeySlotInterface modeled for the current process.
Parameter (in)
Parameter
Beschreibung
iSpecify
instance specifier to the RPortPrototype of a CryptoKeySlot Interface that identifies the key to be loaded
This factory method shall create or return the existing instance of the singleton X.509 Provider.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 70f8a61e4c9eHerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung
Die Funktion LoadX509Provider im Namensraum ara::crypto dient als Factory-Methode, um die Singleton-Instanz des X.509-Providers zu erzeugen oder die bereits bestehende Instanz abzurufen [SWS_CRYPT_40099]. Für den Aufruf muss die Header-Datei ara/crypto/common/entry_point.h inkludiert werden [SWS_CRYPT_40099]. Der Aufruf erfolgt synchron und nimmt keine Übergabeparameter entgegen. Als Rückgabewert liefert die Funktion ein ara::core::Result<ara::crypto::x509::X509Provider::Sptr>, welches einen Shared Pointer auf die geladene Instanz des X.509-Providers bereitstellt [SWS_CRYPT_40099].
Fehlerbehandlung
In der Spezifikation sind für LoadX509Provider keine standardisierten Fehlercodes definiert [SWS_CRYPT_40099]. Die Funktion ist mit noexcept deklariert und als ausnahmesicher (exception safe) spezifiziert [SWS_CRYPT_40099]. Interpretation: Da das Ergebnis über den Typ ara::core::Result gekapselt ist, dürften systemspezifische Fehlerzustände bei der Initialisierung des Providers über dieses Result-Objekt an den Aufrufer übermittelt werden. Frage Q-c187f4f152ccc89f (offen)
Nebenläufigkeit und Zusammenspiel
Gemäß Spezifikation ist LoadX509Provider als threadsicher (thread-safe) eingestuft [SWS_CRYPT_40099]. Dadurch kann der Aufruf ohne zusätzliche Synchronisationsmaßnahmen parallel aus mehreren Threads erfolgen, um eine Referenz auf dieselbe Singleton-Instanz zu beziehen. Fachlich setzt die Funktion die übergeordneten Anforderungen RS_CRYPTO_02306 und RS_CRYPTO_02301 um [SWS_CRYPT_40099].
Dieser Text wurde durch ein KI-System auf Basis der Spezifikation generiert.
gemini-3.8-flash-medium· 2026-10-13