DEENESPTFRRUARHIKOZHNL

classe 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

Guide utilisateurGÉNÉRÉ PAR IA

Sert d'interface commune pour l'inspection thread-safe et le stockage persistant d'objets cryptographiques.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 156a618ba987 Provenance Questions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Sert d'interface commune pour l'inspection thread-safe et le stockage persistant d'objets cryptographiques.

L'interface ara::crypto::cryp::CryptoObject définit l'abstraction commune pour tous les objets cryptographiques dans la pile Adaptive Crypto et régule leur cycle de vie via Sptr [SWS_CRYPT_20501]. Elle permet la lecture thread-safe des identifiants d'algorithmes ainsi que des indicateurs d'utilisation, et prend en charge l'écrasement permanent de matériel de clé dans un WriteableKeySlot [SWS_CRYPT_20505], [SWS_CRYPT_20517]. Lors de l'opération de stockage, des codes d'erreur définis avec une sémantique de rollback garantissent l'intégrité des données de l'emplacement de stockage sous-jacent [SWS_CRYPT_20517].

Contexte

L'interface ara::crypto::cryp::CryptoObject constitue l'abstraction commune pour tous les objets cryptographiques pouvant être reconnus et gérés par un Crypto Provider. La classe étend ara::crypto::Serializable et définit des propriétés fondamentales telles que l'identification de l'algorithme, les restrictions d'utilisation ainsi que les mécanismes de stockage persistant. Les partenaires d'interaction typiques sont les applications appelantes, le Crypto Provider fournisseur ainsi que les mémoires cibles sous la forme d'instances de WriteableKeySlot.

Cycle de vie

Les objets cryptographiques sont principalement gérés au sein de la plateforme par le biais d'une propriété partagée. Pour cela, la classe définit l'alias de pointeur intelligent canonique ara::crypto::cryp::CryptoObject::Sptr sous la forme std::shared_ptr<CryptoObject> [SWS_CRYPT_20501]. Les instances concrètes devraient être instanciées par les routines spécialisées de fabrique et de chargement d'un Crypto Provider et mises à la disposition de l'appelant via ce type de pointeur. Toutes les méthodes déclarées de l'interface sont spécifiées comme thread-safe et sûres vis-à-vis des exceptions (exception safe, noexcept), ce qui garantit un accès concurrent sécurisé en lecture et en stockage à travers plusieurs threads [SWS_CRYPT_20505], [SWS_CRYPT_50092], [SWS_CRYPT_20517]. La libération de l'objet et du matériel de clé associé s'effectue automatiquement dès que la dernière référence Sptr s'éteint. Question Q-36e2bd12d7dc8b98 (ouverte)

Parcours d'utilisation

Un chemin d'utilisation typique comprend l'identification des propriétés cryptographiques d'un objet et son stockage persistant consécutif. Tout d'abord, l'application interroge via GetAlgId() l'identifiant d'algorithme de l'objet sous forme de ara::crypto::AlgIdString [SWS_CRYPT_20505]. Ensuite, les indicateurs d'utilisation autorisés (AllowedUsageFlags) sont déterminés via GetAllowedUsage() [SWS_CRYPT_50092] afin de s'assurer que l'objet est autorisé pour l'opération prévue. Pour une sauvegarde permanente, l'application transmet un emplacement de clé inscriptible à la méthode Save() [SWS_CRYPT_20517]. Le matériel de clé ainsi que les métadonnées associées sont ensuite déposés dans l'emplacement cible, les données préalablement présentes dans l'emplacement étant écrasées [SWS_CRYPT_20517].

Inspection et persistance d'un CryptoObjectApplicationCryptoObjectWriteableKeySlotGetAlgId()AlgIdStringGetAllowedUsage()AllowedUsageFlags (kAllowPersist)Save(keyslot)Écrire le matériel de clé et les métadonnéesSpeicherquittungResult<void>

Diagramme de séquence : déroulement typique pour l'inspection et la persistance d'un objet cryptographique dans un KeySlot. Sources : [SWS_CRYPT_20505], [SWS_CRYPT_50092], [SWS_CRYPT_20517].

