DEENESPTFRRUARHIKOZHNL

classe 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

Guide utilisateurGÉNÉRÉ PAR IA

Permet la conversion et la sérialisation thread-safe de données cryptographiques entre différents formats.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : f0bec470b702 Provenance Questions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Permet la conversion et la sérialisation thread-safe de données cryptographiques entre différents formats.

L'interface ara::crypto::Formatter permet la conversion et la sérialisation thread-safe de données cryptographiques entre les formats bruts, DER et PEM [SWS_CRYPT_50197]. Après la définition du format cible et la détermination de la taille de tampon requise, la méthode Convert transfère les données sources dans le tampon de sortie préparé [SWS_CRYPT_50198]. Une condition essentielle pour une exécution réussie est une mémoire cible suffisamment dimensionnée ainsi que la conformité formelle des données d'entrée avec le format source configuré.

Contexte

L'interface ara::crypto::Formatter définit dans le module crypto l'interface uniforme pour le formatage, la transformation et la sérialisation des structures de données cryptographiques. Sa tâche principale consiste à convertir des données utiles et des objets cryptographiques entre des représentations telles que des données brutes pures (kFormatRawValueOnly), des codages ASN.1-DER (kFormatDerEncoded) ainsi que des formats textuels PEM (kFormatPemEncoded) en tenant compte d'un identifiant d'algorithme (AlgId) [SWS_CRYPT_50197]. Ici, le Formatter agit comme un lien entre les objets cryptographiques et les tampons mémoire en lisant les données via ReadOnlyMemRegion et en les restituant dans ReadWriteMemRegion [SWS_CRYPT_50198].

Cycle de vie

Puisque ara::crypto::Formatter est déclarée comme une interface purement virtuelle, elle fournit, pour le référencement et la gestion du cycle de vie, l'alias de type de pointeur intelligent canonique Sptr, qui est défini comme std::shared_ptr<Formatter> [SWS_CRYPT_50191]. En pratique, les instances concrètes de l'interface devraient être fournies via des méthodes de fabrique de composants cryptographiques de niveau supérieur. Question Q-99e96992d02b9c13 (ouverte) Après sa création, un Formatter se trouve d'abord dans un état initial non configuré, avant d'être préparé pour les conversions par des appels de configuration.

En ce qui concerne l'environnement d'exécution, l'interface garantit une sécurité totale vis-à-vis des exceptions (exception safe) grâce à l'utilisation systématique de noexcept et au traitement des erreurs via des types Result [SWS_CRYPT_50197], [SWS_CRYPT_50198], [SWS_CRYPT_50199]. Toutes les fonctions membres sont en outre spécifiées comme thread-safe [SWS_CRYPT_50197], [SWS_CRYPT_50198], [SWS_CRYPT_50199]. Cela permet l'accès parallèle en lecture et en transformation de plusieurs threads à une instance partagée de Formatter, tant qu'aucune reconfiguration concurrente n'a lieu.

Parcours d'utilisation

L'utilisation régulière de ara::crypto::Formatter suit une séquence fixe de paramétrage, de vérification de capacité et de transformation :

  1. Configuration du format : le format d'entrée attendu (inputFormat), le format de sortie souhaité (outputFormat) ainsi que l'identifiant d'algorithme (algId) des données à traiter sont définis de manière contraignante via SetFormatConfiguration [SWS_CRYPT_50197].
  2. Détermination de la taille : avant la conversion proprement dite, l'application appelle GetExportSize afin de déterminer la taille exacte en mémoire, en octets, requise par l'objet sérialisé sous la configuration actuelle [SWS_CRYPT_50199]. Cela permet l'allocation sur mesure de la mémoire cible.
  3. Conversion des données : pour finir, Convert transforme les données sources issues d'une ReadOnlyMemRegion vers le tampon cible ReadWriteMemRegion conformément à la configuration effectuée [SWS_CRYPT_50198].
Conversion de données typique avec le FormatterApplicationFormateurSetFormatConfiguration(inputFormat, outputFormat, algId)Result<void>GetExportSize()Result<std::size_t> (taille du tampon)Convert(input, out)Result<void>

