DEENESPTFRRUARHIKOZHNL

класс 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

Руководство пользователяСОЗДАНО ИИ

Обеспечивает потокобезопасное преобразование и сериализацию криптографических данных между различными форматами.
СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: f0bec470b702 Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Обеспечивает потокобезопасное преобразование и сериализацию криптографических данных между различными форматами.

Интерфейс ara::crypto::Formatter обеспечивает потокобезопасное преобразование и сериализацию криптографических данных между необработанными форматами, DER и PEM [SWS_CRYPT_50197]. После определения целевого формата и определения требуемого размера буфера метод Convert переносит исходные данные в подготовленный выходной буфер [SWS_CRYPT_50198]. Важным условием успешного выполнения является достаточный размер целевой памяти, а также формальное соответствие входных данных сконфигурированному исходному формату.

Контекст

Интерфейс ara::crypto::Formatter определяет в модуле crypto унифицированный интерфейс для форматирования, преобразования и сериализации криптографических структур данных. Его основная задача состоит в том, чтобы конвертировать полезные данные и криптографические объекты между представлениями, такими как чисто необработанные данные (kFormatRawValueOnly), кодировки ASN.1-DER (kFormatDerEncoded), а также текстовые форматы PEM (kFormatPemEncoded) с учетом идентификатора алгоритма (AlgId) [SWS_CRYPT_50197]. При этом Formatter выступает связующим звеном между криптографическими объектами и буферами памяти, считывая данные через ReadOnlyMemRegion и выводя их в ReadWriteMemRegion [SWS_CRYPT_50198].

Жизненный цикл

Поскольку ara::crypto::Formatter объявлен как чисто виртуальный интерфейс, для ссылки на него и управления жизненным циклом он предоставляет канонический псевдоним типа интеллектуального указателя Sptr, определенный как std::shared_ptr<Formatter> [SWS_CRYPT_50191]. Конкретные экземпляры интерфейса на практике, по-видимому, предоставляются через фабричные методы вышестоящих криптографических компонентов. Вопрос Q-99e96992d02b9c13 (открытый) После создания Formatter сначала находится в несконфигурированном исходном состоянии, прежде чем он будет подготовлен к преобразованиям вызовами конфигурации.

Что касается среды выполнения, интерфейс гарантирует полную безопасность исключений (exception safe) за счет последовательного использования noexcept и обработки ошибок через типы Result [SWS_CRYPT_50197], [SWS_CRYPT_50198], [SWS_CRYPT_50199]. Все функции-члены, кроме того, специфицированы как потокобезопасные (thread-safe) [SWS_CRYPT_50197], [SWS_CRYPT_50198], [SWS_CRYPT_50199]. Это позволяет осуществлять параллельный доступ на чтение и преобразование из нескольких потоков к общему экземпляру Formatter, пока не происходят конкурирующие реконфигурации.

Путь использования

Штатное использование ara::crypto::Formatter следует фиксированной последовательности параметризации, проверки емкости и преобразования:

  1. Конфигурация формата: через SetFormatConfiguration обязательно фиксируются ожидаемый входной формат (inputFormat), желаемый выходной формат (outputFormat), а также идентификатор алгоритма (algId) обрабатываемых данных [SWS_CRYPT_50197].
  2. Определение размера: перед фактическим преобразованием приложение вызывает GetExportSize, чтобы определить точный размер памяти в байтах, который требуется сериализованному объекту при текущей конфигурации [SWS_CRYPT_50199]. Это обеспечивает точно выверенное выделение целевой памяти.
  3. Преобразование данных: в завершение Convert преобразует исходные данные из ReadOnlyMemRegion в целевой буфер ReadWriteMemRegion в соответствии с выполненной конфигурацией [SWS_CRYPT_50198].
Типичное преобразование данных с помощью FormatterПриложениеформаттерSetFormatConfiguration(inputFormat, outputFormat, algId)Result<void>GetExportSize()Result<std::size_t> (размер буфера)Convert(input, out)Result<void>

Диаграмма последовательности: типичная последовательность преобразования от выбора формата через определение размера буфера до фактической трансформации. Источники: [SWS_CRYPT_50197], [SWS_CRYPT_50199], [SWS_CRYPT_50198]

