DEENESPTFRRUARHIKOZHNL

class ara::crypto::Formatter

[SWS_CRYPT_50190] Upstream: RS_CRYPTO_02105

class Formatter {...};

Formatter object interface.

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

User GuideKI-GENERIERT

Ermöglicht die threadsichere Konvertierung und Serialisierung kryptografischer Daten zwischen verschiedenen Formaten.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: f0bec470b702 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Ermöglicht die threadsichere Konvertierung und Serialisierung kryptografischer Daten zwischen verschiedenen Formaten.

Die Schnittstelle ara::crypto::Formatter ermöglicht die threadsichere Konvertierung und Serialisierung kryptografischer Daten zwischen Roh-, DER- und PEM-Formaten [SWS_CRYPT_50197]. Nach Festlegung des Zielformats und Ermittlung der benötigten Puffergröße überführt die Methode Convert die Quelldaten in den vorbereiteten Ausgabepuffer [SWS_CRYPT_50198]. Wesentliche Voraussetzung für eine erfolgreiche Ausführung ist ein ausreichend dimensionierter Zielspeicher sowie die formale Übereinstimmung der Eingabedaten mit dem konfigurierten Quellformat.

Kontext

Die Schnittstelle ara::crypto::Formatter definiert im Modul crypto das einheitliche Interface für die Formatierung, Transformation und Serialisierung kryptografischer Datenstrukturen. Ihre Hauptaufgabe besteht darin, Nutzdaten und kryptografische Objekte zwischen Repräsentationen wie reinen Rohdaten (kFormatRawValueOnly), ASN.1-DER-Codierungen (kFormatDerEncoded) sowie textuellen PEM-Formaten (kFormatPemEncoded) unter Berücksichtigung einer Algorithmenkennung (AlgId) zu konvertieren [SWS_CRYPT_50197]. Hierbei agiert der Formatter als Bindeglied zwischen kryptografischen Objekten und Speicherpuffern, indem er Daten über ReadOnlyMemRegion einliest und in ReadWriteMemRegion ausgibt [SWS_CRYPT_50198].

Lebenszyklus

Da ara::crypto::Formatter als rein virtuelle Schnittstelle deklariert ist, stellt sie zur Referenzierung und Lebenszyklusverwaltung den kanonischen Smart-Pointer-Typalias Sptr bereit, der als std::shared_ptr<Formatter> definiert ist [SWS_CRYPT_50191]. Konkrete Instanzen des Interfaces dürften in der Praxis über Fabrikmethoden übergeordneter Krypto-Komponenten bereitgestellt werden. Frage Q-99e96992d02b9c13 (offen) Nach der Erzeugung befindet sich ein Formatter zunächst in einem unkonfigurierten Ausgangszustand, bevor er durch Konfigurationsaufrufe für Wandlungen vorbereitet wird.

Hinsichtlich der Ausführungsumgebung garantiert die Schnittstelle vollständige Ausnahme-Sicherheit (exception safe) durch den konsequenten Einsatz von noexcept und die Fehlerbehandlung über Result-Typen [SWS_CRYPT_50197], [SWS_CRYPT_50198], [SWS_CRYPT_50199]. Sämtliche Mitgliedsfunktionen sind zudem als threadsicher (thread-safe) spezifiziert [SWS_CRYPT_50197], [SWS_CRYPT_50198], [SWS_CRYPT_50199]. Dies erlaubt den parallelen lesenden und transformierenden Zugriff mehrerer Threads auf eine geteilte Formatter-Instanz, solange keine konkurrierenden Rekonfigurationen stattfinden.

Nutzungspfad

Die reguläre Verwendung von ara::crypto::Formatter folgt einer festen Abfolge aus Parametrierung, Kapazitätsprüfung und Transformation:

  1. Formatkonfiguration: Über SetFormatConfiguration werden das erwartete Eingabeformat (inputFormat), das gewünschte Ausgabeformat (outputFormat) sowie die Algorithmenkennung (algId) der zu verarbeitenden Daten verbindlich festgelegt [SWS_CRYPT_50197].
  2. Größenermittlung: Vor der eigentlichen Konvertierung ruft die Anwendung GetExportSize auf, um die exakte Speichergröße in Bytes zu ermitteln, die das serialisierte Objekt unter der aktuellen Konfiguration benötigt [SWS_CRYPT_50199]. Dies ermöglicht die passgenaue Allokation des Zielspeichers.
  3. Datenkonvertierung: Abschließend transformiert Convert die Quelldaten aus einer ReadOnlyMemRegion in den Zielpuffer ReadWriteMemRegion entsprechend der getroffenen Konfiguration [SWS_CRYPT_50198].
