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

Guia do utilizadorGERADO POR IA

Permite a conversão e serialização thread-safe de dados criptográficos entre diferentes formatos.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: f0bec470b702 Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Permite a conversão e serialização thread-safe de dados criptográficos entre diferentes formatos.

A interface ara::crypto::Formatter permite a conversão e serialização thread-safe de dados criptográficos entre formatos em bruto, DER e PEM [SWS_CRYPT_50197]. Após a definição do formato de destino e o apuramento do tamanho de buffer necessário, o método Convert transfere os dados de origem para o buffer de saída preparado [SWS_CRYPT_50198]. O pré-requisito essencial para uma execução bem-sucedida é uma memória de destino suficientemente dimensionada, bem como a conformidade formal dos dados de entrada com o formato de origem configurado.

Contexto

A interface ara::crypto::Formatter define no módulo crypto a interface unificada para a formatação, transformação e serialização de estruturas de dados criptográficos. A sua principal tarefa consiste em converter dados úteis e objetos criptográficos entre representações como dados em bruto puros (kFormatRawValueOnly), codificações ASN.1-DER (kFormatDerEncoded) e formatos textuais PEM (kFormatPemEncoded), tendo em conta um identificador de algoritmo (AlgId) [SWS_CRYPT_50197]. Neste contexto, o formatador atua como elo de ligação entre objetos criptográficos e buffers de memória, lendo dados através de ReadOnlyMemRegion e emitindo-os em ReadWriteMemRegion [SWS_CRYPT_50198].

Ciclo de vida

Dado que ara::crypto::Formatter está declarada como uma interface puramente virtual, disponibiliza o alias de tipo de smart pointer canónico Sptr, definido como std::shared_ptr<Formatter>, para referenciação e gestão do ciclo de vida [SWS_CRYPT_50191]. Na prática, instâncias concretas da interface deverão ser disponibilizadas através de métodos de fábrica de componentes criptográficos de nível superior. Pergunta Q-99e96992d02b9c13 (aberta) Após a criação, um formatador encontra-se inicialmente num estado inicial não configurado antes de ser preparado para transformações através de chamadas de configuração.

No que diz respeito ao ambiente de execução, a interface garante segurança total contra exceções (exception safe) mediante a utilização consistente de noexcept e o tratamento de erros através de tipos de resultado [SWS_CRYPT_50197], [SWS_CRYPT_50198], [SWS_CRYPT_50199]. Todas as funções-membro estão também especificadas como thread-safe [SWS_CRYPT_50197], [SWS_CRYPT_50198], [SWS_CRYPT_50199]. Isto permite o acesso paralelo de leitura e transformação de múltiplas threads a uma instância partilhada de formatador, desde que não ocorram reconfigurações concorrentes.

Caminho de utilização

A utilização regular de ara::crypto::Formatter segue uma sequência definida de parametrização, verificação de capacidade e transformação:

  1. Configuração do formato: através de SetFormatConfiguration, são definidos de forma vinculativa o formato de entrada esperado (inputFormat), o formato de saída pretendido (outputFormat) e o identificador de algoritmo (algId) dos dados a processar [SWS_CRYPT_50197].
  2. Apuramento do tamanho: antes da conversão propriamente dita, a aplicação invoca GetExportSize para apurar o tamanho exato da memória em bytes que o objeto serializado necessita na configuração atual [SWS_CRYPT_50199]. Isto permite a alocação exata da memória de destino.
  3. Conversão de dados: por fim, Convert transforma os dados de origem a partir de uma ReadOnlyMemRegion para o buffer de destino ReadWriteMemRegion em conformidade com a configuração efetuada [SWS_CRYPT_50198].
Conversão típica de dados com o FormatterAplicaçãoFormatterSetFormatConfiguration(inputFormat, outputFormat, algId)Result<void>GetExportSize()Result<std::size_t> (tamanho do buffer)Convert(input, out)Result<void>

