DEENESPTFRRUARHIKOZHNL

class 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

User GuideKI-GENERIERT

Kapselt symmetrische Schlüssel asymmetrisch über öffentliche Schlüssel oder generiert diese im Kapselungsprozess.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: f00bc8643d8f Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Kapselt symmetrische Schlüssel asymmetrisch über öffentliche Schlüssel oder generiert diese im Kapselungsprozess.

Die Schnittstelle ara::crypto::cryp::KeyEncapsulatorPublicCtx ermöglicht asymmetrische Schlüsselkapselungsmechanismen (KEM), um symmetrische Schlüssel für den sicheren Austausch zu verpacken oder direkt im Zuge der Kapselung neu zu erzeugen ([SWS_CRYPT_50011]). Vor der Ausführung muss der Kontext über SetKey mit einem öffentlichen Schlüssel oder Steckplatz initialisiert und die erforderliche Ausgabepuffergröße ermittelt werden ([SWS_CRYPT_21815]). Wesentliche Randbedingungen sind die erforderlichen Schlüsselverwendungsflags wie kAllowKeyWrapping sowie die vollständige Threadsicherheit aller Operationen.

Kontext

Die Schnittstelle ara::crypto::cryp::KeyEncapsulatorPublicCtx definiert den asymmetrischen Kontext für Key Encapsulation Mechanisms (KEM) unter Verwendung eines öffentlichen Schlüssels. Innerhalb der Kryptografie-Architektur von AUTOSAR Adaptive dient die Klasse dem sicheren Schlüsselaustausch und Schlüsseltransport. Sie nimmt einen öffentlichen asymmetrischen Schlüssel entgegen, um entweder einen bestehenden symmetrischen Schlüssel zu kapseln ([SWS_CRYPT_21813]) oder einen neuen symmetrischen Schlüssel im Zuge der Kapselung zu generieren und bereitzustellen ([SWS_CRYPT_50011]). Die Schlüsselbasis kann dabei als direktes Schlüsselobjekt PublicKey ([SWS_CRYPT_21815]) oder über einen persistierten Steckplatz KeySlot ([SWS_CRYPT_50012]) angebunden werden.

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

Kontextdiagramm: Einbindung des KeyEncapsulatorPublicCtx zwischen Anwendung, Schlüsselquellen und Zielschlüsseln. Quellen: [SWS_CRYPT_21813], [SWS_CRYPT_21815], [SWS_CRYPT_50011], [SWS_CRYPT_50012]

Lebenszyklus

Instanzen von KeyEncapsulatorPublicCtx werden über den typisierten Smart Pointer KeyEncapsulatorPublicCtx::Sptr verwaltet, der als std::shared_ptr<KeyEncapsulatorPublicCtx> definiert ist ([SWS_CRYPT_21801]). Die tatsächliche Objekterzeugung dürfte über eine untergeordnete Provider-Factory der Plattform erfolgen, da die Klasse eine rein virtuelle Schnittstelle darstellt. Frage Q-3551020e7b9c0f0c (offen)

Nach der Erzeugung befindet sich der Kontext im Zustand unvollständiger Initialisierung. Solange dem Kontext kein öffentlicher Schlüssel zugewiesen wurde, schlagen Aufrufe zur Puffergrößenberechnung ([SWS_CRYPT_50013]) sowie Kapselungsoperationen ([SWS_CRYPT_21813], [SWS_CRYPT_50011]) mit dem Fehler CryptoErrc::kUninitializedContext fehl. Die Einsatzbereitschaft wird durch Konfiguration über SetKey mit PublicKey::Sptr ([SWS_CRYPT_21815]) oder KeySlot::Sptr ([SWS_CRYPT_50012]) hergestellt. Bei Zuweisung eines KeySlot dürfte der enthaltene öffentliche Schlüssel erst zur tatsächlichen Ausführungszeit der Kapselung dynamisch ausgelesen werden. Frage Q-ea760070f05941d2 (offen) Sämtliche Methoden des Kontexts sind spezifikationsgemäß threadsicher und garantieren Ausnahmesicherheit ([SWS_CRYPT_21813], [SWS_CRYPT_50011], [SWS_CRYPT_50013], [SWS_CRYPT_21815], [SWS_CRYPT_50012]).

