DEENESPTFRRUARHIKOZHNL

clase 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

Guía del usuarioGENERADO POR IA

Sirve para encapsular y señalizar errores de operaciones criptográficas como excepción de C++ específica del tipo.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 1f6949d5652b Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Sirve para encapsular y señalizar errores de operaciones criptográficas como excepción de C++ específica del tipo.

La clase ara::crypto::CryptoException actúa en la AUTOSAR Adaptive Platform como excepción especializada para señalizar errores criptográficos a las aplicaciones invocadoras. Se deriva de ara::core::Exception y, en caso de operaciones fallidas, se instancia explícitamente con un ara::core::ErrorCode [SWS_CRYPT_19906]. Gracias a la especificación como noexcept y segura para hilos, se garantiza una generación de excepciones fiable incluso en entornos concurrentes sin errores derivados [SWS_CRYPT_19906]. Las aplicaciones deben proteger adecuadamente las llamadas criptográficas para evitar excepciones no gestionadas e interrupciones del programa.

Contexto

La clase ara::crypto::CryptoException define el tipo de excepción central para estados de error dentro del módulo criptográfico de la AUTOSAR Adaptive Platform. Como especialización de la clase de excepción estándar ara::core::Exception, tiende un puente entre el retorno basado en códigos de error utilizado principalmente en la plataforma y los mecanismos clásicos de tratamiento de excepciones de C++. Se utiliza en arquitecturas de sistema en las que las operaciones criptográficas fallan y este estado de error debe propagarse a través de la pila de llamadas como excepción. Entre los interlocutores principales se cuentan los módulos funcionales y servicios criptográficos, que lanzan excepciones en caso de errores imprevistos o comprobaciones explícitas, así como componentes de aplicación de nivel superior, que inician operaciones criptográficas como cifrado, verificación de firma o gestión de claves y capturan posibles errores. Al estar anclada en el concepto común de dominios de error de la plataforma, ara::crypto::CryptoException asegura que los errores criptográficos se notifiquen de forma consistente y tipificada a la lógica de aplicación.

Ciclo de vida

La creación de un objeto de ara::crypto::CryptoException se realiza de forma determinista pasando un código de error del tipo ara::core::ErrorCode al constructor [SWS_CRYPT_19906]. Este constructor está declarado como explicit para impedir conversiones de tipos implícitas a partir de códigos de error, y posee la especificación noexcept [SWS_CRYPT_19906]. Esto último garantiza que durante la propia construcción de la excepción no puedan lanzarse más excepciones, lo que incrementa notablemente la seguridad frente a excepciones y operativa del subsistema criptográfico. Según la especificación, la implementación está catalogada como thread-safe [SWS_CRYPT_19906], de modo que las instancias también pueden instanciarse y procesarse de manera fiable en entornos de ejecución concurrentes. En cuanto a las relaciones de propiedad, la excepción se lanza típicamente by-value y se vincula en el bloque de captura como referencia constante. Dado que la clase no gestiona recursos dinámicos más allá del código de error, su ciclo de vida finaliza regularmente al salir del bloque catch de tratamiento (interpretación). Pregunta (abierta)

Ruta de uso

La ruta de uso regular comienza dentro de una operación criptográfica cuando surge una condición de error que no puede resolverse localmente. El módulo identifica la causa del error mediante el dominio de error criptográfico del archivo de cabecera ara/crypto/common/crypto_error_domain.h y genera un ara::core::ErrorCode correspondiente [SWS_CRYPT_19906]. A continuación, se instancia una instancia de ara::crypto::CryptoException con este código de error [SWS_CRYPT_19906] y se señaliza mediante una sentencia throw. En el lado de la aplicación, el componente invocador captura la excepción de forma específica mediante catch (const ara::crypto::CryptoException& e). De manera alternativa, la jerarquía de herencia también permite la captura polimórfica como ara::core::Exception genérica. Mediante la consulta del ara::core::ErrorCode contenido, la aplicación puede analizar a continuación la causa específica del error criptográfico y adoptar las contramedidas adecuadas.

Flujo del tratamiento de excepciones en caso de errores criptográficosAplicaciónKrypto-DienstCryptoExceptionKryptografische Operation anfordernFehlerbedingung festgestelltErrorCode erzeugtCryptoException(err) konstruieren[SWS_CRYPT_19906]Initialisierung (noexcept)throw CryptoExceptioncatch (const CryptoException&)

Diagrama de secuencia: flujo típico del tratamiento de errores y lanzamiento de excepciones en operaciones criptográficas. Fuentes: [SWS_CRYPT_19906]

Escenarios de error

Dado que ara::crypto::CryptoException representa en sí mismo el vehículo para la señalización de errores, la atención principal en los escenarios de error se centra en la robustez de la generación de la excepción. Mediante la garantía de seguridad frente a excepciones y para hilos, así como la garantía noexcept del constructor, se evita que surjan excepciones secundarias durante un tratamiento de errores que ya está activo [SWS_CRYPT_19906]. Un escenario de error potencial en la lógica de aplicación consiste en que un ara::core::ErrorCode pasado encapsule dominios de error inesperados o no criptográficos; presumiblemente, la excepción procesa el código de error de forma neutral y lo transporta inalterado al manejador (interpretación). Pregunta Q-0bb3376f547ce024 (abierta) Otro riesgo a nivel de sistema reside en omitir la captura de la excepción, lo que en el entorno de ejecución de C++ conllevaría la llamada a std::terminate. Por ello, los componentes invocadores que utilicen API sin retorno basado en códigos de error deben proteger consecuentemente las llamadas criptográficas con los bloques catch correspondientes.

Esta guía se basa en la especificación de AUTOSAR Adaptive Release R25-11. Todos los datos se apoyan exclusivamente en los datos de especificación facilitados sobre ara::crypto::CryptoException.

Diagrama de clases 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

Constructores y destructor

Construct a new CryptoException from an ErrorCode.

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

Documentación de los métodos

función 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#90de25c8
Content hash
90de25c8
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