DEENESPTFRRUARHIKOZHNL

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

[SWS_CRYPT_21800] Upstream: RS_CRYPTO_02104, RS_CRYPTO_02209

class KeyEncapsulatorPublicCtx :                public CryptoContext {...};

Asymmetric Key Encapsulation Mechanism (KEM) Public key Context interface.

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

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

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

Инкапсулирует симметричные ключи асимметрично с использованием открытых ключей или генерирует их в процессе инкапсуляции.

Интерфейс ara::crypto::cryp::KeyEncapsulatorPublicCtx позволяет использовать механизмы асимметричной инкапсуляции ключей (KEM) для упаковки симметричных ключей с целью безопасного обмена или для их генерации непосредственно в процессе инкапсуляции ([SWS_CRYPT_50011]). Перед выполнением контекст должен быть инициализирован через SetKey с помощью открытого ключа или слота, а также должен быть определен требуемый размер выходного буфера ([SWS_CRYPT_21815]). Существенными граничными условиями являются обязательные флаги использования ключа, такие как kAllowKeyWrapping, а также полная потокобезопасность всех операций.

Контекст

Интерфейс ara::crypto::cryp::KeyEncapsulatorPublicCtx определяет асимметричный контекст для механизмов инкапсуляции ключей (Key Encapsulation Mechanisms, KEM) с использованием открытого ключа. В криптографической архитектуре AUTOSAR Adaptive класс служит для безопасного обмена и транспортировки ключей. Он принимает открытый асимметричный ключ для инкапсуляции существующего симметричного ключа ([SWS_CRYPT_21813]) либо для генерации и предоставления нового симметричного ключа в ходе инкапсуляции ([SWS_CRYPT_50011]). При этом ключевая основа может быть подключена в виде прямого объекта ключа PublicKey ([SWS_CRYPT_21815]) или через постоянный слот KeySlot ([SWS_CRYPT_50012]).

diag_kem_kontext Anwendung Anwendung KeyEncapsulatorPublicCtx KeyEncapsulatorPublicCtx Anwendung->KeyEncapsulatorPublicCtx SymmetricKey SymmetricKey KeyEncapsulatorPublicCtx->SymmetricKey PublicKey PublicKey PublicKey->KeyEncapsulatorPublicCtx KeySlot KeySlot KeySlot->KeyEncapsulatorPublicCtx

Диаграмма контекста: интеграция KeyEncapsulatorPublicCtx между приложением, источниками ключей и целевыми ключами. Источники: [SWS_CRYPT_21813], [SWS_CRYPT_21815], [SWS_CRYPT_50011], [SWS_CRYPT_50012]

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

Экземпляры KeyEncapsulatorPublicCtx управляются через типизированный умный указатель KeyEncapsulatorPublicCtx::Sptr, определенный как std::shared_ptr<KeyEncapsulatorPublicCtx> ([SWS_CRYPT_21801]). Фактическое создание объекта, вероятно, осуществляется через нижележащую фабрику провайдера платформы, поскольку класс представляет собой чисто виртуальный интерфейс. Вопрос Q-3551020e7b9c0f0c (открытый)

После создания контекст находится в состоянии неполной инициализации. Пока контексту не назначен открытый ключ, вызовы для вычисления размера буфера ([SWS_CRYPT_50013]), а также операции инкапсуляции ([SWS_CRYPT_21813], [SWS_CRYPT_50011]) завершаются с ошибкой CryptoErrc::kUninitializedContext. Готовность к работе достигается путем конфигурации через SetKey с PublicKey::Sptr ([SWS_CRYPT_21815]) или KeySlot::Sptr ([SWS_CRYPT_50012]). При назначении KeySlot содержащийся открытый ключ, вероятно, динамически считывается только во время фактического выполнения инкапсуляции. Вопрос Q-ea760070f05941d2 (открытый) Все методы контекста согласно спецификации являются потокобезопасными и гарантируют безопасность относительно исключений ([SWS_CRYPT_21813], [SWS_CRYPT_50011], [SWS_CRYPT_50013], [SWS_CRYPT_21815], [SWS_CRYPT_50012]).

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