Сценарии ошибок

Методы ara::crypto::Formatter детерминированно сигнализируют об ошибочных состояниях через возвращаемые значения типа ara::core::Result. При этом для сбойных операций заложена четкая семантика отката:

  • Неподдерживаемые форматы: если базовая реализация не поддерживает указанную пару преобразования или идентификатор алгоритма, SetFormatConfiguration возвращает код ошибки ara::crypto::CryptoErrc::kUnsupportedFormat [SWS_CRYPT_50197].
  • Недопустимые входные данные: если переданные в буфере необработанные данные не соответствуют сконфигурированному формату или синтаксически невалидны, Convert завершается сбоем с ara::crypto::CryptoErrc::kInvalidArgument [SWS_CRYPT_50198].
  • Недостаточный целевой буфер: если предоставленный ReadWriteMemRegion слишком мал для сериализованного результата, Convert прерывается с ara::crypto::CryptoErrc::kInsufficientCapacity [SWS_CRYPT_50198]. Эту проблему можно целенаправленно предотвратить предварительным запросом через GetExportSize [SWS_CRYPT_50199].
  • Отсутствие предварительной конфигурации: хотя для GetExportSize не приведены стандартизированные коды ошибок [SWS_CRYPT_50199], для обеспечения согласованного определения размера или преобразования, по-видимому, обязательно должна быть предварительно установлена валидная конфигурация через SetFormatConfiguration. Вопрос Q-e7cf4306bc7cfb49 (открытый)

Настоящее руководство основано на спецификации AUTOSAR Adaptive Platform R25-11 (модуль crypto) и сформировано автоматически.

Карта членов

Псевдонимы типов

1

Диаграмма классов

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

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

Подробный вид

Выберите элемент в оглавлении.

Методы

Convert функция

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 функция

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;
SetFormatConfiguration функция

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;

Псевдонимы типов

Sptr псевдоним типа

Smart pointer of the interface.

using Sptr = std::shared_ptr<Formatter>;

Документация методов

функция 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 96118f35b505 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Чисто виртуальная функция-член Convert интерфейса ara::crypto::Formatter выполняет синхронное преобразование данных в соответствии с ранее заданной конфигурацией объекта форматтера [SWS_CRYPT_50198]. Объявление доступно через заголовочный файл #include "ara/crypto/common/formatter.h" [SWS_CRYPT_50198]. Для вызова вызывающая сторона передает входные данные в исходном формате через буфер input типа ReadOnlyMemRegion, а также доступный для записи буфер out типа ReadWriteMemRegion, в который записываются преобразованные данные в целевом формате [SWS_CRYPT_50198].

Возвращаемое значение определено как ara::core::Result<void> и сигнализирует об успехе или возникшей ошибке [SWS_CRYPT_50198]. Если во время преобразования возникает проблема, применяется семантика отката со следующими специфическими кодами ошибок [SWS_CRYPT_50198]:

  • ara::crypto::CryptoErrc::kInvalidArgument: возвращается, если сериализованные входные данные не соответствуют специфицированному формату [SWS_CRYPT_50198].
  • ara::crypto::CryptoErrc::kInsufficientCapacity: возникает, если емкость переданного выходного буфера out слишком мала для приема результирующих данных [SWS_CRYPT_50198].

В отношении параллелизма и отказоустойчивости метод специфицирован как потокобезопасный (thread-safe) и исключениебезопасный (exception safe) [SWS_CRYPT_50198]. Поскольку сигнатура снабжена спецификаторами const и noexcept, операция не генерирует исключений C++ и не изменяет состояние экземпляра форматтера [SWS_CRYPT_50198].

Это указание по использованию сгенерировано автоматически с помощью ИИ на основе спецификации.

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#b452f9e2
Content hash
b452f9e2
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

функция 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#264f45a4
Content hash
264f45a4
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

функция 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#d99db876
Content hash
d99db876
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

Документация псевдонимов типов

псевдоним типа 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#ad4feb90
Content hash
ad4feb90
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