DEENESPTFRRUARHIKOZHNL

class 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

User GuideKI-GENERIERT

Dient als gemeinsame Schnittstelle zur threadsicheren Inspektion und persistenten Ablage kryptographischer Objekte.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 156a618ba987 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Dient als gemeinsame Schnittstelle zur threadsicheren Inspektion und persistenten Ablage kryptographischer Objekte.

Die Schnittstelle ara::crypto::cryp::CryptoObject definiert die gemeinsame Abstraktion für alle kryptographischen Objekte im Adaptive-Crypto-Stack und regelt deren Lebenszyklus über Sptr [SWS_CRYPT_20501]. Sie ermöglicht das threadsichere Auslesen von Algorithmen-Identifikatoren sowie Nutzungsflags und unterstützt das dauerhafte Überschreiben von Schlüsselmaterial in einem WriteableKeySlot [SWS_CRYPT_20505], [SWS_CRYPT_20517]. Beim Speichervorgang gewährleisten definierte Fehlercodes mit Rollback-Semantik die Datenintegrität des zugrundeliegenden Speicherslots [SWS_CRYPT_20517].

Kontext

Die Schnittstelle ara::crypto::cryp::CryptoObject bildet die gemeinsame Abstraktion für alle kryptographischen Objekte, die von einem Crypto-Provider erkannt und verwaltet werden können. Die Klasse erweitert ara::crypto::Serializable und definiert grundlegende Eigenschaften wie Algorithmen-Identifikation, Verwendungsbeschränkungen sowie Mechanismen zur persistenten Ablage. Typische Interaktionspartner sind aufrufende Applikationen, der bereitstellende Crypto-Provider sowie Zielspeicher in Form von WriteableKeySlot-Instanzen.

Lebenszyklus

Kryptographische Objekte werden innerhalb der Plattform primär über geteilte Eigentümerschaft verwaltet. Hierfür definiert die Klasse den kanonischen Smart-Pointer-Alias ara::crypto::cryp::CryptoObject::Sptr als std::shared_ptr<CryptoObject> [SWS_CRYPT_20501]. Konkrete Instanzen dürften durch die spezialisierten Fabrik- und Laderoutinen eines Crypto-Providers instanziiert und dem Aufrufer über diesen Pointer-Typ bereitgestellt werden. Frage Q-36e2bd12d7dc8b98 (offen) Sämtliche deklarierten Methoden der Schnittstelle sind als thread-safe und ausnahmesicher (exception safe, noexcept) spezifiziert, wodurch ein sicherer nebenläufiger Lese- und Speicherzugriff über mehrere Threads hinweg gewährleistet wird [SWS_CRYPT_20505], [SWS_CRYPT_50092], [SWS_CRYPT_20517]. Die Freigabe des Objekts und des zugehörigen Schlüsselmaterials erfolgt automatisch, sobald die letzte Sptr-Referenz erlischt.

Nutzungspfad

Ein typischer Nutzungspfad umfasst die Identifikation der kryptographischen Eigenschaften eines Objekts und dessen anschließende persistente Speicherung. Zunächst fragt die Anwendung über GetAlgId() den Algorithmenbezeichner des Objekts als ara::crypto::AlgIdString ab [SWS_CRYPT_20505]. Anschließend werden über GetAllowedUsage() die zulässigen Verwendungsflags (AllowedUsageFlags) ermittelt [SWS_CRYPT_50092], um sicherzustellen, dass das Objekt für die beabsichtigte Operation autorisiert ist. Zur dauerhaften Sicherung übergibt die Anwendung einen beschreibbaren Schlüssel-Slot an die Methode Save() [SWS_CRYPT_20517]. Das Schlüsselmaterial sowie zugehörige Metadaten werden daraufhin im Ziel-Slot hinterlegt, wobei zuvor vorhandene Daten im Slot überschrieben werden [SWS_CRYPT_20517].

Inspektion und Persistierung eines CryptoObjectAnwendungCryptoObjectWriteableKeySlotGetAlgId()AlgIdStringGetAllowedUsage()AllowedUsageFlags (kAllowPersist)Save(keyslot)Schlüsselmaterial und Metadaten schreibenSpeicherquittungResult<void>