Практическое применение контекста следует определенному порядку: привязка ключа, определение размера буфера и выполнение инкапсуляции:

  • Привязка ключа: приложение инициализирует контекст через SetKey либо с загруженным PublicKey ([SWS_CRYPT_21815]), либо с KeySlot ([SWS_CRYPT_50012]).
  • Определение размера буфера: перед предоставлением выходного буфера приложение определяет максимально требуемый размер вывода в байтах через GetRequiredOutputBufferSize(algId) ([SWS_CRYPT_50013]) для предполагаемого целевого симметричного алгоритма и резервирует соответствующий ReadWriteMemRegion.
  • Выполнение инкапсуляции: в зависимости от цели применения приложение выбирает один из двух вариантов инкапсуляции:
    • Предоставление существующего ключа: Encapsulate(key, encapsulatedKey) инкапсулирует переданный SymmetricKey и возвращает количество записанных байтов ([SWS_CRYPT_21813]).
    • Автономная генерация: Encapsulate(algId, allowedUsage, encapsulatedKey) создает новый симметричный ключ в соответствии с требуемыми флагами использования и возвращает пару из размера в байтах и нового SymmetricKey::Sptr ([SWS_CRYPT_50011]).
Последовательность инкапсуляции ключаПриложениеKeyEncapsulatorPublicCtxUse Case: Конфигурация ключа инкапсуляцииSetKey(key / keySlot)Result<void>Use Case: Проверка размера буфераGetRequiredOutputBufferSize(algId)Result<std::size_t>Use Case: KapselungaltСуществующий ключEncapsulate(key, memRegion)Result<std::size_t>Генерируется новый ключEncapsulate(algId, usage, memRegion)Result<std::pair<std::size_t, SymmetricKey::Sptr>>

Диаграмма последовательности: типичная последовательность вызовов от назначения ключа через вычисление буфера до инкапсуляции ключа. Источники: [SWS_CRYPT_21813], [SWS_CRYPT_21815], [SWS_CRYPT_50011], [SWS_CRYPT_50013]

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

Методы KeyEncapsulatorPublicCtx сообщают об ошибках через ara::core::Result со значениями из ara::crypto::CryptoErrc и обеспечивают семантику отката в случае сбоя. Основные ошибочные ситуации включают:

  • CryptoErrc::kUninitializedContext: возникает, если GetRequiredOutputBufferSize ([SWS_CRYPT_50013]) или Encapsulate ([SWS_CRYPT_21813], [SWS_CRYPT_50011]) вызывается без предварительной успешной конфигурации с помощью SetKey.
  • CryptoErrc::kUsageViolation: сигнализирует о недопустимом использовании ключа. Это происходит, если у ключа инкапсуляции отсутствует флаг kAllowKeyWrapping ([SWS_CRYPT_21815], [SWS_CRYPT_21813], [SWS_CRYPT_50011]) или если инкапсулируемый симметричный ключ не разрешен для защищенного экспорта через kAllowSecuredExport ([SWS_CRYPT_21813]).
  • CryptoErrc::kIncompatibleObject: указывает на то, что переданный ключ или слот несовместим с алгоритмом контекста ([SWS_CRYPT_21815], [SWS_CRYPT_50012], [SWS_CRYPT_21813]).
  • CryptoErrc::kInsufficientCapacity и CryptoErrc::kInvalidInputSize: генерируются, если переданный ReadWriteMemRegion не обладает требуемой емкостью буфера или входной размер ключа не поддерживается ([SWS_CRYPT_21813], [SWS_CRYPT_50011]).
  • CryptoErrc::kEmptyKeySlot и CryptoErrc::kBusyResource: возникают, если привязанный через SetKey KeySlot пуст во время выполнения инкапсуляции или задействованный аппаратный ресурс занят ([SWS_CRYPT_21813], [SWS_CRYPT_50011]).
  • CryptoErrc::kUnsupported: возвращается, если реализация контекста поддерживает исключительно объекты ключей вместо слотов ([SWS_CRYPT_50012]) или наоборот ([SWS_CRYPT_21815]), либо если установка внешних ключей или автономная генерация ключей не поддерживаются в контексте ([SWS_CRYPT_21813], [SWS_CRYPT_50011]).