Nutzungspfad

Die praktische Anwendung des Kontexts folgt einer definierten Reihenfolge aus Schlüsselbindung, Pufferdimensionierung und Kapselungsausführung:

  • Schlüsselbindung: Die Anwendung initialisiert den Kontext über SetKey entweder mit einem geladenen PublicKey ([SWS_CRYPT_21815]) oder einem KeySlot ([SWS_CRYPT_50012]).
  • Pufferdimensionierung: Vor Bereitstellung des Ausgabepuffers ermittelt die Anwendung die maximal erforderliche Ausgabegröße in Bytes über GetRequiredOutputBufferSize(algId) ([SWS_CRYPT_50013]) für den vorgesehenen symmetrischen Zielalgorithmus und reserviert eine entsprechende ReadWriteMemRegion.
  • Ausführung der Kapselung: Abhängig vom Einsatzzweck wählt die Anwendung eine der beiden Kapselungsvarianten:
    • Bereitstellung eines vorhandenen Schlüssels: Encapsulate(key, encapsulatedKey) kapselt den übergebenen SymmetricKey und gibt die Anzahl geschriebener Bytes zurück ([SWS_CRYPT_21813]).
    • Autonome Generierung: Encapsulate(algId, allowedUsage, encapsulatedKey) erzeugt einen neuen symmetrischen Schlüssel gemäß den geforderten Nutzungsflags und liefert ein Paar aus Bytegröße und dem neuen SymmetricKey::Sptr zurück ([SWS_CRYPT_50011]).
Ablauf der SchlüsselkapselungAnwendungKeyEncapsulatorPublicCtxUse Case: Konfiguration des KapselungsschlüsselsSetKey(key / keySlot)Result<void>Use Case: PuffergrößenprüfungGetRequiredOutputBufferSize(algId)Result<std::size_t>Use Case: KapselungaltBestehender SchlüsselEncapsulate(key, memRegion)Result<std::size_t>Neuer Schlüssel wird generiertEncapsulate(algId, usage, memRegion)Result<std::pair<std::size_t, SymmetricKey::Sptr>>

Sequenzdiagramm: Typische Aufruffolge von der Schlüsselzuweisung über die Pufferberechnung bis zur Schlüsselkapselung. Quellen: [SWS_CRYPT_21813], [SWS_CRYPT_21815], [SWS_CRYPT_50011], [SWS_CRYPT_50013]

Fehlerszenarien

