DEENESPTFRRUARHIKOZHNL

class ara::crypto::CryptoException

[SWS_CRYPT_19905] Upstream: RS_CRYPTO_02310

class CryptoException :          public ara::core::Exception {...};

Exception type thrown for CRYPTO errors.

Header-Datei#include "ara/crypto/common/crypto_error_domain.h"
Forwarding-Header#include "ara/crypto/crypto_fwd.h"
Scopenamespace ara::crypto
Basisklasse(n)ara::core::Exception

User GuideKI-GENERIERT

Dient der Kapselung und Signalisierung von Fehlern aus kryptografischen Operationen als typspezifische C++-Ausnahme.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 1f6949d5652b Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Dient der Kapselung und Signalisierung von Fehlern aus kryptografischen Operationen als typspezifische C++-Ausnahme.

Die Klasse ara::crypto::CryptoException fungiert in der AUTOSAR Adaptive Platform als spezialisierte Ausnahme zur Signalisierung kryptografischer Fehler an aufrufende Anwendungen. Sie leitet sich von ara::core::Exception ab und wird bei fehlgeschlagenen Operationen explizit mit einem ara::core::ErrorCode instanziiert [SWS_CRYPT_19906]. Durch die Spezifikation als noexcept und threadsicher ist eine verlässliche Ausnahmeerzeugung auch in nebenläufigen Umgebungen ohne Folgefehler garantiert [SWS_CRYPT_19906]. Anwendungen müssen kryptografische Aufrufe entsprechend absichern, um unbehandelte Ausnahmen und Programmabbrüche zu vermeiden.

Kontext

Die Klasse ara::crypto::CryptoException definiert den zentralen Ausnahmetyp für Fehlerzustände innerhalb des Krypto-Moduls der AUTOSAR Adaptive Platform. Als Spezialisierung der Standard-Ausnahmeklasse ara::core::Exception schlägt sie die Brücke zwischen der in der Plattform primär genutzten fehlercodebasierten Rückgabe und klassischen C++-Ausnahmebehandlungsmechanismen. Sie kommt in Systemarchitekturen zum Einsatz, in denen kryptografische Operationen fehlschlagen und dieser Fehlerzustand über den Aufrufstapel hinweg als Ausnahme propagiert werden muss. Zu den primären Interaktionspartnern zählen kryptografische Funktionsmodule und Dienste, welche bei unvorhergesehenen Fehlern oder expliziten Prüfungen Ausnahmen auslösen, sowie übergeordnete Anwendungskomponenten, die kryptografische Vorgänge wie Verschlüsselung, Signaturprüfung oder Schlüsselverwaltung anstoßen und eventuelle Fehler abfangen. Durch die Verankerung im gemeinsamen Fehlerdomänenkonzept der Plattform stellt ara::crypto::CryptoException sicher, dass kryptografische Fehler konsistent und typisiert an die Anwendungslogik gemeldet werden.

Lebenszyklus

Die Erzeugung eines Objekts von ara::crypto::CryptoException erfolgt deterministisch durch Übergabe eines Fehlercodes vom Typ ara::core::ErrorCode an den Konstruktor [SWS_CRYPT_19906]. Dieser Konstruktor ist als explicit deklariert, um implizite Typkonvertierungen aus Fehlercodes zu unterbinden, und besitzt die Spezifikation noexcept [SWS_CRYPT_19906]. Letzteres garantiert, dass bei der Konstruktion der Ausnahme selbst keine weiteren Ausnahmen ausgelöst werden können, was die Ausnahme- und Betriebssicherheit des Krypto-Subsystems wesentlich erhöht. Gemäß der Spezifikation ist die Implementierung als thread-safe eingestuft [SWS_CRYPT_19906], sodass Instanzen auch in nebenläufigen Ausführungsumgebungen zuverlässig instanziiert und verarbeitet werden können. Hinsichtlich der Besitzverhältnisse wird die Ausnahme typischerweise by-value geworfen und im abfangenden Block als konstante Referenz gebunden. Da die Klasse keine dynamischen Ressourcen über den Fehlercode hinaus verwaltet, endet ihr Lebenszyklus regulär mit dem Verlassen des behandelnden catch-Blocks (Interpretation). Frage (offen)

Nutzungspfad