Данное руководство основано исключительно на спецификациях AUTOSAR Adaptive Platform Release R25-11.

Карта членов

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

1

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

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

G nara__crypto__cryp__KeyEncapsulatorPublicCtx699 KeyEncapsulatorPublicCtx + Encapsulate() + GetRequiredOutputBufferSize() + SetKey() nara__crypto__cryp__CryptoContext85 CryptoContext nara__crypto__cryp__KeyEncapsulatorPublicCtx699->nara__crypto__cryp__CryptoContext85

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

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

Методы

Encapsulate функция 2

Encapsulate the provided symmetric key.

Перегрузки Encapsulate 2
virtual ara::core::Result< std::size_t > Encapsulate (Symmetric Key::Sptr key, ReadWriteMemRegion encapsulatedKey) const noexcept=0; SWS_CRYPT_21813
virtual ara::core::Result< std::pair< std::size_t, SymmetricKey::Sptr > > Encapsulate (AlgId algId, AllowedUsageFlags allowedUsage, Read WriteMemRegion encapsulatedKey) const noexcept=0; SWS_CRYPT_50011

Calculate the maximum required size of the output buffer depending on the input size in the current state of the context.

virtual ara::core::Result< std::size_t > GetRequiredOutputBufferSize (AlgId algId) const noexcept;
SetKey функция 2

Configure the context to use the provided key as encapsulation key.

Перегрузки SetKey 2
virtual ara::core::Result< void > SetKey (PublicKey::Sptr key) noexcept=0; SWS_CRYPT_21815
virtual ara::core::Result< void > SetKey (KeySlot::Sptr keySlot) noexcept=0; SWS_CRYPT_50012

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

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

Smart pointer of the interface.

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

функция Encapsulate [SWS_CRYPT_21813] Upstream: RS_CRYPTO_02102, RS_CRYPTO_02108, RS_CRYPTO_02115

virtual ara::core::Result< std::size_t > Encapsulate (Symmetric Key::Sptr key, ReadWriteMemRegion encapsulatedKey) const noexcept=0;

Encapsulate the provided symmetric key.

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

Синхронный метод Encapsulate инкапсулирует переданный симметричный ключ (key) и записывает результат в выходной буфер encapsulatedKey [SWS_CRYPT_21813]. При успешном выполнении он возвращает через ara::core::Result<std::size_t> размер инкапсулированного ключа в байтах [SWS_CRYPT_21813].

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

  • UninitializedContext: Контекст не был инициализирован значением открытого ключа [SWS_CRYPT_21813].
  • ara::crypto::CryptoErrc::kUsageViolation: У ключа инкапсуляции отсутствует флаг использования kAllowKeyWrapping или у инкапсулируемого ключа отсутствует kAllowSecuredExport [SWS_CRYPT_21813].
  • ara::crypto::CryptoErrc::kIncompatibleObject или CryptoErrc::kInvalidInputSize: Объект ключа несовместим или размер ключа не поддерживается контекстом [SWS_CRYPT_21813].
  • CryptoErrc::kUnsupported: Контекст не поддерживает инкапсуляцию предоставленных ключей, поскольку генерирует их самостоятельно во время инкапсуляции [SWS_CRYPT_21813].
  • ara::crypto::CryptoErrc::kInsufficientCapacity: Буфер encapsulatedKey имеет слишком малый размер [SWS_CRYPT_21813].
  • ara::crypto::CryptoErrc::kBusyResource или ara::crypto::CryptoErrc::kEmptyKeySlot: Ресурс занят или сконфигурированный KeySlot пуст [SWS_CRYPT_21813].

