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

Guia do utilizadorGERADO POR IA

Serve como interface comum para a inspeção thread-safe e o armazenamento persistente de objetos criptográficos.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 156a618ba987 Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Serve como interface comum para a inspeção thread-safe e o armazenamento persistente de objetos criptográficos.

A interface ara::crypto::cryp::CryptoObject define a abstração comum para todos os objetos criptográficos na pilha Adaptive Crypto e regula o respetivo ciclo de vida através de Sptr [SWS_CRYPT_20501]. Permite a leitura thread-safe de identificadores de algoritmos, bem como de flags de utilização, e suporta a substituição permanente de material de chave num WriteableKeySlot [SWS_CRYPT_20505], [SWS_CRYPT_20517]. Durante o processo de armazenamento, códigos de erro definidos com semântica de rollback garantem a integridade dos dados do slot de memória subjacente [SWS_CRYPT_20517].

Contexto

A interface ara::crypto::cryp::CryptoObject constitui a abstração comum para todos os objetos criptográficos que podem ser reconhecidos e geridos por um provedor criptográfico. A classe expande ara::crypto::Serializable e define propriedades fundamentais, tais como identificação de algoritmo, restrições de utilização e mecanismos de armazenamento persistente. Os parceiros de interação típicos são aplicações chamadoras, o provedor criptográfico fornecedor e memórias de destino sob a forma de instâncias de WriteableKeySlot.

Ciclo de vida

Os objetos criptográficos são geridos na plataforma primariamente através de posse partilhada. Para este efeito, a classe define o alias de smart pointer canónico ara::crypto::cryp::CryptoObject::Sptr como std::shared_ptr<CryptoObject> [SWS_CRYPT_20501]. Instâncias concretas deverão ser instanciadas pelas rotinas de fábrica e de carregamento especializadas de um provedor criptográfico e disponibilizadas ao chamador através deste tipo de ponteiro. Pergunta Q-36e2bd12d7dc8b98 (aberta) Todos os métodos declarados da interface estão especificados como thread-safe e seguros contra exceções (exception safe, noexcept), assegurando um acesso simultâneo seguro de leitura e armazenamento através de múltiplas threads [SWS_CRYPT_20505], [SWS_CRYPT_50092], [SWS_CRYPT_20517]. A libertação do objeto e do respetivo material de chave ocorre automaticamente assim que a última referência Sptr expirar.

Caminho de utilização

Um fluxo típico de utilização abrange a identificação das propriedades criptográficas de um objeto e o seu armazenamento persistente subsequente. Inicialmente, a aplicação consulta o identificador de algoritmo do objeto como ara::crypto::AlgIdString através de GetAlgId() [SWS_CRYPT_20505]. Em seguida, são determinadas as flags de utilização permitidas (AllowedUsageFlags) através de GetAllowedUsage() [SWS_CRYPT_50092], de modo a garantir que o objeto está autorizado para a operação pretendida. Para o armazenamento permanente, a aplicação passa um slot de chave gravável para o método Save() [SWS_CRYPT_20517]. O material de chave e os metadados associados são então guardados no slot de destino, substituindo os dados previamente existentes no slot [SWS_CRYPT_20517].

Inspeção e persistência de um CryptoObjectAplicaçãoCryptoObjectWriteableKeySlotGetAlgId()AlgIdStringGetAllowedUsage()AllowedUsageFlags (kAllowPersist)Save(keyslot)Gravar material de chave e metadadosSpeicherquittungResult<void>

Diagrama de sequência: fluxo típico de inspeção e persistência de um objeto criptográfico num KeySlot. Fontes: [SWS_CRYPT_20505], [SWS_CRYPT_50092], [SWS_CRYPT_20517].

Cenários de erro

Enquanto GetAlgId() [SWS_CRYPT_20505] e GetAllowedUsage() [SWS_CRYPT_50092] não apresentam códigos de erro normalizados e devolvem o respetivo resultado num ara::core::Result em caso de sucesso, a operação de persistência Save() define condições de erro específicas com semântica de rollback vinculativa [SWS_CRYPT_20517]:

  • ara::crypto::CryptoErrc::kIncompatibleObject: ocorre quando o objeto é incompatível com o WriteableKeySlot transmitido, por exemplo, porque os identificadores de algoritmo (AlgId) divergem entre si ou o slot de chave pertence a um provedor criptográfico diferente [SWS_CRYPT_20517].
  • ara::crypto::CryptoErrc::kUsageViolation: sinaliza uma utilização indevida caso as flags de utilização da chave declaradas através de GetAllowedUsage() não incluam o direito de persistência (kAllowPersist) [SWS_CRYPT_50092], [SWS_CRYPT_20517].
  • ara::crypto::CryptoErrc::kBusyResource: é devolvido quando o recurso de memória subjacente está temporariamente ocupado e a operação não pode ser executada de imediato [SWS_CRYPT_20517].

Graças à semântica de rollback, o estado do WriteableKeySlot permanece intacto em cada um destes erros, de modo que nenhum dado de chave parcialmente gravado ou corrompido permaneça na memória [SWS_CRYPT_20517].

Este guia baseia-se na especificação AUTOSAR Adaptive R25-11 e resume os requisitos da interface ara::crypto::cryp::CryptoObject.

Mapa de membros

Aliases de tipo

1

Diagrama 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

Vista de detalhes

Selecione uma entrada no índice.

Métodos

GetAlgId função

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 função

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;

Aliases de tipo

Sptr alias de tipo

Smart pointer of the interface.

Documentação dos métodos

função 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#c539fc83
Content hash
c539fc83
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

função 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#32166a97
Content hash
32166a97
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

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 0aae854cf6a9 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

O método Save da interface ara::crypto::cryp::CryptoObject serve para o armazenamento persistente de material de chave juntamente com os respectivos metadados em um WriteableKeySlot fornecido ([SWS_CRYPT_20517]). Dados previamente armazenados no KeySlot de destino são sobrescritos durante a execução ([SWS_CRYPT_20517]).

Como parâmetro, é transmitido keyslot do tipo WriteableKeySlot::Sptr, que representa o espaço de armazenamento subjacente ([SWS_CRYPT_20517]). A função é especificada como noexcept e exception safe e retorna como valor de retorno um ara::core::Result<void>, que está vazio em caso de sucesso ([SWS_CRYPT_20517]).

Em caso de falha, aplica-se uma semântica de rollback ([SWS_CRYPT_20517]). Especificamente, são retornados os seguintes códigos de erro:

  • ara::crypto::CryptoErrc::kIncompatibleObject: A chave é incompatível com o KeySlot, por exemplo, devido a um AlgId divergente ou à associação a outro CryptoProvider ([SWS_CRYPT_20517]).
  • ara::crypto::CryptoErrc::kUsageViolation: O uso permitido da chave não inclui o direito kAllowPersist ([SWS_CRYPT_20517]).
  • ara::crypto::CryptoErrc::kBusyResource: A operação não pode ser executada temporariamente ([SWS_CRYPT_20517]).

Em relação à concorrência, o método é declarado como thread-safe ([SWS_CRYPT_20517]).

Esta nota de utilização foi gerada por uma IA com base na especificação AUTOSAR R25-11.

Guia do implementador em breve (complexidade 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#581c9632
Content hash
581c9632
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

Documentação dos aliases de tipo

alias de tipo 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#0fc1bef1
Content hash
0fc1bef1
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