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

Guia do utilizadorGERADO POR IA

Serve para encapsular e sinalizar erros provenientes de operações criptográficas como exceção C++ específica de tipo.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 1f6949d5652b Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Serve para encapsular e sinalizar erros provenientes de operações criptográficas como exceção C++ específica de tipo.

A classe ara::crypto::CryptoException atua na AUTOSAR Adaptive Platform como exceção especializada para sinalizar erros criptográficos para aplicações chamadoras. Ela deriva de ara::core::Exception e é explicitamente instanciada com um ara::core::ErrorCode em operações com falha [SWS_CRYPT_19906]. Devido à especificação como noexcept e thread-safe, a geração confiável de exceções é garantida mesmo em ambientes concorrentes, sem erros secundários [SWS_CRYPT_19906]. As aplicações devem proteger as chamadas criptográficas adequadamente para evitar exceções não tratadas e interrupções do programa.

Contexto

A classe ara::crypto::CryptoException define o tipo central de exceção para estados de erro dentro do módulo criptográfico da AUTOSAR Adaptive Platform. Como especialização da classe de exceção padrão ara::core::Exception, ela estabelece uma ponte entre o retorno baseado em código de erro, usado primariamente na plataforma, e os mecanismos clássicos de tratamento de exceções C++. Ela é aplicada em arquiteturas de sistemas nas quais operações criptográficas falham e esse estado de erro precisa ser propagado pela pilha de chamadas como uma exceção. Os parceiros de interação primários incluem módulos de função e serviços criptográficos, que disparam exceções em caso de erros imprevistos ou verificações explícitas, bem como componentes de aplicação superiores que iniciam processos criptográficos, como criptografia, verificação de assinatura ou gerenciamento de chaves, e interceptam eventuais erros. Por estar ancorada no conceito comum de domínio de erro da plataforma, ara::crypto::CryptoException assegura que erros criptográficos sejam relatados de forma consistente e tipada à lógica da aplicação.

Ciclo de vida

A criação de um objeto de ara::crypto::CryptoException ocorre de forma determinística por meio da passagem de um código de erro do tipo ara::core::ErrorCode para o construtor [SWS_CRYPT_19906]. Esse construtor é declarado como explicit para impedir conversões implícitas de tipo a partir de códigos de erro e possui a especificação noexcept [SWS_CRYPT_19906]. Esta última garante que nenhuma outra exceção possa ser disparada durante a própria construção da exceção, o que aumenta substancialmente a segurança operacional e contra exceções do subsistema criptográfico. De acordo com a especificação, a implementação é classificada como thread-safe [SWS_CRYPT_19906], de modo que instâncias possam ser instanciadas e processadas de forma confiável também em ambientes de execução concorrentes. Em relação à propriedade, a exceção é tipicamente lançada by-value e capturada no bloco de captura como referência constante. Como a classe não gerencia recursos dinâmicos além do código de erro, seu ciclo de vida termina regularmente ao sair do bloco catch de tratamento (interpretação). Pergunta (aberta)

Caminho de utilização

O caminho de uso regular começa dentro de uma operação criptográfica quando surge uma condição de erro que não pode ser resolvida localmente. O módulo identifica a causa do erro com base no domínio de erro criptográfico do arquivo de cabeçalho ara/crypto/common/crypto_error_domain.h e gera um ara::core::ErrorCode correspondente [SWS_CRYPT_19906]. Em seguida, uma instância de ara::crypto::CryptoException é instanciada com esse código de erro [SWS_CRYPT_19906] e sinalizada por meio de uma instrução throw. No lado da aplicação, o componente chamador captura a exceção de forma direcionada por meio de catch (const ara::crypto::CryptoException& e). Como alternativa, a hierarquia de herança também permite a captura polimórfica como ara::core::Exception genérica. Ao consultar o ara::core::ErrorCode contido, a aplicação pode analisar em seguida a causa específica do erro criptográfico e adotar contramedidas adequadas.

Fluxo de tratamento de exceções em erros criptográficosAplicaçãoKrypto-DienstCryptoExceptionKryptografische Operation anfordernFehlerbedingung festgestelltErrorCode erzeugtCryptoException(err) konstruieren[SWS_CRYPT_19906]Initialisierung (noexcept)throw CryptoExceptioncatch (const CryptoException&)

Diagrama de sequência: fluxo típico de tratamento de erros e disparo de exceções em operações criptográficas. Fontes: [SWS_CRYPT_19906]

Cenários de erro

Como ara::crypto::CryptoException representa em si o veículo para a sinalização de erros, o foco principal em cenários de erro recai sobre a robustez da geração da exceção. Ao assegurar a segurança de exceção e de threads, bem como a garantia noexcept do construtor, evita-se a ocorrência de exceções secundárias durante um tratamento de erro já ativo [SWS_CRYPT_19906]. Um potencial cenário de erro na lógica da aplicação consiste no fato de um ara::core::ErrorCode passado encapsular domínios de erro inesperados ou não criptográficos; presume-se que a exceção processe o código de erro de forma neutra mesmo assim e o transporte inalterado para o tratador (interpretação). Outro risco em nível de sistema é a omissão da captura da exceção, o que levaria à chamada de std::terminate no ambiente de execução C++. Portanto, componentes chamadores que utilizam APIs sem retorno baseado em códigos de erro precisam proteger chamadas criptográficas sistematicamente com blocos catch correspondentes. Pergunta Q-0bb3376f547ce024 (aberta)

Este guia baseia-se na especificação da AUTOSAR Adaptive Release R25-11. Todas as informações fundamentam-se exclusivamente nos dados de especificação fornecidos sobre ara::crypto::CryptoException.

Diagrama 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

Construtores e destrutor

Construct a new CryptoException from an ErrorCode.

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

Documentação dos métodos

função 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#80397044
Content hash
80397044
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