DEENESPTFRRUARHIKOZHNL

类 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

用户指南人工智能生成

用于将加密操作中的错误封装并作为类型特定的 C++ 异常进行指示。
AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 1f6949d5652b 来源 未决问题(2)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用于将加密操作中的错误封装并作为类型特定的 C++ 异常进行指示。

类 ara::crypto::CryptoException 在 AUTOSAR Adaptive Platform 中充当专用异常,用于向调用方应用程序指示加密错误。它派生自 ara::core::Exception,并在操作失败时显式使用 ara::core::ErrorCode 进行实例化 [SWS_CRYPT_19906]。通过指定为 noexcept 且线程安全,保证了即使在并发环境中也能可靠生成异常且不会产生后续错误 [SWS_CRYPT_19906]。应用程序必须相应地对加密调用进行保护,以避免未处理的异常和程序中止。

上下文

类 ara::crypto::CryptoException 定义了 AUTOSAR Adaptive Platform 加密模块内错误状态的核心异常类型。作为标准异常类 ara::core::Exception 的特化,它在平台主要使用的基于错误码的返回机制与传统 C++ 异常处理机制之间架起了一座桥梁。它适用于加密操作失败且该错误状态必须跨调用栈作为异常进行传播的系统架构中。主要交互方包括在发生意外错误或进行显式检查时触发异常的加密功能模块与服务,以及启动加密操作(如加密、签名验证或密钥管理)并捕获可能出现的错误的上层应用组件。通过融入平台的统一错误域概念,ara::crypto::CryptoException 确保了加密错误能够以一致且类型化的方式报告给应用逻辑。

生命周期

ara::crypto::CryptoException 对象的创建是确定性的,通过向构造函数 [SWS_CRYPT_19906] 传递 ara::core::ErrorCode 类型的错误码来实现。该构造函数声明为 explicit,以防止从错误码进行隐式类型转换,并具有说明 noexcept [SWS_CRYPT_19906]。后者保证了在构造异常本身时不会引发进一步的异常,从而显著提高了加密子系统的异常安全性和运行安全性。根据规范,该实现被归类为线程安全 [SWS_CRYPT_19906],因此在并发执行环境中也能可靠地实例化和处理其实例。在所有权方面,该异常通常按值(by-value)抛出,并在捕获块中绑定为常量引用。由于该类除了错误码之外不管理任何动态资源,因此其生命周期通常随着退出处理 catch 块而结束(解释)。 问题 (未决)

使用路径

常规使用路径始于加密操作内部发生无法在本地解决的错误条件之时。该模块根据来自头文件 ara/crypto/common/crypto_error_domain.h 的加密错误域识别错误原因,并生成相应的 ara::core::ErrorCode [SWS_CRYPT_19906]。随后,使用该错误码实例化 ara::crypto::CryptoException 的实例 [SWS_CRYPT_19906],并通过 throw 语句进行指示。在应用端,调用组件通过 catch (const ara::crypto::CryptoException& e) 有针对性地捕获该异常。或者,继承层次结构也允许将其作为泛型 ara::core::Exception 进行多态捕获。通过查询所包含的 ara::core::ErrorCode,应用程序随后可以分析具体的加密错误原因并采取适当的应对措施。

密码学错误的异常处理流程应用Krypto-DienstCryptoExceptionKryptografische Operation anfordernFehlerbedingung festgestelltErrorCode erzeugtCryptoException(err) konstruieren[SWS_CRYPT_19906]Initialisierung (noexcept)throw CryptoExceptioncatch (const CryptoException&)

时序图:加密操作中错误处理和异常触发的典型流程。来源:[SWS_CRYPT_19906]

错误场景

由于 ara::crypto::CryptoException 本身即是错误指示的载体,因此在错误场景下的重点在于异常生成的健壮性。通过保证异常安全、线程安全以及构造函数的 noexcept 保证,可防止在已有处于活动状态的错误处理期间发生二次异常 [SWS_CRYPT_19906]。应用逻辑中的一个潜在错误场景是传入的 ara::core::ErrorCode 封装了意外的或非加密的错误域;推测 Exception 仍会中立地处理该错误码并原样传输给处理程序(解释)。 问题 Q-0bb3376f547ce024 (未决)系统层面的另一个风险是未能捕获该异常,这在 C++ 运行时环境中会导致调用 std::terminate。因此,使用不带错误码返回机制的 API 的调用组件必须始终使用相应的 catch 块来保护加密调用。

本指南基于 AUTOSAR Adaptive Release R25-11 规范。所有说明均仅基于针对 ara::crypto::CryptoException 提供的规范数据。

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

构造函数和析构函数

Construct a new CryptoException from an ErrorCode.

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

方法文档

函数 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#dda9b87d
Content hash
dda9b87d
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