DEENESPTFRRUARHIKOZHNL

класс ara::crypto::cryp::CryptoObject

[SWS_CRYPT_20500] Upstream: RS_CRYPTO_02005

class CryptoObject :           public ara::crypto::Serializable {...};

A common interface for all cryptographic objects recognizable by the Crypto Provider.

Header-Datei#include "ara/crypto/cryp/cryobj/crypto_object.h"
Forwarding-Header#include "ara/crypto/crypto_fwd.h"
Scopenamespace ara::crypto::cryp
Basisklasse(n)ara::crypto::Serializable

Руководство пользователяСОЗДАНО ИИ

Служит общим интерфейсом для потокобезопасной инспекции и персистентного сохранения криптографических объектов.
СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 156a618ba987 Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Служит общим интерфейсом для потокобезопасной инспекции и персистентного сохранения криптографических объектов.

Интерфейс ara::crypto::cryp::CryptoObject определяет общую абстракцию для всех криптографических объектов в стеке Adaptive Crypto и управляет их жизненным циклом через Sptr [SWS_CRYPT_20501]. Он обеспечивает потокобезопасное считывание идентификаторов алгоритмов, а также флагов использования и поддерживает постоянную перезапись ключевого материала в WriteableKeySlot [SWS_CRYPT_20505], [SWS_CRYPT_20517]. При операции сохранения определенные коды ошибок с семантикой отката гарантируют целостность данных базового слота хранения [SWS_CRYPT_20517].

Контекст

Интерфейс ara::crypto::cryp::CryptoObject образует общую абстракцию для всех криптографических объектов, которые могут распознаваться и администрироваться криптопровайдером. Класс расширяет ara::crypto::Serializable и определяет базовые свойства, такие как идентификация алгоритма, ограничения использования, а также механизмы персистентного сохранения. Типичными партнерами по взаимодействию являются вызывающие приложения, предоставляющий криптопровайдер, а также целевое хранилище в виде экземпляров WriteableKeySlot.

Жизненный цикл

Криптографические объекты администрируются внутри платформы главным образом через разделяемое владение. Для этого класс определяет канонический псевдоним интеллектуального указателя ara::crypto::cryp::CryptoObject::Sptr как std::shared_ptr<CryptoObject> [SWS_CRYPT_20501]. Конкретные экземпляры, по-видимому, инстанцируются специализированными процедурами фабрики и загрузки криптопровайдера и предоставляются вызывающей стороне через этот тип указателя. Вопрос Q-36e2bd12d7dc8b98 (открытый) Все объявленные методы интерфейса специфицированы как thread-safe и безопасные относительно исключений (exception safe, noexcept), благодаря чему обеспечивается безопасный параллельный доступ на чтение и сохранение из нескольких потоков [SWS_CRYPT_20505], [SWS_CRYPT_50092], [SWS_CRYPT_20517]. Освобождение объекта и соответствующего ключевого материала происходит автоматически, как только перестает существовать последняя ссылка Sptr.

Путь использования

Типичный путь использования включает идентификацию криптографических свойств объекта и его последующее персистентное сохранение. Сначала приложение опрашивает через GetAlgId() идентификатор алгоритма объекта как ara::crypto::AlgIdString [SWS_CRYPT_20505]. Затем через GetAllowedUsage() определяются допустимые флаги использования (AllowedUsageFlags) [SWS_CRYPT_50092], чтобы убедиться, что объект авторизован для предполагаемой операции. Для долговременного сохранения приложение передает доступный для записи слот ключа в метод Save() [SWS_CRYPT_20517]. После этого ключевой материал и сопутствующие метаданные сохраняются в целевом слоте, при этом ранее присутствовавшие данные в слоте перезаписываются [SWS_CRYPT_20517].

Инспекция и сохранение объекта CryptoObjectПриложениеCryptoObjectWriteableKeySlotGetAlgId()AlgIdStringGetAllowedUsage()AllowedUsageFlags (kAllowPersist)Save(keyslot)записать ключевой материал и метаданныеSpeicherquittungResult<void>

Диаграмма последовательности: типичный процесс инспекции и персистирования криптографического объекта в KeySlot. Источники: [SWS_CRYPT_20505], [SWS_CRYPT_50092], [SWS_CRYPT_20517].

Сценарии ошибок

