DEENESPTFRRUARHIKOZHNL

klasse ara::crypto::Serializable

[SWS_CRYPT_10700] Upstream: RS_CRYPTO_02105

class Serializable {...};

Serializable object interface.

Header-Datei#include "ara/crypto/common/serializable.h"
Forwarding-Header#include "ara/crypto/crypto_fwd.h"
Scopenamespace ara::crypto

User GuideAI-GEGENEREERD

Definieert de interface voor de groottebepaling en voor het publiek serialiseren van cryptografische objecten.
DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: dacacac17ff9 Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Definieert de interface voor de groottebepaling en voor het publiek serialiseren van cryptografische objecten.

De interface ara::crypto::Serializable definieert de uniforme standaard voor het publiek exporteren van cryptografische objecten naar formatspecifieke bytesequenties. Applicaties bepalen vooraf via GetExportSize() de benodigde buffergrootte en voeren de feitelijke serialisatie vervolgens via ExportPublicly() uit naar een beschikbaar gestelde buffer [SWS_CRYPT_10711]. Alle operaties zijn exception-safe en thread-safe, waarbij de export van sleutels dwingend de bevoegdheid kAllowPlaintextExport vereist en fouten altijd onderworpen zijn aan een rollback-semantiek [SWS_CRYPT_50006].

Context

De interface ara::crypto::Serializable definieert het abstracte contract voor cryptografische objecten in de module crypto die kunnen worden omgezet naar een gestandaardiseerde byterepresentatie. Als zuivere interface kapselt zij het vermogen in om een object te serialiseren naar een uitvoerformaat dat door een formaat-identifier (FormatId) wordt gespecificeerd [SWS_CRYPT_10711]. Tot de typische interactiepartners behoren applicatie- of platformcomponenten die cryptografische artefacten zoals sleutels of certificaten persistent moeten opslaan, over communicatiekanalen moeten verzenden of in platte tekst moeten uitwisselen. De interface waarborgt dat de export gecontroleerd en met inachtneming van formaten en beveiligingsbeperkingen plaatsvindt.

Levenscyclus

Omdat ara::crypto::Serializable een puur virtuele interface met puur virtuele methoden is, beschikt de klasse niet over een eigen instantiëringslogica. De levensduur en het aanmaken hangen volledig af van de afgeleide concrete crypto-klassen die de interface implementeren. Beide gespecificeerde methoden van de interface, GetExportSize() [SWS_CRYPT_50006] en ExportPublicly() [SWS_CRYPT_10711], zijn gedeclareerd als const en veranderen de interne toestand van het object tijdens de serialisatie niet. Volgens de specificatie zijn de operaties uitzonderingsveilig (exception safe) en concurrency-veilig (thread-safe) ontworpen [SWS_CRYPT_10711], [SWS_CRYPT_50006], zodat parallelle leestoegangen tot dezelfde objectinstantie zijn toegestaan.

Gebruikspad

Het reguliere verloop van een export is opgedeeld in een tweestapssequentie van groottebepaling en feitelijke serialisatie. Om bufferoverstromingen of mislukkende allocaties te voorkomen, vraagt de aanroeper vooraf via de methode GetExportSize() de exact benodigde buffergrootte in bytes voor het gewenste doelformaat op [SWS_CRYPT_50006]. Na een succesvolle terugmelding stelt de aanroeper een beschrijfbaar geheugengebied van het type ReadWriteMemRegion beschikbaar. Vermoedelijk wordt dit geheugengebied in de meeste implementaties dynamisch gealloceerd op basis van het vastgestelde aantal bytes of beschikbaar gesteld vanuit een vooraf gereserveerde geheugenpool. Vraag Q-0c04ba0a352f0a37 (open)

In de daaropvolgende stap roept de applicatie ExportPublicly() aan en geeft daarbij zowel de beschikbaar gestelde buffer als de eerder gekozen FormatId [SWS_CRYPT_10711] door. Het object serialiseert zijn nuttige data naar het overgedragen geheugengebied en retourneert bij succes binnen het retourtype ara::core::Result<std::size_t> het daadwerkelijk geschreven aantal bytes [SWS_CRYPT_10711].