Der reguläre Nutzungspfad beginnt innerhalb einer kryptografischen Operation, wenn eine Fehlerbedingung auftritt, die nicht lokal aufgelöst werden kann. Das Modul identifiziert die Fehlerursache anhand der kryptografischen Fehlerdomäne aus der Header-Datei ara/crypto/common/crypto_error_domain.h und erzeugt einen entsprechenden ara::core::ErrorCode [SWS_CRYPT_19906]. Im Anschluss wird eine Instanz von ara::crypto::CryptoException mit diesem Fehlercode instanziiert [SWS_CRYPT_19906] und mittels einer throw-Anweisung signalisiert. Auf Anwendungsseite fängt die aufrufende Komponente die Ausnahme gezielt über catch (const ara::crypto::CryptoException& e) ab. Alternativ erlaubt die Vererbungshierarchie auch das polymorphe Fangen als generische ara::core::Exception. Durch Abfrage des enthaltenen ara::core::ErrorCode kann die Anwendung im Anschluss die spezifische kryptografische Fehlerursache analysieren und geeignete Gegenmaßnahmen ergreifen.

Ablauf der Ausnahmebehandlung bei kryptografischen FehlernAnwendungKrypto-DienstCryptoExceptionKryptografische Operation anfordernFehlerbedingung festgestelltErrorCode erzeugtCryptoException(err) konstruieren [SWS_CRYPT_19906]CryptoException(err) konstruierenInitialisierung (noexcept)throw CryptoExceptioncatch (const CryptoException&)

Sequenzdiagramm: Typischer Ablauf der Fehlerbehandlung und Ausnahmeauslösung bei kryptografischen Operationen. Quellen: [SWS_CRYPT_19906]

Fehlerszenarien

Da ara::crypto::CryptoException selbst das Vehikel zur Fehlersignalisierung darstellt, liegt das Hauptaugenmerk bei Fehlerszenarien auf der Robustheit der Ausnahmeerzeugung. Durch die Zusicherung der Ausnahme- und Thread-Sicherheit sowie der noexcept-Garantie des Konstruktors wird verhindert, dass während einer bereits aktiven Fehlerbehandlung sekundäre Ausnahmen auftreten [SWS_CRYPT_19906]. Ein potenzielles Fehlerszenario in der Anwendungslogik besteht darin, dass ein übergebener ara::core::ErrorCode unerwartete oder nicht-kryptografische Fehlerdomänen kapselt; vermutlich verarbeitet die Exception den Fehlercode dennoch neutral und transportiert ihn unverändert an den Behandler (Interpretation). Frage Q-0bb3376f547ce024 (offen) Ein weiteres Risiko auf Systemebene besteht im Unterlassen des Abfangens der Ausnahme, was im C++-Laufzeitumfeld zum Aufruf von std::terminate führen würde. Daher müssen aufrufende Komponenten, die APIs ohne fehlercodebasierte Rückgabe nutzen, kryptografische Aufrufe konsequent mit entsprechenden catch-Blöcken absichern.

Dieser Leitfaden basiert auf der Spezifikation von AUTOSAR Adaptive Release R25-11. Alle Angaben stützen sich ausschließlich auf die bereitgestellten Spezifikationsdaten zu ara::crypto::CryptoException.

UML-Klassendiagramm

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__crypto__CryptoException764 CryptoException + CryptoException() nara__core__Exception792 Exception nara__crypto__CryptoException764->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Konstruktoren und Destruktor

Construct a new CryptoException from an ErrorCode.

explicit CryptoException (ara::core::ErrorCode err) noexcept;

Dokumentation der Methoden

function CryptoException [SWS_CRYPT_19906] Upstream: RS_CRYPTO_02310

explicit CryptoException (ara::core::ErrorCode err) noexcept;

Construct a new CryptoException from an ErrorCode.

Header-Datei#include "ara/crypto/common/crypto_error_domain.h"
Scopeclass ara::crypto::CryptoException
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
errthe ErrorCode

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_19906
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_19906@rel:R25-11#9def4e0a
Content hash
9def4e0a
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_19906
Status: valid/unmigrated Version: rel:R25-11#e5b2b44f Versionshistorie & Revisions (1 transition, 7 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CRYPT_19906@rel:R25-11#e5b2b44f
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#9def4e0a2026-09-30
  • R20-11rel:R20-11#cce73a752026-10-14
  • R21-11rel:R21-11#cb340b962026-10-14
  • R22-11rel:R22-11#a0101a6a2026-10-14
  • R23-11rel:R23-11#773a91122026-10-14
  • R24-11rel:R24-11#1112adf52026-10-14
  • R25-11rel:R25-11#e5b2b44f2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill