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التطبيقFormatterSetFormatConfiguration(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) وقد تم إنشاؤه آلياً.

خريطة الأعضاء

الدوال الأعضاء

3

أسماء الأنواع البديلة

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;

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 تحويلاً متزامنًا للبيانات وفقًا للتهيئة المحددة مسبقًا لكائن المنسق (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]. وفي حال حدوث مشكلة أثناء التحويل، تُطبَّق دلالات التراجع (Rollback semantics) مع رموز الخطأ المحددة التالية [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++‎ ولا تغير حالة مثيل المنسق (Formatter) [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#8f3745a1
Content hash
8f3745a1
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#2c269a6d
Content hash
2c269a6d
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#cca48210
Content hash
cca48210
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#cae1e3fa
Content hash
cae1e3fa
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