Scénarios d'erreur

Tandis que GetAlgId() [SWS_CRYPT_20505] et GetAllowedUsage() [SWS_CRYPT_50092] n'indiquent aucun code d'erreur standardisé et renvoient le résultat respectif dans un ara::core::Result en cas de succès, l'opération de persistance Save() définit des conditions d'erreur spécifiques avec une sémantique de rollback contraignante [SWS_CRYPT_20517] :

  • ara::crypto::CryptoErrc::kIncompatibleObject : se produit lorsque l'objet est incompatible avec le WriteableKeySlot transmis, par exemple parce que les identifiants d'algorithmes (AlgId) diffèrent les uns des autres ou que le KeySlot appartient à un Crypto Provider différent [SWS_CRYPT_20517].
  • ara::crypto::CryptoErrc::kUsageViolation : signale une utilisation non autorisée si les indicateurs d'utilisation de la clé déclarés via GetAllowedUsage() ne contiennent pas le droit de persistance (kAllowPersist) [SWS_CRYPT_50092], [SWS_CRYPT_20517].
  • ara::crypto::CryptoErrc::kBusyResource : est renvoyé lorsque la ressource mémoire sous-jacente est temporairement occupée et que l'opération ne peut pas être exécutée immédiatement [SWS_CRYPT_20517].

Grâce à la sémantique de rollback, l'état du WriteableKeySlot reste intact lors de chacune de ces erreurs, de sorte qu'aucune donnée de clé partiellement écrite ou corrompue ne subsiste en mémoire [SWS_CRYPT_20517].

Ce guide est basé sur la spécification AUTOSAR Adaptive R25-11 et résume les exigences relatives à l'interface ara::crypto::cryp::CryptoObject.

Carte des membres

Alias de type

1

Diagramme de classes

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

Vue détaillée

Sélectionnez une entrée dans le plan.

Méthodes

GetAlgId fonction

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 fonction

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;

Alias de type

Sptr alias de type

Smart pointer of the interface.

Documentation des méthodes

fonction 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#040f2ccc
Content hash
040f2ccc
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

fonction 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#c74ffbe0
Content hash
c74ffbe0
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

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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 0aae854cf6a9 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La méthode Save de l'interface ara::crypto::cryp::CryptoObject sert au stockage persistant de matériau de clé ainsi que des métadonnées associées dans un WriteableKeySlot fourni ([SWS_CRYPT_20517]). Les données déjà déposées auparavant dans le KeySlot de destination sont écrasées lors de l'exécution ([SWS_CRYPT_20517]).

Le paramètre transmis est keyslot de type WriteableKeySlot::Sptr, qui représente l'emplacement mémoire sous-jacent ([SWS_CRYPT_20517]). La fonction est spécifiée comme noexcept ainsi que exception safe et fournit comme valeur de retour un ara::core::Result<void>, qui est vide en cas de succès ([SWS_CRYPT_20517]).

En cas d'erreur, une sémantique de rollback s'applique ([SWS_CRYPT_20517]). Plus précisément, les codes d'erreur suivants sont renvoyés :

  • ara::crypto::CryptoErrc::kIncompatibleObject : la clé est incompatible avec le KeySlot, par exemple en raison d'une AlgId divergente ou de l'association à un autre CryptoProvider ([SWS_CRYPT_20517]).
  • ara::crypto::CryptoErrc::kUsageViolation : l'utilisation autorisée de la clé n'englobe pas le droit kAllowPersist ([SWS_CRYPT_20517]).
  • ara::crypto::CryptoErrc::kBusyResource : l'opération ne peut pas être exécutée temporairement ([SWS_CRYPT_20517]).

Concernant la concurrence, la méthode est déclarée comme thread-safe ([SWS_CRYPT_20517]).

Cette note d'utilisation a été générée par une IA sur la base de la spécification AUTOSAR R25-11.

Guide de l'implémenteur à venir (complexité 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#4b893de9
Content hash
4b893de9
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

Documentation des alias de type

alias de type 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#9cf146c0
Content hash
9cf146c0
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