Операция объявлена как const, noexcept, а также специфицирована как thread-safe и exception safe [SWS_CRYPT_21813].

Во взаимодействии с модулем эта функция отличается от альтернативной перегрузки [SWS_CRYPT_50011], которая не принимает существующий ключ, а динамически генерирует симметричный ключ заново и возвращает его вместе с результатом инкапсуляции [SWS_CRYPT_50011].

Автоматически сгенерированное указание по использованию на основе AUTOSAR R25-11.

Header-Datei#include "ara/crypto/cryp/key_encapsulator_public_ctx.h"
Scopeclass ara::crypto::cryp::KeyEncapsulatorPublicCtx
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe CryptoErrc::k rollback_semantics

Parameter (in)

ParameterBeschreibung
keythe symmetric key to be encapsulated

Parameter (out)

ParameterBeschreibung
encapsulatedKeyan output buffer the encapsulated key is written to

Rückgabewert

TypBeschreibung
ara::core::Result<std::size_t >a result containing the size of the encapsulated key or an error

Fehler

FehlercodeBeschreibung
UninitializedContextif the context was not initialized by a public key value
ara::crypto::CryptoErrc::kUsageViolationrollback_semantics if the allowed usage of the encapsulation key does not include k AllowKeyWrapping or if the allowed usage of the encapsulated key does not include kAllowSecuredExport
ara::crypto::CryptoErrc::kIncompatibleObjectrollback_semantics if the provided encapsulated key object is incompatible with this context
CryptoErrc::kInvalidInputSizerollback_semantics if this context does not support the size of the encapsulated key
CryptoErrc::kUnsupportedrollback_semantics if this context does not support setting the encapsulated key, because it generates the key during encapsulation
ara::crypto::CryptoErrc::kInsufficientCapacityrollback_semantics if the output buffer is too small
ara::crypto::CryptoErrc::kBusyResourcerollback_semantics a required resource is busy
ara::crypto::CryptoErrc::kEmptyKeySlotrollback_semantics if a KeySlot was configured that is currently is empty
ara::crypto::CryptoErrc::kUsageViolationrollback_semantics if the allowed usage of the key does not include kAllowKeyWrapping

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

Record
AUTOSAR/AP/record/SWS_CRYPT_21813
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_21813@rel:R25-11#53b6f8cd
Content hash
53b6f8cd
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_21813
Status: valid/unmigrated Version: rel:R25-11#5f08acc8 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_21813@rel:R25-11#5f08acc8
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#b3c8ad102026-09-30
  • R19-11rel:R19-11#5df6f2a12026-10-14
  • R20-11rel:R20-11#bc53d66f2026-10-14
  • R21-11rel:R21-11#a093fad52026-10-14
  • R22-11rel:R22-11#9a52ca012026-10-14
  • R23-11rel:R23-11#dadd77c62026-10-14
  • R24-11rel:R24-11#2cf84d842026-10-14
  • R25-11rel:R25-11#5f08acc82026-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

функция Encapsulate [SWS_CRYPT_50011] Upstream: RS_CRYPTO_02102, RS_CRYPTO_02108, RS_CRYPTO_02115

virtual ara::core::Result< std::pair< std::size_t, SymmetricKey::Sptr > > Encapsulate (AlgId algId, AllowedUsageFlags allowedUsage, Read WriteMemRegion encapsulatedKey) const noexcept=0;

Generate new a symmetric key and encapsulate it. Optionally store the generated key.

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

Использование и семантика

Синхронный метод Encapsulate генерирует внутри новый симметричный ключ и инкапсулирует его с использованием контекста [SWS_CRYPT_50011]. В качестве входных параметров указываются целевой алгоритм algId, а также разрешенные флаги использования allowedUsage для сгенерированного ключа [SWS_CRYPT_50011]. Шифротекст ключа записывается в выходной буфер encapsulatedKey [SWS_CRYPT_50011]. В случае успеха возвращаемое значение инкапсулирует пару из фактического размера инкапсулированного ключа в байтах и смарт-указателя на созданный объект ключа (std::pair<std::size_t, SymmetricKey::Sptr>) внутри ara::core::Result [SWS_CRYPT_50011].