В то время как GetAlgId() [SWS_CRYPT_20505] и GetAllowedUsage() [SWS_CRYPT_50092] не содержат стандартизированных кодов ошибок и в случае успеха возвращают соответствующий результат в ara::core::Result, операция персистирования Save() определяет специфические условия ошибок с обязательной семантикой отката [SWS_CRYPT_20517]:

  • ara::crypto::CryptoErrc::kIncompatibleObject: возникает, если объект несовместим с переданным WriteableKeySlot, например, из-за несовпадения идентификаторов алгоритмов (AlgId) или принадлежности KeySlot к другому криптопровайдеру [SWS_CRYPT_20517].
  • ara::crypto::CryptoErrc::kUsageViolation: сигнализирует о недопустимом использовании, если объявленные через GetAllowedUsage() флаги использования ключа не содержат права на персистирование (kAllowPersist) [SWS_CRYPT_50092], [SWS_CRYPT_20517].
  • ara::crypto::CryptoErrc::kBusyResource: возвращается, если базовый ресурс хранения временно занят и операция не может быть выполнена немедленно [SWS_CRYPT_20517].

Благодаря семантике отката состояние WriteableKeySlot при каждой из этих ошибок остается неповрежденным, исключая сохранение в памяти частично записанных или поврежденных данных ключа [SWS_CRYPT_20517].

Настоящее руководство основано на спецификации AUTOSAR Adaptive R25-11 и обобщает требования к интерфейсу ara::crypto::cryp::CryptoObject.

Карта членов

Псевдонимы типов

1

Диаграмма классов

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__crypto__cryp__CryptoObject679 CryptoObject + GetAlgId() + GetAllowedUsage() + Save() nara__crypto__Serializable855 Serializable nara__crypto__cryp__CryptoObject679->nara__crypto__Serializable855 nara__crypto__cryp__PrivateKey762 PrivateKey nara__crypto__cryp__PrivateKey762->nara__crypto__cryp__CryptoObject679 nara__crypto__cryp__PublicKey940 PublicKey nara__crypto__cryp__PublicKey940->nara__crypto__cryp__CryptoObject679 nara__crypto__cryp__SymmetricKey111 SymmetricKey nara__crypto__cryp__SymmetricKey111->nara__crypto__cryp__CryptoObject679

Подробный вид

Выберите элемент в оглавлении.

Методы

GetAlgId функция

The interface shall return the AlgId of this CryptoObject.

virtual ara::core::Result< ara::crypto::AlgIdString > GetAlgId () const noexcept=0;
GetAllowedUsage функция

The interface shall return the allowed usage of the key.

virtual ara::core::Result< AllowedUsageFlags > GetAllowedUsage () const noexcept=0;
Save функция

The interface shall persistently store the key-material and its meta-data in the provided WriteableKeySlot. Data previously stored in keyslot shall be overwritten.

virtual ara::core::Result< void > Save (WriteableKeySlot::Sptr keyslot) const noexcept=0;

Псевдонимы типов

Sptr псевдоним типа

Smart pointer of the interface.

Документация методов

функция GetAlgId [SWS_CRYPT_20505] Upstream: RS_CRYPTO_02005

virtual ara::core::Result< ara::crypto::AlgIdString > GetAlgId () const noexcept=0;

The interface shall return the AlgId of this CryptoObject.

Header-Datei#include "ara/crypto/cryp/cryobj/crypto_object.h"
Scopeclass ara::crypto::cryp::CryptoObject
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Rückgabewert

TypBeschreibung
ara::core::Result<ara::crypto::AlgIdString >A result containing the AlgId of this CryptoObject

Fehler

FehlercodeBeschreibung
This function does not specify any standardized errors.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_20505
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_20505@rel:R25-11#ce451242
Content hash
ce451242
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_20505
Status: valid/unmigrated Version: rel:R25-11#974298db 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_20505@rel:R25-11#974298db
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#fa5364ac2026-09-30
  • R20-11rel:R20-11#3073d8c92026-10-14
  • R21-11rel:R21-11#3073d8c92026-10-14
  • R22-11rel:R22-11#131cf8662026-10-14
  • R23-11rel:R23-11#b34bd5a42026-10-14
  • R24-11rel:R24-11#36c55a302026-10-14
  • R25-11rel:R25-11#974298db2026-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

функция GetAllowedUsage [SWS_CRYPT_50092] Upstream: RS_CRYPTO_02005

virtual ara::core::Result< AllowedUsageFlags > GetAllowedUsage () const noexcept=0;

The interface shall return the allowed usage of the key.

Header-Datei#include "ara/crypto/cryp/cryobj/crypto_object.h"
Scopeclass ara::crypto::cryp::CryptoObject
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Rückgabewert

TypBeschreibung
ara::core::Result<AllowedUsageFlags >A result containing the allowed usage of the key

Fehler

FehlercodeBeschreibung
This function does not specify any standardized errors.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_50092
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50092@rel:R25-11#9c91d8e9
Content hash
9c91d8e9
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50092
Status: valid/unmigrated Version: rel:R25-11#eb9b3394 Versionshistorie & Revisions (1 transition)
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_50092@rel:R25-11#eb9b3394
Point-in-Time History:
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