Serialisatieverloop via ara::crypto::SerializableAnwendungSerializableGetExportSize(format)Result<std::size_t> (buffergrootte)Bereitstellung ReadWriteMemRegionExportPublicly(out, format)Result<std::size_t> (geschriebene Bytes)

Sequentiediagram: Typische aanroepvolgorde voor het serialiseren van een object via een groottevraag en aansluitende export. Bronnen: [SWS_CRYPT_50006], [SWS_CRYPT_10711]

Foutscenario's

De operaties van de interface signaleren fouttoestanden via het retourtype ara::core::Result, waarbij alle gespecificeerde fouten een strikte rollback-semantiek (rollback_semantics) garanderen [SWS_CRYPT_10711], [SWS_CRYPT_50006]. Mislukt een aanroep, dan blijft het totale systeem in een consistente toestand. De volgende foutgevallen zijn gedefinieerd:

  • ara::crypto::CryptoErrc::kUnsupportedFormat: Wordt zowel door GetExportSize() [SWS_CRYPT_50006] als door ExportPublicly() [SWS_CRYPT_10711] geretourneerd wanneer de opgegeven FormatId niet wordt ondersteund voor het concrete objecttype.
  • ara::crypto::CryptoErrc::kInsufficientCapacity: Treedt op in ExportPublicly() wanneer de capaciteit van de overgedragen ReadWriteMemRegion-buffer niet toereikend is voor de geserialiseerde data [SWS_CRYPT_10711].
  • ara::crypto::CryptoErrc::kUnsupported: Wordt door ExportPublicly() gemeld indien de export voor het specifieke object principieel niet wordt ondersteund [SWS_CRYPT_10711].
  • ara::crypto::CryptoErrc::kUsageViolation: Treedt op bij ExportPublicly() wanneer het bij het object om een sleutel gaat waarvan de gebruiksregels een export in platte tekst niet toestaan (het toegestane gebruik bevat niet kAllowPlaintextExport) [SWS_CRYPT_10711].

Deze handleiding is gebaseerd op de specificatie AUTOSAR R25-11.

UML-klassendiagram

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

G nara__crypto__Serializable855 Serializable + ExportPublicly() + GetExportSize() nara__crypto__cryp__CryptoObject679 CryptoObject nara__crypto__cryp__CryptoObject679->nara__crypto__Serializable855 nara__crypto__x509__CertSignRequest934 CertSignRequest nara__crypto__x509__CertSignRequest934->nara__crypto__Serializable855 nara__crypto__x509__Certificate240 Certificate nara__crypto__x509__Certificate240->nara__crypto__Serializable855 nara__crypto__x509__X509DN930 X509DN nara__crypto__x509__X509DN930->nara__crypto__Serializable855

Methoden

Serialize object using the provided format.

virtual ara::core::Result< std::size_t > ExportPublicly (ReadWriteMem Region out, FormatId format) const noexcept=0;

Get the size in bytes of the object when serialized in the provided format using ExportPublicly()

virtual ara::core::Result< std::size_t > GetExportSize (FormatId format) const noexcept=0;

Documentatie van de methoden

functie ExportPublicly [SWS_CRYPT_10711] Upstream: RS_CRYPTO_02112

virtual ara::core::Result< std::size_t > ExportPublicly (ReadWriteMem Region out, FormatId format) const noexcept=0;

Serialize object using the provided format.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 499fb38eb87a Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Gebruik

De synchrone elementfunctie ExportPublicly van de interface ara::crypto::Serializable serialiseert het object in het gespecificeerde uitvoerformaat [SWS_CRYPT_10711]. Als parameters worden de formaat-ID format (type FormatId) en het doelgeheugengebied out (type ReadWriteMem Region) meegegeven. Bij een succesvol verloop retourneert de functie het werkelijke aantal geschreven bytes in een ara::core::Result<std::size_t> [SWS_CRYPT_10711].

Samenspel met verwante functies