Methoden von KeyEncapsulatorPublicCtx melden Fehler über ara::core::Result mit Werten aus ara::crypto::CryptoErrc und stellen im Fehlerfall Rollback-Semantik sicher. Wesentliche Fehlersituationen umfassen:

  • CryptoErrc::kUninitializedContext: Tritt auf, wenn GetRequiredOutputBufferSize ([SWS_CRYPT_50013]) oder Encapsulate ([SWS_CRYPT_21813], [SWS_CRYPT_50011]) ohne vorherige erfolgreiche Konfiguration mittels SetKey aufgerufen wird.
  • CryptoErrc::kUsageViolation: Signalisiert unzulässige Schlüsselverwendungen. Dies tritt ein, wenn dem Kapselungsschlüssel das Flag kAllowKeyWrapping fehlt ([SWS_CRYPT_21815], [SWS_CRYPT_21813], [SWS_CRYPT_50011]) oder wenn der zu kapselnde symmetrische Schlüssel nicht für gesicherten Export via kAllowSecuredExport freigegeben ist ([SWS_CRYPT_21813]).
  • CryptoErrc::kIncompatibleObject: Weist darauf hin, dass ein übergebener Schlüssel oder Steckplatz nicht mit dem Algorithmus des Kontexts kompatibel ist ([SWS_CRYPT_21815], [SWS_CRYPT_50012], [SWS_CRYPT_21813]).
  • CryptoErrc::kInsufficientCapacity und CryptoErrc::kInvalidInputSize: Werden ausgelöst, falls die übergebene ReadWriteMemRegion nicht die erforderliche Pufferkapazität aufweist oder die Eingabegröße des Schlüssels nicht unterstützt wird ([SWS_CRYPT_21813], [SWS_CRYPT_50011]).
  • CryptoErrc::kEmptyKeySlot und CryptoErrc::kBusyResource: Entstehen, wenn ein über SetKey gebundener KeySlot zur Ausführungszeit der Kapselung leer ist oder eine beteiligte Hardware-Ressource belegt ist ([SWS_CRYPT_21813], [SWS_CRYPT_50011]).
  • CryptoErrc::kUnsupported: Wird zurückgegeben, wenn die Kontext-Implementierung entweder ausschließlich Schlüsselobjekte statt Slots unterstützt ([SWS_CRYPT_50012]) oder umgekehrt ([SWS_CRYPT_21815]), beziehungsweise wenn das Setzen externer Schlüssel oder die autonome Schlüsselgenerierung im Kontext nicht unterstützt wird ([SWS_CRYPT_21813], [SWS_CRYPT_50011]).

Dieser Leitfaden basiert ausschließlich auf den Spezifikationen der AUTOSAR Adaptive Platform Release R25-11.

Mitgliederkarte

Klassendiagramm

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

Detailansicht

Wähle in der Gliederung einen Eintrag aus.

Methoden

Encapsulate function 2

Encapsulate the provided symmetric key.

Überladungen 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 function 2

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

Überladungen 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

Typaliase

Sptr type alias

Smart pointer of the interface.

Dokumentation der Methoden

function 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.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 998c7d355307 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Methode Encapsulate kapselt einen übergebenen symmetrischen Schlüssel (key) und schreibt das Ergebnis in den Ausgabepuffer encapsulatedKey [SWS_CRYPT_21813]. Bei erfolgreicher Ausführung liefert sie über ara::core::Result<std::size_t> die Bytegröße des gekapselten Schlüssels zurück [SWS_CRYPT_21813].

Im Fehlerfall wird ein entsprechender Fehlercode mit Rollback-Semantik zurückgegeben [SWS_CRYPT_21813]. Relevante Fehlerursachen sind:

  • UninitializedContext: Der Kontext wurde nicht mit einem öffentlichen Schlüsselwert initialisiert [SWS_CRYPT_21813].
  • ara::crypto::CryptoErrc::kUsageViolation: Dem Kapselungsschlüssel fehlt das Verwendungsflag kAllowKeyWrapping oder dem zu kapselnden Schlüssel fehlt kAllowSecuredExport [SWS_CRYPT_21813].
  • ara::crypto::CryptoErrc::kIncompatibleObject oder CryptoErrc::kInvalidInputSize: Das Schlüsselobjekt ist inkompatibel oder die Schlüsselgröße wird vom Kontext nicht unterstützt [SWS_CRYPT_21813].
  • CryptoErrc::kUnsupported: Der Kontext unterstützt das Kapseln bereitgestellter Schlüssel nicht, weil er diese während der Kapselung selbst erzeugt [SWS_CRYPT_21813].
  • ara::crypto::CryptoErrc::kInsufficientCapacity: Der Puffer encapsulatedKey ist zu klein dimensioniert [SWS_CRYPT_21813].
  • ara::crypto::CryptoErrc::kBusyResource oder ara::crypto::CryptoErrc::kEmptyKeySlot: Eine Ressource ist belegt oder ein konfigurierter KeySlot ist leer [SWS_CRYPT_21813].

Die Operation ist als const, noexcept deklariert sowie als thread-safe und exception safe spezifiziert [SWS_CRYPT_21813].