Sequenzdiagramm: Typischer Ablauf zur Inspektion und Persistierung eines kryptographischen Objekts in einem KeySlot. Quellen: [SWS_CRYPT_20505], [SWS_CRYPT_50092], [SWS_CRYPT_20517].

Fehlerszenarien

Während GetAlgId() [SWS_CRYPT_20505] und GetAllowedUsage() [SWS_CRYPT_50092] keine standardisierten Fehlercodes ausweisen und im Erfolgsfall das jeweilige Ergebnis in einem ara::core::Result zurückliefern, definiert die Persistierungsoperation Save() spezifische Fehlerbedingungen mit verbindlicher Rollback-Semantik [SWS_CRYPT_20517]:

  • ara::crypto::CryptoErrc::kIncompatibleObject: Tritt auf, wenn das Objekt inkompatibel zum übergebenen WriteableKeySlot ist, beispielsweise weil die Algorithmen-Identifikatoren (AlgId) voneinander abweichen oder der Key-Slot zu einem abweichenden Crypto-Provider gehört [SWS_CRYPT_20517].
  • ara::crypto::CryptoErrc::kUsageViolation: Signalisiert eine unzulässige Verwendung, falls die über GetAllowedUsage() deklarierten Nutzungsflags des Schlüssels das Recht zur Persistierung (kAllowPersist) nicht enthalten [SWS_CRYPT_50092], [SWS_CRYPT_20517].
  • ara::crypto::CryptoErrc::kBusyResource: Wird zurückgegeben, wenn die zugrundeliegende Speicherressource temporär belegt ist und die Operation nicht unmittelbar ausgeführt werden kann [SWS_CRYPT_20517].

Dank der Rollback-Semantik bleibt der Zustand des WriteableKeySlot bei jedem dieser Fehler intakt, sodass keine partiell geschriebenen oder korrumpierten Schlüsseldaten im Speicher verbleiben [SWS_CRYPT_20517].

Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive R25-11 und fasst die Anforderungen an die Schnittstelle ara::crypto::cryp::CryptoObject zusammen.

Mitgliederkarte

Klassendiagramm

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

Detailansicht

Wähle in der Gliederung einen Eintrag aus.

Methoden

GetAlgId function

The interface shall return the AlgId of this CryptoObject.

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

The interface shall return the allowed usage of the key.

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

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;

Typaliase

Sptr type alias

Smart pointer of the interface.

Dokumentation der Methoden

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

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

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

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

Die Methode Save der Schnittstelle ara::crypto::cryp::CryptoObject dient dem persistenten Speichern von Schlüsselmaterial samt zugehörigen Metadaten in einem bereitgestellten WriteableKeySlot ([SWS_CRYPT_20517]). Bereits zuvor im Ziel-KeySlot abgelegte Daten werden bei der Ausführung überschrieben ([SWS_CRYPT_20517]).

Als Parameter wird keyslot vom Typ WriteableKeySlot::Sptr übergeben, der den zugrunde liegenden Speicherplatz repräsentiert ([SWS_CRYPT_20517]). Die Funktion ist als noexcept sowie exception safe spezifiziert und liefert als Rückgabewert ein ara::core::Result<void> zurück, welches im Erfolgsfall leer ist ([SWS_CRYPT_20517]).

Im Fehlerfall greift eine Rollback-Semantik ([SWS_CRYPT_20517]). Spezifisch werden folgende Fehlercodes zurückgegeben:

  • ara::crypto::CryptoErrc::kIncompatibleObject: Der Schlüssel ist inkompatibel zum KeySlot, beispielsweise durch eine abweichende AlgId oder die Zuordnung zu einem anderen CryptoProvider ([SWS_CRYPT_20517]).
  • ara::crypto::CryptoErrc::kUsageViolation: Die zulässige Verwendung des Schlüssels umfasst nicht das Recht kAllowPersist ([SWS_CRYPT_20517]).
  • ara::crypto::CryptoErrc::kBusyResource: Die Operation kann temporär nicht ausgeführt werden ([SWS_CRYPT_20517]).

Bezüglich der Nebenläufigkeit ist die Methode als thread-safe deklariert ([SWS_CRYPT_20517]).

Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikation AUTOSAR R25-11 generiert.

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

Dokumentation der Typaliase

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