функция Save [SWS_CRYPT_20517] Upstream: RS_CRYPTO_02004

virtual ara::core::Result< void > Save (WriteableKeySlot::Sptr keyslot) const noexcept=0;

The interface shall persistently store the key-material and its meta-data in the provided WriteableKeySlot. Data previously stored in keyslot shall be overwritten.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 0aae854cf6a9 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Метод Save интерфейса ara::crypto::cryp::CryptoObject служит для персистентного сохранения ключевого материала вместе с соответствующими метаданными в предоставленном WriteableKeySlot ([SWS_CRYPT_20517]). Ранее сохраненные в целевом KeySlot данные перезаписываются при выполнении ([SWS_CRYPT_20517]).

В качестве параметра передается keyslot типа WriteableKeySlot::Sptr, который представляет базовое место хранения ([SWS_CRYPT_20517]). Функция специфицирована как noexcept, а также exception safe и возвращает в качестве возвращаемого значения ara::core::Result<void>, которое в случае успеха является пустым ([SWS_CRYPT_20517]).

В случае ошибки действует семантика отката ([SWS_CRYPT_20517]). В частности, возвращаются следующие коды ошибок:

  • ara::crypto::CryptoErrc::kIncompatibleObject: ключ несовместим с KeySlot, например, из-за несовпадающего AlgId или привязки к другому CryptoProvider ([SWS_CRYPT_20517]).
  • ara::crypto::CryptoErrc::kUsageViolation: допустимое использование ключа не включает право kAllowPersist ([SWS_CRYPT_20517]).
  • ara::crypto::CryptoErrc::kBusyResource: операция временно не может быть выполнена ([SWS_CRYPT_20517]).

Что касается параллелизма, метод объявлен как thread-safe ([SWS_CRYPT_20517]).

Данное указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR R25-11.

Руководство разработчика реализации в подготовке (сложность I1)

Header-Datei#include "ara/crypto/cryp/cryobj/crypto_object.h"
Scopeclass ara::crypto::cryp::CryptoObject
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
keyslotKeySlot representing the underlying storage

Rückgabewert

TypBeschreibung
ara::core::Result< void >An empty result or an error

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kIncompatibleObjectrollback_semantics if the key is incompatible to the KeySlot, e.g., because the AlgId of the KeySlot is incompatible to the AlgId of the key or because the KeySlot belongs to a different CryptoProvider
ara::crypto::CryptoErrc::kUsageViolationrollback_semantics if the allowed usage of the key does not include kAllowPersist
ara::crypto::CryptoErrc::kBusyResourcerollback_semantics if the operation temporarily cannot be performed

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_20517
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_20517@rel:R25-11#f234ff63
Content hash
f234ff63
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_20517
Status: valid/unmigrated Version: rel:R25-11#27ad83e4 Versionshistorie & Revisions (1 transition, 8 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_20517@rel:R25-11#27ad83e4
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#401495a62026-09-30
  • R19-11rel:R19-11#12df20182026-10-14
  • R20-11rel:R20-11#74dce1282026-10-14
  • R21-11rel:R21-11#9fdecde72026-10-14
  • R22-11rel:R22-11#4e577c772026-10-14
  • R23-11rel:R23-11#302bac292026-10-14
  • R24-11rel:R24-11#7745263b2026-10-14
  • R25-11rel:R25-11#27ad83e42026-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

Документация псевдонимов типов

псевдоним типа Sptr [SWS_CRYPT_20501] Upstream: RS_CRYPTO_02005

using Sptr = std::shared_ptr<CryptoObject>;

Smart pointer of the interface.

Header-Datei#include "ara/crypto/cryp/cryobj/crypto_object.h"
Scopeclass ara::crypto::cryp::CryptoObject
SymbolSptr

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_20501
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_20501@rel:R25-11#61034730
Content hash
61034730
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_20501
Status: valid/unmigrated Version: rel:R25-11#4816c7c1 Versionshistorie & Revisions (1 transition, 8 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_20501@rel:R25-11#4816c7c1
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#2f0be81f2026-09-30
  • R19-11rel:R19-11#b83af8272026-10-14
  • R20-11rel:R20-11#eb73b7d72026-10-14
  • R21-11rel:R21-11#eb73b7d72026-10-14
  • R22-11rel:R22-11#cc06a6ac2026-10-14
  • R23-11rel:R23-11#0db32e6b2026-10-14
  • R24-11rel:R24-11#0db32e6b2026-10-14
  • R25-11rel:R25-11#4816c7c12026-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