Im Zusammenspiel mit dem Modul unterscheidet sich diese Funktion von der alternativen Überladung [SWS_CRYPT_50011], welche keinen vorhandenen Schlüssel entgegennimmt, sondern den symmetrischen Schlüssel dynamisch neu generiert und zusammen mit dem Kapselungsergebnis zurückgibt [SWS_CRYPT_50011].

Automatisch generierter Nutzungshinweis auf Basis von 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#b3c8ad10
Content hash
b3c8ad10
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

function 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.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 68e8fc3273e7 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Semantik

Die synchrone Methode Encapsulate erzeugt intern einen neuen symmetrischen Schlüssel und kapselt diesen unter Verwendung des Kontexts [SWS_CRYPT_50011]. Als Eingabeparameter werden der Zielalgorithmus algId sowie die erlaubten Nutzungsflags allowedUsage für den generierten Schlüssel angegeben [SWS_CRYPT_50011]. Das Chiffrat des Schlüssels wird in den Ausgabepuffer encapsulatedKey geschrieben [SWS_CRYPT_50011]. Der Rückgabewert kapselt bei Erfolg ein Paar aus der tatsächlichen Bytegröße des gekapselten Schlüssels und einem Smart Pointer auf das erzeugte Schlüsselobjekt (std::pair<std::size_t, SymmetricKey::Sptr>) innerhalb eines ara::core::Result [SWS_CRYPT_50011].

Fehlerbehandlung und Absicherung

Im Fehlerfall besitzen die Rückgabewerte überwiegend Rollback-Semantik [SWS_CRYPT_50011]. Mögliche Fehlerursachen umfassen:

  • UninitializedContext: Der Kontext wurde zuvor nicht mit einem öffentlichen Schlüssel initialisiert [SWS_CRYPT_50011].
  • CryptoErrc::kUsageViolation: Dem Kapselungsschlüssel fehlt das Flag kAllowKeyWrapping oder dem Zielschlüssel fehlt kAllowSecuredExport [SWS_CRYPT_50011].
  • CryptoErrc::kInsufficientCapacity: Der Ausgabepuffer encapsulatedKey bietet nicht genügend Kapazität [SWS_CRYPT_50011].
  • CryptoErrc::kUnknownIdentifier oder CryptoErrc::kUnsupported: Die algId ist unbekannt oder die Erzeugung während der Kapselung wird nicht unterstützt [SWS_CRYPT_50011].
  • CryptoErrc::kEmptyKeySlot oder CryptoErrc::kBusyResource: Ein konfigurierter KeySlot ist leer oder eine benötigte Ressource ist belegt [SWS_CRYPT_50011].

Nebenläufigkeit und Zusammenspiel

Die Operation ist als const, noexcept, thread-safe sowie exception-safe spezifiziert [SWS_CRYPT_50011]. Im Vergleich zur Überladung [SWS_CRYPT_21813], welcher ein existierender Schlüssel übergeben wird und die nur dessen Größe zurückgibt, führt diese Methode die Schlüsselgenerierung und Kapselung in einem gemeinsamen Schritt aus [SWS_CRYPT_50011].

Dieser Text wurde durch eine KI auf Basis der Spezifikation erstellt.

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#7f7fdb0c
Content hash
7f7fdb0c
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

function 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#8834a17a
Content hash
8834a17a
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

function 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.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 4803853a1afa Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die Methode SetKey konfiguriert die Instanz von ara::crypto::cryp::KeyEncapsulatorPublicCtx so, dass das übergebene Schlüsselobjekt als Kapselungsschlüssel verwendet wird [SWS_CRYPT_21815]. Als Parameter dient key vom Typ PublicKey::Sptr [SWS_CRYPT_21815]. Der Aufruf erfolgt synchron und liefert als Rückgabewert ein ara::core::Result<void>, das im Erfolgsfall leer ist oder einen Fehlercode transportiert [SWS_CRYPT_21815].

Fehlerbehandlung