Typische Datenkonvertierung mit dem FormatterAnwendungFormatterSetFormatConfiguration(inputFormat, outputFormat, algId)Result<void>GetExportSize()Result<std::size_t> (Puffergröße)Convert(input, out)Result<void>

Sequenzdiagramm: Typische Konvertierungsabfolge von der Formatauswahl über die Puffergrößenermittlung bis zur eigentlichen Transformation. Quellen: [SWS_CRYPT_50197], [SWS_CRYPT_50199], [SWS_CRYPT_50198]

Fehlerszenarien

Methoden von ara::crypto::Formatter signalisieren Fehlerzustände deterministisch über Rückgabewerte vom Typ ara::core::Result. Dabei sind für fehlschlagende Operationen klare Rollback-Semantiken hinterlegt:

  • Nicht unterstützte Formate: Unterstützt die zugrundeliegende Implementierung das spezifizierte Wandlungspaar oder die Algorithmenkennung nicht, liefert SetFormatConfiguration den Fehlercode ara::crypto::CryptoErrc::kUnsupportedFormat [SWS_CRYPT_50197].
  • Ungültige Eingabedaten: Wenn die im Puffer übergebenen Rohdaten nicht dem konfigurierten Format entsprechen oder syntaktisch ungültig sind, schlägt Convert mit ara::crypto::CryptoErrc::kInvalidArgument fehl [SWS_CRYPT_50198].
  • Unzureichender Zielpuffer: Ist die bereitgestellte ReadWriteMemRegion zu klein für das serialisierte Ergebnis, bricht Convert mit ara::crypto::CryptoErrc::kInsufficientCapacity ab [SWS_CRYPT_50198]. Dieses Problem lässt sich durch vorherige Abfrage über GetExportSize [SWS_CRYPT_50199] gezielt verhindern.
  • Fehlende Vorkonfiguration: Für GetExportSize sind zwar keine standardisierten Fehlercodes aufgeführt [SWS_CRYPT_50199], jedoch muss vermutlich zwingend vorab eine gültige Konfiguration über SetFormatConfiguration etabliert worden sein, damit eine konsistente Größenbestimmung oder Konvertierung erfolgen kann. Frage Q-e7cf4306bc7cfb49 (offen)

Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive Platform R25-11 (Modul crypto) und wurde automatisiert erstellt.

Mitgliederkarte

Klassendiagramm

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

G nara__crypto__Formatter631 Formatter + Convert() + GetExportSize() + SetFormatConfiguration()

Detailansicht

Wähle in der Gliederung einen Eintrag aus.

Methoden

Convert function

Converts the data according to the previous configuration of the Formatter.

virtual ara::core::Result< void > Convert (ReadOnlyMemRegion input, ReadWriteMemRegion out) const noexcept=0;
GetExportSize function

Get the size in bytes of the object when serialized using the current configuration of the Formatter.

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

Configure the formatter with the expected input format, output format, and the AlgId of the data to be formatted. The input and output format may be kFormatRawValueOnly, kFormatDer Encoded, or kFormatPemEncoded.

virtual ara::core::Result< void > SetFormatConfiguration (FormatId inputFormat, FormatId outputFormat, AlgId algId) noexcept=0;

Typaliase

Sptr type alias

Smart pointer of the interface.

using Sptr = std::shared_ptr<Formatter>;

Dokumentation der Methoden

function Convert [SWS_CRYPT_50198] Upstream: RS_CRYPTO_02112

virtual ara::core::Result< void > Convert (ReadOnlyMemRegion input, ReadWriteMemRegion out) const noexcept=0;

Converts the data according to the previous configuration of the Formatter.

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

Die rein virtuelle Elementfunktion Convert der Schnittstelle ara::crypto::Formatter führt eine synchrone Konvertierung von Daten gemäß der zuvor festgelegten Konfiguration des Formatter-Objekts aus [SWS_CRYPT_50198]. Die Deklaration ist über den Header #include "ara/crypto/common/formatter.h" verfügbar [SWS_CRYPT_50198]. Für den Aufruf übergibt der Aufrufer die Eingabedaten im ursprünglichen Format über den Puffer input vom Typ ReadOnlyMemRegion sowie einen beschreibbaren Puffer out vom Typ ReadWriteMemRegion, in welchen die konvertierten Daten im Zielformat geschrieben werden [SWS_CRYPT_50198].