Обработка ошибок и защита

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

  • UninitializedContext: контекст ранее не был инициализирован открытым ключом [SWS_CRYPT_50011].
  • CryptoErrc::kUsageViolation: у ключа инкапсуляции отсутствует флаг kAllowKeyWrapping или у целевого ключа отсутствует kAllowSecuredExport [SWS_CRYPT_50011].
  • CryptoErrc::kInsufficientCapacity: выходной буфер encapsulatedKey не имеет достаточной емкости [SWS_CRYPT_50011].
  • CryptoErrc::kUnknownIdentifier или CryptoErrc::kUnsupported: algId неизвестна или генерация во время инкапсуляции не поддерживается [SWS_CRYPT_50011].
  • CryptoErrc::kEmptyKeySlot или CryptoErrc::kBusyResource: сконфигурированный KeySlot пуст или необходимый ресурс занят [SWS_CRYPT_50011].

Параллелизм и взаимодействие

Операция специфицирована как const, noexcept, thread-safe, а также exception-safe [SWS_CRYPT_50011]. По сравнению с перегрузкой [SWS_CRYPT_21813], которой передается существующий ключ и которая возвращает только его размер, данный метод выполняет генерацию ключа и инкапсуляцию за один общий шаг [SWS_CRYPT_50011].

Этот текст был создан ИИ на основе спецификации.

Header-Datei#include "ara/crypto/cryp/key_encapsulator_public_ctx.h"
Scopeclass ara::crypto::cryp::KeyEncapsulatorPublicCtx
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe CryptoErrc::k rollback_semantics

Parameter (in)

ParameterBeschreibung
algIdthe identifier of the target symmetric crypto algorithm
allowedUsagethe flags that define a list of allowed transformations’ types in which the target key can be used

Parameter (out)

ParameterBeschreibung
encapsulatedKeyan output buffer the encapsulated key is written to

Rückgabewert

TypBeschreibung
ara::core::Result<std::pair< std::size_t, SymmetricKey::Sptr > >a result containing a pair of the size of the encapsulated key and the generated symmetric key or an error

Fehler

FehlercodeBeschreibung
UninitializedContextif the context was not initialized by a public key value
ara::crypto::CryptoErrc::kUsageViolationrollback_semantics if the allowed usage of the encapsulation key does not include k AllowKeyWrapping or if the allowed usage of the encapsulated key does not include kAllowSecuredExport
CryptoErrc::kInvalidInputSizerollback_semantics if this context does not support the size of the encapsulated key
CryptoErrc::kUnsupportedrollback_semantics if this context does not support generating the encapsulated key during encapsulation
ara::crypto::CryptoErrc::kUnknownIdentifierrollback_semantics if algId has an unsupported value
ara::crypto::CryptoErrc::kInsufficientCapacityrollback_semantics if the output buffer is too small
ara::crypto::CryptoErrc::kBusyResourcerollback_semantics a required resource is busy
ara::crypto::CryptoErrc::kEmptyKeySlotrollback_semantics if a KeySlot was configured via SetKey that is currently is empty
ara::crypto::CryptoErrc::kUsageViolationrollback_semantics if the allowed usage of the key does not include kAllowKeyWrapping

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

Record
AUTOSAR/AP/record/SWS_CRYPT_50011
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50011@rel:R25-11#3b1628c8
Content hash
3b1628c8
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50011
Status: valid/unmigrated Version: rel:R25-11#7f7fdb0c 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_50011@rel:R25-11#7f7fdb0c
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

функция GetRequiredOutputBufferSize [SWS_CRYPT_50013] Upstream: RS_CRYPTO_02302

virtual ara::core::Result< std::size_t > GetRequiredOutputBufferSize (AlgId algId) const noexcept;

