DEENESPTFRRUARHIKOZHNL

clase 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

Guía del usuarioGENERADO POR IA

Permite la conversión y serialización seguras para subprocesos de datos criptográficos entre diferentes formatos.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: f0bec470b702 Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Permite la conversión y serialización seguras para subprocesos de datos criptográficos entre diferentes formatos.

La interfaz ara::crypto::Formatter permite la conversión y serialización seguras para subprocesos de datos criptográficos entre formatos en bruto, DER y PEM [SWS_CRYPT_50197]. Tras definir el formato de destino y determinar el tamaño de búfer requerido, el método Convert transfiere los datos de origen al búfer de salida preparado [SWS_CRYPT_50198]. Un requisito esencial para una ejecución correcta es una memoria de destino suficientemente dimensionada, así como la coincidencia formal de los datos de entrada con el formato de origen configurado.

Contexto

La interfaz ara::crypto::Formatter define en el módulo crypto la interfaz uniforme para el formateo, la transformación y la serialización de estructuras de datos criptográficos. Su tarea principal consiste en convertir datos útiles y objetos criptográficos entre representaciones tales como datos en bruto puros (kFormatRawValueOnly), codificaciones DER de ASN.1 (kFormatDerEncoded) y formatos PEM basados en texto (kFormatPemEncoded) teniendo en cuenta un identificador de algoritmo (AlgId) [SWS_CRYPT_50197]. En este proceso, el formateador actúa como enlace entre los objetos criptográficos y los búferes de memoria, leyendo datos a través de ReadOnlyMemRegion y emitiéndolos en ReadWriteMemRegion [SWS_CRYPT_50198].

Ciclo de vida

Dado que ara::crypto::Formatter está declarada como una interfaz puramente virtual, proporciona para su referenciación y gestión del ciclo de vida el alias de tipo de puntero inteligente canónico Sptr, definido como std::shared_ptr<Formatter> [SWS_CRYPT_50191]. En la práctica, las instancias concretas de la interfaz deberían proporcionarse a través de métodos de fábrica de componentes criptográficos de nivel superior. Pregunta Q-99e96992d02b9c13 (abierta) Tras su creación, un formateador se encuentra inicialmente en un estado inicial no configurado antes de prepararse para las transformaciones mediante llamadas de configuración.

En cuanto al entorno de ejecución, la interfaz garantiza una total seguridad frente a excepciones (exception safe) mediante el uso consecuente de noexcept y la gestión de errores a través de tipos de resultado [SWS_CRYPT_50197], [SWS_CRYPT_50198], [SWS_CRYPT_50199]. Asimismo, todas las funciones miembro están especificadas como seguras para subprocesos (thread-safe) [SWS_CRYPT_50197], [SWS_CRYPT_50198], [SWS_CRYPT_50199]. Esto permite el acceso paralelo de lectura y transformación de múltiples subprocesos a una instancia de formateador compartida, siempre que no se produzcan reconfiguraciones simultáneas.

Ruta de uso

El uso habitual de ara::crypto::Formatter sigue una secuencia fija de parametrización, comprobación de capacidad y transformación:

  1. Configuración del formato: Mediante SetFormatConfiguration se definen de manera vinculante el formato de entrada esperado (inputFormat), el formato de salida deseado (outputFormat) y el identificador de algoritmo (algId) de los datos que se van a procesar [SWS_CRYPT_50197].
  2. Determinación del tamaño: Antes de la conversión propiamente dicha, la aplicación invoca a GetExportSize para determinar el tamaño exacto de memoria en bytes que requiere el objeto serializado con la configuración actual [SWS_CRYPT_50199]. Esto permite la asignación a medida de la memoria de destino.
  3. Conversión de datos: Finalmente, Convert transforma los datos de origen de una ReadOnlyMemRegion en el búfer de destino ReadWriteMemRegion de acuerdo con la configuración establecida [SWS_CRYPT_50198].
Conversión típica de datos con el FormatterAplicaciónFormateadorSetFormatConfiguration(inputFormat, outputFormat, algId)Result<void>GetExportSize()Result<std::size_t> (tamaño del búfer)Convert(input, out)Result<void>