Im Fehlerfall besitzen alle gemeldeten Fehlercodes Rollback-Semantik [SWS_CRYPT_21815]:

  • ara::crypto::CryptoErrc::kIncompatibleObject: Das bereitgestellte Schlüsselobjekt ist mit dem Kontext inkompatibel [SWS_CRYPT_21815].
  • ara::crypto::CryptoErrc::kUsageViolation: Die erlaubte Verwendung des Schlüssels beinhaltet nicht das Flag kAllowKeyWrapping [SWS_CRYPT_21815].
  • ara::crypto::CryptoErrc::kUnsupported: Der Kontext unterstützt ausschließlich das Setzen eines Schlüssels über einen KeySlot [SWS_CRYPT_21815].

Nebenläufigkeit und Einschränkungen

Die Funktion ist als thread-safe und exception safe mit noexcept-Garantie spezifiziert [SWS_CRYPT_21815].

Zusammenspiel

Durch die Konfiguration des Schlüssels wird der Kontext für die Schlüsselkapselung vorbereitet, die über die Methode Encapsulate durchgeführt wird [SWS_CRYPT_50011]. Falls der Kontext die direkte Schlüsselzuweisung nicht unterstützt oder der Schlüssel aus einem Speicherbereich bezogen werden soll, steht als Alternative die Überladung von SetKey mit einem KeySlot::Sptr zur Verfügung [SWS_CRYPT_50012].

Dieser Nutzungshinweis wurde von einer KI generiert und basiert auf den Spezifikationen des Release R25-11.

Implementer's Guide folgt (Komplexität 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#97afebd2
Content hash
97afebd2
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

function 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.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: c951ff682a31 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Methode SetKey der Klasse ara::crypto::cryp::KeyEncapsulatorPublicCtx konfiguriert den Kontext so, dass der in einem übergebenen Schlüsselslot (KeySlot) gespeicherte öffentliche Schlüssel zum Zeitpunkt der Schlüsselkapselung verwendet wird [SWS_CRYPT_50012].

Verwendung

Der Aufruf erfolgt synchron und ist als noexcept sowie exception safe spezifiziert [SWS_CRYPT_50012]. Als Parameter dient keySlot vom Typ KeySlot::Sptr, welcher einen öffentlichen Schlüssel enthalten muss [SWS_CRYPT_50012]. Der Rückgabewert ist ein ara::core::Result<void>, das im Erfolgsfall keinen Wert enthält [SWS_CRYPT_50012].

Fehlerbehandlung

Im Fehlerfall wird ein Fehlercode mit Rollback-Semantik zurückgegeben [SWS_CRYPT_50012]:

  • ara::crypto::CryptoErrc::kIncompatibleObject: Der übergebene keySlot ist mit diesem Kontext inkompatibel [SWS_CRYPT_50012].
  • ara::crypto::CryptoErrc::kUnsupported: Der Kontext unterstützt ausschließlich das Setzen eines PublicKey-Objekts [SWS_CRYPT_50012].

Nebenläufigkeit und Zusammenspiel

Die Funktion ist als thread-safe definiert [SWS_CRYPT_50012]. Neben der Zuweisung über einen Schlüsselslot existiert eine alternative Überladung zur direkten Übergabe eines PublicKey::Sptr [SWS_CRYPT_21815]. Der konfigurierte Schlüssel wird eingesetzt, sobald die Schlüsselkapselung über Encapsulate [SWS_CRYPT_50011] durchgeführt wird. In Bezug auf die Reihenfolge dürfte SetKey vor dem Aufruf von Encapsulate ausgeführt werden müssen, damit der Kontext initialisiert ist. Frage Q-769923d4fb9a3d1e (offen)

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation von AUTOSAR Adaptive R25-11 generiert.

Implementer's Guide folgt (Komplexität 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#b5e332fa
Content hash
b5e332fa
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

Dokumentation der Typaliase

type alias 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#d5df06eb
Content hash
d5df06eb
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