Calculate the maximum required size of the output buffer depending on the input size in the current state of the context.

Header-Datei#include "ara/crypto/cryp/key_encapsulator_public_ctx.h"
Scopeclass ara::crypto::cryp::KeyEncapsulatorPublicCtx
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
algIdthe algId of the key to encapsulate

Rückgabewert

TypBeschreibung
ara::core::Result<std::size_t >a result containing the required capacity of the output buffer in bytes or an error

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kUninitializedContextrollback_semantics if the context was not initialized by deploying a key

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

Record
AUTOSAR/AP/record/SWS_CRYPT_50013
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50013@rel:R25-11#229d7b10
Content hash
229d7b10
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50013
Status: valid/unmigrated Version: rel:R25-11#8834a17a 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_50013@rel:R25-11#8834a17a
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

функция SetKey [SWS_CRYPT_21815] Upstream: RS_CRYPTO_02001, RS_CRYPTO_02003

virtual ara::core::Result< void > SetKey (PublicKey::Sptr key) noexcept=0;

Configure the context to use the provided key as encapsulation key.

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

Использование

Метод SetKey конфигурирует экземпляр ara::crypto::cryp::KeyEncapsulatorPublicCtx таким образом, чтобы переданный объект ключа использовался в качестве ключа инкапсуляции [SWS_CRYPT_21815]. В качестве параметра служит key типа PublicKey::Sptr [SWS_CRYPT_21815]. Вызов выполняется синхронно и возвращает ara::core::Result<void>, который в случае успеха пуст или переносит код ошибки [SWS_CRYPT_21815].

Обработка ошибок

В случае сбоя все зарегистрированные коды ошибок обладают семантикой отката [SWS_CRYPT_21815]:

  • ara::crypto::CryptoErrc::kIncompatibleObject: предоставленный объект ключа несовместим с контекстом [SWS_CRYPT_21815].
  • ara::crypto::CryptoErrc::kUsageViolation: разрешённое использование ключа не содержит флаг kAllowKeyWrapping [SWS_CRYPT_21815].
  • ara::crypto::CryptoErrc::kUnsupported: контекст поддерживает установку ключа исключительно через KeySlot [SWS_CRYPT_21815].

Параллелизм и ограничения

Функция специфицирована как thread-safe и exception safe с гарантией noexcept [SWS_CRYPT_21815].

Взаимодействие

Конфигурация ключа подготавливает контекст для инкапсуляции ключа, которая выполняется через метод Encapsulate [SWS_CRYPT_50011]. Если контекст не поддерживает прямое назначение ключа или ключ должен быть получен из области памяти, в качестве альтернативы доступна перегрузка SetKey с KeySlot::Sptr [SWS_CRYPT_50012].

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

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

Header-Datei#include "ara/crypto/cryp/key_encapsulator_public_ctx.h"
Scopeclass ara::crypto::cryp::KeyEncapsulatorPublicCtx
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
keythe key encapsulation key

Rückgabewert

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

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kIncompatibleObjectrollback_semantics if the provided key object is incompatible with this context
ara::crypto::CryptoErrc::kUsageViolationrollback_semantics if the allowed usage of the key does not include kAllowKeyWrapping
ara::crypto::CryptoErrc::kUnsupportedrollback_semantics if the context only supports setting a KeySlot

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

Record
AUTOSAR/AP/record/SWS_CRYPT_21815
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_21815@rel:R25-11#d51d6641
Content hash
d51d6641
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_21815
Status: valid/unmigrated Version: rel:R25-11#135664c1 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_21815@rel:R25-11#135664c1
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#97afebd22026-09-30
  • R20-11rel:R20-11#3e034d832026-10-14
  • R21-11rel:R21-11#14e868c82026-10-14
  • R22-11rel:R22-11#c056496f2026-10-14
  • R23-11rel:R23-11#4a9295802026-10-14
  • R24-11rel:R24-11#6638cae22026-10-14
  • R25-11rel:R25-11#135664c12026-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

