DEENESPTFRRUARHIKOZHNL

classe 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

Guide utilisateurGÉNÉRÉ PAR IA

Sert à encapsuler et signaler des erreurs issues d'opérations cryptographiques sous forme d'exception C++ spécifique au type.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 1f6949d5652b Provenance Questions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Sert à encapsuler et signaler des erreurs issues d'opérations cryptographiques sous forme d'exception C++ spécifique au type.

La classe ara::crypto::CryptoException agit dans l'AUTOSAR Adaptive Platform comme une exception spécialisée pour signaler les erreurs cryptographiques aux applications appelantes. Elle dérive de ara::core::Exception et est explicitement instanciée avec un ara::core::ErrorCode lors d'opérations ayant échoué [SWS_CRYPT_19906]. Grâce à sa spécification comme noexcept et sûre pour les threads, une génération fiable d'exceptions est garantie sans erreurs consécutives, y compris dans des environnements concurrents [SWS_CRYPT_19906]. Les applications doivent protéger les appels cryptographiques en conséquence afin d'éviter les exceptions non gérées et les interruptions de programme.

Contexte

La classe ara::crypto::CryptoException définit le type d'exception central pour les états d'erreur au sein du module crypto de l'AUTOSAR Adaptive Platform. En tant que spécialisation de la classe d'exception standard ara::core::Exception, elle établit une passerelle entre le retour par code d'erreur principalement utilisé dans la plateforme et les mécanismes classiques de gestion des exceptions en C++. Elle est employée dans des architectures système où des opérations cryptographiques échouent et où cet état d'erreur doit être propagé à travers la pile d'appels sous forme d'exception. Parmi les partenaires d'interaction principaux figurent les modules fonctionnels et services cryptographiques, qui lèvent des exceptions lors d'erreurs imprévues ou de vérifications explicites, ainsi que les composants applicatifs de niveau supérieur, qui déclenchent des opérations cryptographiques telles que le chiffrement, la vérification de signature ou la gestion des clés et interceptent les erreurs éventuelles. Par son ancrage dans le concept commun de domaine d'erreur de la plateforme, ara::crypto::CryptoException garantit que les erreurs cryptographiques sont signalées de manière cohérente et typée à la logique applicative.

Cycle de vie

La création d'un objet de ara::crypto::CryptoException s'effectue de manière déterministe en transmettant un code d'erreur de type ara::core::ErrorCode au constructeur [SWS_CRYPT_19906]. Ce constructeur est déclaré comme explicit afin d'empêcher les conversions implicites de type à partir de codes d'erreur, et possède la spécification noexcept [SWS_CRYPT_19906]. Cette dernière garantit qu'aucune autre exception ne peut être levée lors de la construction de l'exception elle-même, ce qui augmente considérablement la sécurité vis-à-vis des exceptions et la sécurité de fonctionnement du sous-système crypto. Conformément à la spécification, l'implémentation est classée comme thread-safe [SWS_CRYPT_19906], de sorte que les instances peuvent être instanciées et traitées de manière fiable même dans des environnements d'exécution concurrents. Concernant la propriété, l'exception est généralement levée par valeur et liée comme référence constante dans le bloc d'interception. Comme la classe ne gère aucune ressource dynamique au-delà du code d'erreur, son cycle de vie se termine normalement en quittant le bloc catch traitant (interprétation). Question (ouverte)

Parcours d'utilisation

Le chemin d'utilisation normal commence au sein d'une opération cryptographique lorsqu'une condition d'erreur survient et ne peut pas être résolue localement. Le module identifie la cause de l'erreur à l'aide du domaine d'erreur cryptographique issu du fichier d'en-tête ara/crypto/common/crypto_error_domain.h et génère un ara::core::ErrorCode correspondant [SWS_CRYPT_19906]. Ensuite, une instance de ara::crypto::CryptoException est instanciée avec ce code d'erreur [SWS_CRYPT_19906] et signalée au moyen d'une instruction throw. Côté application, le composant appelant intercepte l'exception de manière ciblée via catch (const ara::crypto::CryptoException& e). Alternativement, la hiérarchie d'héritage permet également une interception polymorphe sous forme de ara::core::Exception générique. En interrogeant le ara::core::ErrorCode contenu, l'application peut ensuite analyser la cause spécifique de l'erreur cryptographique et prendre les contre-mesures appropriées.

Déroulement du traitement des exceptions lors d'erreurs cryptographiquesApplicationKrypto-DienstCryptoExceptionKryptografische Operation anfordernFehlerbedingung festgestelltErrorCode erzeugtCryptoException(err) konstruieren[SWS_CRYPT_19906]Initialisierung (noexcept)throw CryptoExceptioncatch (const CryptoException&)

Diagramme de séquence : déroulement typique de la gestion des erreurs et de la levée d'exceptions lors d'opérations cryptographiques. Sources : [SWS_CRYPT_19906]

Scénarios d'erreur

Comme ara::crypto::CryptoException constitue lui-même le vecteur de signalement des erreurs, l'attention principale lors des scénarios d'erreur porte sur la robustesse de la génération de l'exception. La garantie de sécurité vis-à-vis des exceptions et des threads ainsi que la garantie noexcept du constructeur évitent l'apparition d'exceptions secondaires lors d'un traitement d'erreur déjà actif [SWS_CRYPT_19906]. Un scénario d'erreur potentiel dans la logique applicative consiste en ce qu'un ara::core::ErrorCode transmis encapsule des domaines d'erreur inattendus ou non cryptographiques ; l'exception traite vraisemblablement le code d'erreur de manière neutre malgré tout et le transmet sans modification au gestionnaire (interprétation). Question Q-0bb3376f547ce024 (ouverte) Un autre risque au niveau du système réside dans l'omission de l'interception de l'exception, ce qui conduirait à l'appel de std::terminate dans l'environnement d'exécution C++. Par conséquent, les composants appelants qui utilisent des API sans retour basé sur des codes d'erreur doivent impérativement protéger les appels cryptographiques avec des blocs catch appropriés.

Ce guide est basé sur la spécification d'AUTOSAR Adaptive Release R25-11. Toutes les indications s'appuient exclusivement sur les données de spécification fournies concernant ara::crypto::CryptoException.

Diagramme de classes UML

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

Constructeurs et destructeur

Construct a new CryptoException from an ErrorCode.

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

Documentation des méthodes

fonction 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#a0507068
Content hash
a0507068
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