Der Rückgabewert ist als ara::core::Result<void> definiert und signalisiert den Erfolg oder einen aufgetretenen Fehler [SWS_CRYPT_50198]. Tritt während der Konvertierung ein Problem auf, greift eine Rollback-Semantik mit folgenden spezifischen Fehlercodes [SWS_CRYPT_50198]:

  • ara::crypto::CryptoErrc::kInvalidArgument: Wird zurückgegeben, falls die serialisierten Eingabedaten nicht dem spezifizierten Format entsprechen [SWS_CRYPT_50198].
  • ara::crypto::CryptoErrc::kInsufficientCapacity: Tritt auf, wenn die Kapazität des übergebenen Ausgabepuffers out zu gering für die Aufnahme der Ergebnisdaten ist [SWS_CRYPT_50198].

Hinsichtlich Nebenläufigkeit und Fehlertoleranz ist die Methode als threadsicher (thread-safe) und ausnahmesicher (exception safe) spezifiziert [SWS_CRYPT_50198]. Da die Signatur mit den Spezifizierern const und noexcept versehen ist, wirft die Operation keine C++-Ausnahmen und verändert den Zustand der Formatter-Instanz nicht [SWS_CRYPT_50198].

Dieser Nutzungshinweis wurde automatisch von einer KI auf Basis der Spezifikation generiert.

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

Parameter (in)

ParameterBeschreibung
inputan input buffer containing the data in the input format

Parameter (out)

ParameterBeschreibung
outan output buffer that the data will be written to in the output format

Rückgabewert

TypBeschreibung
ara::core::Result< void >An empty result or an error.

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kInvalidArgumentrollback_semantics if serialized does not conform to the specified format
ara::crypto::CryptoErrc::kInsufficientCapacityrollback_semantics if the output buffer is too small

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

Record
AUTOSAR/AP/record/SWS_CRYPT_50198
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50198@rel:R25-11#19644f36
Content hash
19644f36
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50198
Status: valid/unmigrated Version: rel:R25-11#19644f36 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_50198@rel:R25-11#19644f36
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 GetExportSize [SWS_CRYPT_50199] Upstream: RS_CRYPTO_02112

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

Get the size in bytes of the object when serialized using the current configuration of the Formatter.

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

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
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_50199
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50199@rel:R25-11#b96bc7d6
Content hash
b96bc7d6
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50199
Status: valid/unmigrated Version: rel:R25-11#b96bc7d6 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_50199@rel:R25-11#b96bc7d6
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 SetFormatConfiguration [SWS_CRYPT_50197] Upstream: RS_CRYPTO_02112

virtual ara::core::Result< void > SetFormatConfiguration (FormatId inputFormat, FormatId outputFormat, AlgId algId) noexcept=0;

Configure the formatter with the expected input format, output format, and the AlgId of the data to be formatted. The input and output format may be kFormatRawValueOnly, kFormatDer Encoded, or kFormatPemEncoded.

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

Parameter (in)

ParameterBeschreibung
inputFormatthe input format
outputFormatthe output format
algIdthe AlgId of the data to be formatted

Rückgabewert

TypBeschreibung
ara::core::Result< void >An empty result or an error.

Fehler

FehlercodeBeschreibung
ara::crypto::CryptoErrc::kUnsupportedFormatrollback_semantics if the specified conversion is not supported

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

Record
AUTOSAR/AP/record/SWS_CRYPT_50197
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50197@rel:R25-11#25ee4601
Content hash
25ee4601
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50197
Status: valid/unmigrated Version: rel:R25-11#25ee4601 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_50197@rel:R25-11#25ee4601
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_50191] Upstream: RS_CRYPTO_02306

using Sptr = std::shared_ptr<Formatter>;

Smart pointer of the interface.

Header-Datei#include "ara/crypto/common/formatter.h"
Scopeclass ara::crypto::Formatter
SymbolSptr

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

Record
AUTOSAR/AP/record/SWS_CRYPT_50191
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50191@rel:R25-11#869e375a
Content hash
869e375a
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50191
Status: valid/unmigrated Version: rel:R25-11#869e375a 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_50191@rel:R25-11#869e375a
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