функция SetKey [SWS_CRYPT_50012] Upstream: RS_CRYPTO_02001, RS_CRYPTO_02003

virtual ara::core::Result< void > SetKey (KeySlot::Sptr keySlot) noexcept=0;

Configure the context to use the key stored in the provided KeySlot at the time the key encapsulation is performed.

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

Метод SetKey класса ara::crypto::cryp::KeyEncapsulatorPublicCtx конфигурирует контекст таким образом, чтобы открытый ключ, сохранённый в переданном слоте для ключа (KeySlot), использовался в момент инкапсуляции ключа [SWS_CRYPT_50012].

Использование

Вызов выполняется синхронно и специфицирован как noexcept, а также exception safe [SWS_CRYPT_50012]. В качестве параметра служит keySlot типа KeySlot::Sptr, который должен содержать открытый ключ [SWS_CRYPT_50012]. Возвращаемым значением является ara::core::Result<void>, которое в случае успеха не содержит значения [SWS_CRYPT_50012].

Обработка ошибок

В случае ошибки возвращается код ошибки с семантикой отката [SWS_CRYPT_50012]:

  • ara::crypto::CryptoErrc::kIncompatibleObject: переданный keySlot несовместим с этим контекстом [SWS_CRYPT_50012].
  • ara::crypto::CryptoErrc::kUnsupported: контекст поддерживает исключительно установку объекта PublicKey [SWS_CRYPT_50012].

Параллелизм и взаимодействие

Функция определена как thread-safe [SWS_CRYPT_50012]. Помимо присваивания через слот для ключа, существует альтернативная перегрузка для прямой передачи PublicKey::Sptr [SWS_CRYPT_21815]. Сконфигурированный ключ применяется, как только выполняется инкапсуляция ключа через Encapsulate [SWS_CRYPT_50011]. Что касается порядка, SetKey, вероятно, должен выполняться перед вызовом Encapsulate, чтобы контекст был инициализирован. Вопрос Q-769923d4fb9a3d1e (открытый)

Это указание по использованию было автоматически сгенерировано на основе спецификации AUTOSAR Adaptive R25-11.

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

Header-Datei#include "ara/crypto/cryp/key_encapsulator_public_ctx.h"
Scopeclass ara::crypto::cryp::KeyEncapsulatorPublicCtx
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
keySlota keyslot containing a public key

Rückgabewert

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

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kIncompatibleObjectrollback_semantics if the provided keySlot is incompatible with this context
ara::crypto::CryptoErrc::kUnsupportedrollback_semantics if the context only supports setting a PublicKey

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

Record
AUTOSAR/AP/record/SWS_CRYPT_50012
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50012@rel:R25-11#495395a4
Content hash
495395a4
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50012
Status: valid/unmigrated Version: rel:R25-11#b5e332fa 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_50012@rel:R25-11#b5e332fa
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

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

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

using Sptr = std::shared_ptr<KeyEncapsulatorPublicCtx>;

Smart pointer of the interface.

Header-Datei#include "ara/crypto/cryp/key_encapsulator_public_ctx.h"
Scopeclass ara::crypto::cryp::KeyEncapsulatorPublicCtx
SymbolSptr

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

Record
AUTOSAR/AP/record/SWS_CRYPT_21801
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_21801@rel:R25-11#4dd85bbf
Content hash
4dd85bbf
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_21801
Status: valid/unmigrated Version: rel:R25-11#6c7506e9 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_21801@rel:R25-11#6c7506e9
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#d5df06eb2026-09-30
  • R19-11rel:R19-11#3a23dd282026-10-14
  • R20-11rel:R20-11#b2bfbd8b2026-10-14
  • R21-11rel:R21-11#b2bfbd8b2026-10-14
  • R22-11rel:R22-11#1b749d9b2026-10-14
  • R23-11rel:R23-11#7bb57d5b2026-10-14
  • R24-11rel:R24-11#7bb57d5b2026-10-14
  • R25-11rel:R25-11#6c7506e92026-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