Diagrama de secuencia: Secuencia típica de conversión, desde la selección del formato y la determinación del tamaño del búfer hasta la transformación propiamente dicha. Fuentes: [SWS_CRYPT_50197], [SWS_CRYPT_50199], [SWS_CRYPT_50198]

Escenarios de error

Los métodos de ara::crypto::Formatter señalizan estados de error de forma determinista mediante valores de retorno de tipo ara::core::Result. Para las operaciones fallidas, se contemplan semánticas de reversión claras:

  • Formatos no compatibles: Si la implementación subyacente no admite el par de transformación especificado o el identificador de algoritmo, SetFormatConfiguration devuelve el código de error ara::crypto::CryptoErrc::kUnsupportedFormat [SWS_CRYPT_50197].
  • Datos de entrada no válidos: Si los datos en bruto pasados en el búfer no se corresponden con el formato configurado o son sintácticamente no válidos, Convert falla con ara::crypto::CryptoErrc::kInvalidArgument [SWS_CRYPT_50198].
  • Búfer de destino insuficiente: Si la ReadWriteMemRegion proporcionada es demasiado pequeña para el resultado serializado, Convert se interrumpe con ara::crypto::CryptoErrc::kInsufficientCapacity [SWS_CRYPT_50198]. Este problema puede evitarse deliberadamente mediante una consulta previa a través de GetExportSize [SWS_CRYPT_50199].
  • Falta de preconfiguración: Aunque no se detallan códigos de error estandarizados para GetExportSize [SWS_CRYPT_50199], presumiblemente debe haberse establecido de forma obligatoria una configuración válida previa mediante SetFormatConfiguration para que pueda llevarse a cabo una determinación coherente del tamaño o una conversión. Pregunta Q-e7cf4306bc7cfb49 (abierta)

Esta guía se basa en la especificación AUTOSAR Adaptive Platform R25-11 (módulo crypto) y ha sido generada automáticamente.

Mapa de miembros

Diagrama de clases

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

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

Vista de detalle

Selecciona una entrada en el índice.

Métodos

Convert función

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 función

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 tipo

Sptr alias de tipo

Smart pointer of the interface.

using Sptr = std::shared_ptr<Formatter>;

Documentación de los métodos

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 96118f35b505 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función miembro virtual pura Convert de la interfaz ara::crypto::Formatter realiza una conversión síncrona de datos de acuerdo con la configuración previamente establecida del objeto formateador [SWS_CRYPT_50198]. La declaración está disponible a través de la cabecera #include "ara/crypto/common/formatter.h" [SWS_CRYPT_50198]. Para la llamada, la entidad emisora de la llamada transfiere los datos de entrada en el formato original a través del búfer input del tipo ReadOnlyMemRegion, así como un búfer modificable out del tipo ReadWriteMemRegion, en el cual se escriben los datos convertidos en el formato de destino [SWS_CRYPT_50198].

El valor de retorno está definido como ara::core::Result<void> y señala el éxito o un error ocurrido [SWS_CRYPT_50198]. Si surge un problema durante la conversión, se aplica una semántica de reversión con los siguientes códigos de error específicos [SWS_CRYPT_50198]:

  • ara::crypto::CryptoErrc::kInvalidArgument: Se devuelve si los datos de entrada serializados no corresponden al formato especificado [SWS_CRYPT_50198].
  • ara::crypto::CryptoErrc::kInsufficientCapacity: Se produce cuando la capacidad del búfer de salida suministrado out es demasiado reducida para albergar los datos de resultado [SWS_CRYPT_50198].

En cuanto a la concurrencia y la tolerancia a fallos, el método está especificado como seguro para subprocesos (thread-safe) y seguro frente a excepciones (exception safe) [SWS_CRYPT_50198]. Dado que la firma cuenta con los especificadores const y noexcept, la operación no lanza excepciones de C++ ni modifica el estado de la instancia de Formatter [SWS_CRYPT_50198].

Esta nota de uso ha sido generada automáticamente por una IA sobre la base de la especificación.

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#3f6e3716
Content hash
3f6e3716
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

función 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#6115aaa5
Content hash
6115aaa5
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

función 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#b36dafa4
Content hash
b36dafa4
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

Documentación de los alias de tipo

alias de tipo 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#5964b65c
Content hash
5964b65c
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