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++-исключения.
СОЗДАНО ИИ не проверено Модель: 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 выполняется детерминированно путем передачи кода ошибки типа ara::core::ErrorCode в конструктор [SWS_CRYPT_19906]. Этот конструктор объявлен как 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

Конструкторы и деструктор

CryptoException функция

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#421839d4
Content hash
421839d4
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