De functie staat in directe relatie tot GetExportSize [SWS_CRYPT_50006], waarmee de voor een bepaald formaat benodigde bytegrootte kan worden bepaald. Oproepers zullen typisch vóór het bereitstellen van de uitvoerbuffer out eerst GetExportSize opvragen om voldoende buffercapaciteit te waarborgen. Vraag Q-394ae08d9d7e6fa7 (open)

Foutafhandeling

In geval van een fout treden rollback-semantieken in werking en wordt een overeenkomstige foutcode geretourneerd [SWS_CRYPT_10711]:

  • ara::crypto::CryptoErrc::kInsufficientCapacity: De meegegeven uitvoerbuffer out is te klein gedimensioneerd [SWS_CRYPT_10711].
  • ara::crypto::CryptoErrc::kUnsupportedFormat: De meegegeven formaat-ID wordt voor dit objecttype niet ondersteund [SWS_CRYPT_10711].
  • ara::crypto::CryptoErrc::kUnsupported: Het exporteren van het object wordt in het algemeen niet ondersteund [SWS_CRYPT_10711].
  • ara::crypto::CryptoErrc::kUsageViolation: Het te exporteren object is een sleutel waarvan de gebruiksregels geen export in platte tekst (kAllowPlaintextExport) toestaan [SWS_CRYPT_10711].

Gelijktijdigheid en randvoorwaarden

De methode is gespecificeerd als const, noexcept, thread-veilig („thread-safe”) en exceptieveilig („exception safe”) [SWS_CRYPT_10711]. Ze kan bijgevolg concurrent worden uitgevoerd en werpt geen C++-excepties.

Deze gebruiksinstructie is gegenereerd door een AI op basis van de AUTOSAR-specificatie R25-11.

Implementer's Guide volgt (complexiteit I1)

Header-Datei#include "ara/crypto/common/serializable.h"
Scopeclass ara::crypto::Serializable
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
formatidentifier of the output format

Parameter (out)

ParameterBeschreibung
outan output buffer that the serialized object will be written to

Rückgabewert

TypBeschreibung
ara::core::Result<std::size_t >A result containing the size in bytes of the serialized object or an error.

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kInsufficientCapacityrollback_semantics if the output buffer is too small
ara::crypto::CryptoErrc::kUnsupportedFormatrollback_semantics if the specified format ID is not supported for this object type
ara::crypto::CryptoErrc::kUnsupportedrollback_semantics if exporting the object is not supported
ara::crypto::CryptoErrc::kUsageViolationrollback_semantics if the object to be exported is a key and the allowed usage of the key does not include kAllowPlaintextExport

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

Record
AUTOSAR/AP/record/SWS_CRYPT_10711
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_10711@rel:R25-11#afcc4feb
Content hash
afcc4feb
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_10711
Status: valid/unmigrated Version: rel:R25-11#c8dd72d0 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_10711@rel:R25-11#c8dd72d0
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#6e8a805e2026-09-30
  • R19-11rel:R19-11#fe62960e2026-10-14
  • R20-11rel:R20-11#4cac78d62026-10-14
  • R21-11rel:R21-11#13d51a182026-10-14
  • R22-11rel:R22-11#3bb1942d2026-10-14
  • R23-11rel:R23-11#ee143e792026-10-14
  • R24-11rel:R24-11#761192782026-10-14
  • R25-11rel:R25-11#c8dd72d02026-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

functie GetExportSize [SWS_CRYPT_50006] Upstream: RS_CRYPTO_02112

virtual ara::core::Result< std::size_t > GetExportSize (FormatId format) const noexcept=0;

Get the size in bytes of the object when serialized in the provided format using ExportPublicly()

Header-Datei#include "ara/crypto/common/serializable.h"
Scopeclass ara::crypto::Serializable
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
formatidentifier of the output format

Rückgabewert

TypBeschreibung
ara::core::Result<std::size_t >A result containing the size in bytes of the serialized object or an error.

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kUnsupportedFormatrollback_semantics if the specified format ID is not supported for this object type

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

Record
AUTOSAR/AP/record/SWS_CRYPT_50006
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50006@rel:R25-11#0b282289
Content hash
0b282289
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50006
Status: valid/unmigrated Version: rel:R25-11#6c5e92f9 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_50006@rel:R25-11#6c5e92f9
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