Diagrama de sequência: sequência de conversão típica desde a seleção de formato e apuramento do tamanho do buffer até à transformação propriamente dita. Fontes: [SWS_CRYPT_50197], [SWS_CRYPT_50199], [SWS_CRYPT_50198]

Cenários de erro

Os métodos de ara::crypto::Formatter sinalizam estados de erro deterministicamente através de valores de retorno do tipo ara::core::Result. Para operações com falha, estão definidas semânticas de rollback claras:

  • Formatos não suportados: se a implementação subjacente não suportar o par de conversão especificado ou o identificador de algoritmo, SetFormatConfiguration devolve o código de erro ara::crypto::CryptoErrc::kUnsupportedFormat [SWS_CRYPT_50197].
  • Dados de entrada inválidos: caso os dados em bruto transmitidos no buffer não correspondam ao formato configurado ou sejam sintaticamente inválidos, Convert falha com ara::crypto::CryptoErrc::kInvalidArgument [SWS_CRYPT_50198].
  • Buffer de destino insuficiente: se a ReadWriteMemRegion disponibilizada for demasiado pequena para o resultado serializado, Convert é interrompido com ara::crypto::CryptoErrc::kInsufficientCapacity [SWS_CRYPT_50198]. Este problema pode ser evitado de forma direcionada mediante consulta prévia através de GetExportSize [SWS_CRYPT_50199].
  • Falta de pré-configuração: embora não estejam listados códigos de erro normalizados para GetExportSize [SWS_CRYPT_50199], é presumivelmente obrigatório estabelecer previamente uma configuração válida através de SetFormatConfiguration para que seja possível realizar uma determinação de tamanho ou conversão consistente. Pergunta Q-e7cf4306bc7cfb49 (aberta)

Este guia baseia-se na especificação AUTOSAR Adaptive Platform R25-11 (módulo crypto) e foi gerado automaticamente.

Mapa de membros

Diagrama de classes

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

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

Vista de detalhes

Selecione uma entrada no índice.

Métodos

Convert função

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

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;

Aliases de tipo

Sptr alias de tipo

Smart pointer of the interface.

using Sptr = std::shared_ptr<Formatter>;

Documentação dos métodos

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

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

A função-membro puramente virtual Convert da interface ara::crypto::Formatter executa uma conversão síncrona de dados de acordo com a configuração previamente definida do objeto formatador [SWS_CRYPT_50198]. A declaração está disponível por meio do cabeçalho #include "ara/crypto/common/formatter.h" [SWS_CRYPT_50198]. Para a chamada, o chamador passa os dados de entrada no formato original através do buffer input do tipo ReadOnlyMemRegion, bem como um buffer gravável out do tipo ReadWriteMemRegion, no qual os dados convertidos no formato de destino são gravados [SWS_CRYPT_50198].

O valor de retorno é definido como ara::core::Result<void> e sinaliza o sucesso ou um erro ocorrido [SWS_CRYPT_50198]. Se ocorrer um problema durante a conversão, aplica-se uma semântica de rollback com os seguintes códigos de erro específicos [SWS_CRYPT_50198]:

  • ara::crypto::CryptoErrc::kInvalidArgument: É retornado caso os dados de entrada serializados não correspondam ao formato especificado [SWS_CRYPT_50198].
  • ara::crypto::CryptoErrc::kInsufficientCapacity: Ocorre quando a capacidade do buffer de saída passado out for insuficiente para acomodar os dados de resultado [SWS_CRYPT_50198].

Em termos de concorrência e tolerância a falhas, o método é especificado como seguro para threads (thread-safe) e seguro contra exceções (exception safe) [SWS_CRYPT_50198]. Como a assinatura é provida dos especificadores const e noexcept, a operação não lança exceções C++ e não altera o estado da instância do formatador [SWS_CRYPT_50198].

Esta nota de utilização foi gerada automaticamente por uma IA com base na especificação.

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#8241dd07
Content hash
8241dd07
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

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

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

Documentação dos aliases 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