Diagramme de séquence : séquence de conversion typique, de la sélection du format à la transformation proprement dite, en passant par la détermination de la taille du tampon. Sources : [SWS_CRYPT_50197], [SWS_CRYPT_50199], [SWS_CRYPT_50198]

Scénarios d'erreur

Les méthodes de ara::crypto::Formatter signalent les états d'erreur de manière déterministe via des valeurs de retour de type ara::core::Result. Des sémantiques de rollback claires sont par ailleurs définies pour les opérations échouées :

  • Formats non pris en charge : si l'implémentation sous-jacente ne prend pas en charge la paire de conversion spécifiée ou l'identifiant d'algorithme, SetFormatConfiguration renvoie le code d'erreur ara::crypto::CryptoErrc::kUnsupportedFormat [SWS_CRYPT_50197].
  • Données d'entrée non valides : si les données brutes transmises dans le tampon ne correspondent pas au format configuré ou sont syntaxiquement non valides, Convert échoue avec ara::crypto::CryptoErrc::kInvalidArgument [SWS_CRYPT_50198].
  • Tampon cible insuffisant : si la ReadWriteMemRegion fournie est trop petite pour le résultat sérialisé, Convert s'interrompt avec ara::crypto::CryptoErrc::kInsufficientCapacity [SWS_CRYPT_50198]. Ce problème peut être évité de manière ciblée par une interrogation préalable via GetExportSize [SWS_CRYPT_50199].
  • Préconfiguration manquante : bien qu'aucun code d'erreur standardisé ne soit répertorié pour GetExportSize [SWS_CRYPT_50199], une configuration valide via SetFormatConfiguration doit vraisemblablement avoir été établie au préalable afin qu'une détermination de taille ou une conversion cohérente puisse être effectuée. Question Q-e7cf4306bc7cfb49 (ouverte)

Ce guide est basé sur la spécification AUTOSAR Adaptive Platform R25-11 (module crypto) et a été généré automatiquement.

Carte des membres

Diagramme de classes

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

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

Vue détaillée

Sélectionnez une entrée dans le plan.

Méthodes

Convert fonction

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 fonction

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;

Alias de type

Sptr alias de type

Smart pointer of the interface.

using Sptr = std::shared_ptr<Formatter>;

Documentation des méthodes

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

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

La fonction membre purement virtuelle Convert de l'interface ara::crypto::Formatter exécute une conversion synchrone de données conformément à la configuration préalablement définie de l'objet formateur [SWS_CRYPT_50198]. La déclaration est disponible via l'en-tête #include "ara/crypto/common/formatter.h" [SWS_CRYPT_50198]. Pour l'appel, l'appelant transmet les données d'entrée dans le format d'origine via le tampon input de type ReadOnlyMemRegion ainsi qu'un tampon accessible en écriture out de type ReadWriteMemRegion, dans lequel les données converties sont écrites au format cible [SWS_CRYPT_50198].

La valeur de retour est définie comme ara::core::Result<void> et signale le succès ou une erreur survenue [SWS_CRYPT_50198]. Si un problème survient pendant la conversion, une sémantique de rollback s'applique avec les codes d'erreur spécifiques suivants [SWS_CRYPT_50198] :

  • ara::crypto::CryptoErrc::kInvalidArgument : renvoyé si les données d'entrée sérialisées ne correspondent pas au format spécifié [SWS_CRYPT_50198].
  • ara::crypto::CryptoErrc::kInsufficientCapacity : survient lorsque la capacité du tampon de sortie out transmis est insuffisante pour accueillir les données de résultat [SWS_CRYPT_50198].

Concernant la concurrence et la tolérance aux pannes, la méthode est spécifiée comme sûre du point de vue des threads (thread-safe) et sûre face aux exceptions (exception safe) [SWS_CRYPT_50198]. La signature étant dotée des spécificateurs const et noexcept, l'opération ne lève aucune exception C++ et ne modifie pas l'état de l'instance du formateur [SWS_CRYPT_50198].

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

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#8bf49637
Content hash
8bf49637
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

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

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

Documentation des alias de type

alias de type 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#436ef46f
Content hash
436ef46f
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