DEENESPTFRRUARHIKOZHNL

فئة ara::crypto::Serializable

[SWS_CRYPT_10700] Upstream: RS_CRYPTO_02105

class Serializable {...};

Serializable object interface.

Header-Datei#include "ara/crypto/common/serializable.h"
Forwarding-Header#include "ara/crypto/crypto_fwd.h"
Scopenamespace ara::crypto

دليل المستخدممولَّد بالذكاء الاصطناعي

تحديد الواجهة لحساب الحجم والتسلسل العام للكائنات التشفيرية.
مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: dacacac17ff9 المصدر أسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تحديد الواجهة لحساب الحجم والتسلسل العام للكائنات التشفيرية.

تحدد الواجهة ara::crypto::Serializable المعيار الموحد للتصدير العام للكائنات التشفيرية إلى تسلسلات بايتات خاصة بالصيغة. تحدد التطبيقات مسبقًا عبر GetExportSize() حجم المخزن المؤقت المطلوب وتنفذ بعد ذلك التسلسل الفعلي عبر ExportPublicly() في مخزن مؤقت تم توفيره [SWS_CRYPT_10711]. وتتميز جميع العمليات بأنها آمنة ضد الاستثناءات وكذلك آمنة خيطيًا، حيث يتطلب تصدير المفاتيح بالضرورة الصلاحية kAllowPlaintextExport، وتخضع الأخطاء دائمًا لدلالات التراجع (Rollback) [SWS_CRYPT_50006].

السياق

تحدد الواجهة ara::crypto::Serializable العقد التجريدي للكائنات التشفيرية في الوحدة crypto التي يمكن تحويلها إلى تمثيل بايتات قياسي. وكواجهة صرفة، فإنها تغلّف القدرة على تسلسل كائن إلى صيغة إخراج محددة بواسطة معرّف صيغة (FormatId) [SWS_CRYPT_10711]. وتشمل أطراف التفاعل النموذجية مكونات التطبيق أو المنصة التي يتعين عليها حفظ عناصر تشفيرية مثل المفاتيح أو الشهادات بشكل دائم، أو نقلها عبر قنوات الاتصال، أو تبادلها بنص صريح. وتضمن الواجهة إجراء التصدير بشكل متحكم فيه ومع مراعاة الصيغ وقيود الأمان.

دورة الحياة

نظرًا لأن ara::crypto::Serializable تمثل واجهة افتراضية صرفة ذات دوال افتراضية صرفة، فإن الفئة لا تمتلك منطق إنشاء نسخ خاصًا بها. ويعتمد العمر والإنشاء كليًا على فئات التشفير الملموسة المشتقة التي تنفذ الواجهة. وتُعلن كلتا الدالتين المحددتين للواجهة، GetExportSize() [SWS_CRYPT_50006] وExportPublicly() [SWS_CRYPT_10711]، كـ const ولا تُغيّران الحالة الداخلية للكائن أثناء التسلسل. ووفقًا للمواصفات، صُممت العمليات لتكون آمنة ضد الاستثناءات (exception safe) وآمنة تزامنًا (thread-safe) [SWS_CRYPT_10711]، [SWS_CRYPT_50006]، بحيث يُسمح بعمليات الوصول المتوازية للقراءة إلى نفس نسخة الكائن.

مسار الاستخدام

ينقسم المسار العادي للتصدير إلى تسلسل من خطوتين يتكون من حساب الحجم والتسلسل الفعلي. ولتجنب طفحان المخزن المؤقت أو فشل التخصيص، يستعلم المتصل مسبقًا عبر الدالة GetExportSize() عن حجم المخزن المؤقت المطلوب بدقة بالبايتات لصيغة الهدف المطلوبة [SWS_CRYPT_50006]. وبعد تلقي استجابة ناجحة، يوفر المتصل نطاق ذاكرة قابلاً للكتابة من النوع ReadWriteMemRegion. ومن المحتمل أن يتم تخصيص نطاق الذاكرة هذا في معظم التطبيقات ديناميكيًا بناءً على عدد البايتات المحسوب أو توفيره من تجمع ذاكرة محجوز مسبقًا. سؤال Q-0c04ba0a352f0a37 (مفتوح)

في الخطوة التالية، يستدعي التطبيق ExportPublicly() ويمرر كلاً من المخزن المؤقت المتوفر وFormatId [SWS_CRYPT_10711] المحددة مسبقًا. يقوم الكائن بتسلسل بياناته المفيدة في نطاق الذاكرة الممرر، ويُرجع في حالة النجاح ضمن نوع الإرجاع ara::core::Result<std::size_t> عدد البايتات المكتوبة فعليًا [SWS_CRYPT_10711].

سير التسلسل عبر ara::crypto::SerializableالتطبيقSerializableGetExportSize(format)Result<std::size_t> (حجم المخزن المؤقت)Bereitstellung ReadWriteMemRegionExportPublicly(out, format)Result<std::size_t> (geschriebene Bytes)

مخطط تسلسلي: ترتيب الاستدعاء النموذجي لتسلسل كائن عبر الاستعلام عن الحجم والتصدير اللاحق. المصادر: [SWS_CRYPT_50006]، [SWS_CRYPT_10711]

سيناريوهات الأخطاء

تشير عمليات الواجهة إلى حالات الخطأ عبر نوع الإرجاع ara::core::Result، حيث تضمن جميع الأخطاء المحددة دلالات تراجع صارمة (rollback_semantics) [SWS_CRYPT_10711]، [SWS_CRYPT_50006]. إذا فشل أي استدعاء، يظل النظام بأكمله في حالة متسقة. تم تعريف حالات الخطأ التالية:

  • ara::crypto::CryptoErrc::kUnsupportedFormat: يتم إرجاعه بواسطة كل من GetExportSize() [SWS_CRYPT_50006] وExportPublicly() [SWS_CRYPT_10711]، إذا كانت FormatId المحددة غير مدعومة لنوع الكائن الفعلي.
  • ara::crypto::CryptoErrc::kInsufficientCapacity: يحدث في ExportPublicly() إذا كانت سعة مخزن ReadWriteMemRegion المؤقت الممرر غير كافية للبيانات المتسلسلة [SWS_CRYPT_10711].
  • ara::crypto::CryptoErrc::kUnsupported: يتم الإبلاغ عنه بواسطة ExportPublicly() إذا كان التصدير غير مدعوم من حيث المبدأ للكائن المحدد [SWS_CRYPT_10711].
  • ara::crypto::CryptoErrc::kUsageViolation: يحدث عند ExportPublicly() إذا كان الكائن عبارة عن مفتاح لا تسمح قواعد استخدامه بتصدير نص عادي (الاستخدام المسموح به لا يتضمن kAllowPlaintextExport) [SWS_CRYPT_10711].

يستند هذا الدليل إلى مواصفة AUTOSAR R25-11.

مخطط الفئات UML

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

G nara__crypto__Serializable855 Serializable + ExportPublicly() + GetExportSize() nara__crypto__cryp__CryptoObject679 CryptoObject nara__crypto__cryp__CryptoObject679->nara__crypto__Serializable855 nara__crypto__x509__CertSignRequest934 CertSignRequest nara__crypto__x509__CertSignRequest934->nara__crypto__Serializable855 nara__crypto__x509__Certificate240 Certificate nara__crypto__x509__Certificate240->nara__crypto__Serializable855 nara__crypto__x509__X509DN930 X509DN nara__crypto__x509__X509DN930->nara__crypto__Serializable855

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

Serialize object using the provided format.

virtual ara::core::Result< std::size_t > ExportPublicly (ReadWriteMem Region out, FormatId format) const noexcept=0;
GetExportSize دالة

Get the size in bytes of the object when serialized in the provided format using ExportPublicly()

virtual ara::core::Result< std::size_t > GetExportSize (FormatId format) const noexcept=0;

توثيق الدوال

دالة ExportPublicly [SWS_CRYPT_10711] Upstream: RS_CRYPTO_02112

virtual ara::core::Result< std::size_t > ExportPublicly (ReadWriteMem Region out, FormatId format) const noexcept=0;

Serialize object using the provided format.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 499fb38eb87a المصدر أسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

الاستخدام

تسلسل دالة الأعضاء المتزامنة ExportPublicly للواجهة ara::crypto::Serializable الكائن بالتنسيق الناتج المحدد [SWS_CRYPT_10711]. يتم تمرير معرف التنسيق format (النوع FormatId) بالإضافة إلى منطقة الذاكرة الهدف out (النوع ReadWriteMem Region) كمعلمات. عند التنفيذ الناجح، ترجع الدالة العدد الفعلي للبايتات المكتوبة في ara::core::Result<std::size_t> [SWS_CRYPT_10711].

التفاعل مع الدوال ذات الصلة

ترتبط الدالة مباشرة بـ GetExportSize [SWS_CRYPT_50006]، والتي يمكن من خلالها تحديد حجم البايت المطلوب لتنسيق معين. من المرجح أن يستعلم المستدعون عادةً عن GetExportSize أولاً قبل تقديم المخزن المؤقت للإخراج out، وذلك لضمان سعة كافية للمخزن المؤقت. سؤال Q-394ae08d9d7e6fa7 (مفتوح)

معالجة الأخطاء

في حالة حدوث خطأ، تسري دلالات التراجع ويتم إرجاع رمز خطأ مطابق [SWS_CRYPT_10711]:

  • ara::crypto::CryptoErrc::kInsufficientCapacity: المخزن المؤقت للإخراج المُمرر out ذو حجم صغير جدًا [SWS_CRYPT_10711].
  • ara::crypto::CryptoErrc::kUnsupportedFormat: مُعرّف التنسيق المُمرر غير مدعوم لنوع الكائن هذا [SWS_CRYPT_10711].
  • ara::crypto::CryptoErrc::kUnsupported: تصدير الكائن غير مدعوم بشكل عام [SWS_CRYPT_10711].
  • ara::crypto::CryptoErrc::kUsageViolation: الكائن المراد تصديره هو مفتاح لا تسمح قواعد استخدامه بالتصدير بنص صريح (kAllowPlaintextExport) [SWS_CRYPT_10711].

التزامن والشروط الحدية

تم تحديد الدالة على أنها const، وnoexcept، وآمنة مسار المعالجة («thread-safe»)، وآمنة من الاستثناءات («exception safe») [SWS_CRYPT_10711]. وبالتالي يمكن تنفيذها بالتزامن ولا تطلق استثناءات C++.

تم إنشاء ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي استنادًا إلى مواصفة AUTOSAR R25-11.

دليل المنفِّذ قيد الإعداد (التعقيد I1)

Header-Datei#include "ara/crypto/common/serializable.h"
Scopeclass ara::crypto::Serializable
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
formatidentifier of the output format

Parameter (out)

ParameterBeschreibung
outan output buffer that the serialized object will be written to

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
ara::crypto::CryptoErrc::kInsufficientCapacityrollback_semantics if the output buffer is too small
ara::crypto::CryptoErrc::kUnsupportedFormatrollback_semantics if the specified format ID is not supported for this object type
ara::crypto::CryptoErrc::kUnsupportedrollback_semantics if exporting the object is not supported
ara::crypto::CryptoErrc::kUsageViolationrollback_semantics if the object to be exported is a key and the allowed usage of the key does not include kAllowPlaintextExport

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_10711
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_10711@rel:R25-11#d4912d20
Content hash
d4912d20
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_10711
Status: valid/unmigrated Version: rel:R25-11#c8dd72d0 Versionshistorie & Revisions (1 transition, 8 revision)
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_10711@rel:R25-11#c8dd72d0
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#6e8a805e2026-09-30
  • R19-11rel:R19-11#fe62960e2026-10-14
  • R20-11rel:R20-11#4cac78d62026-10-14
  • R21-11rel:R21-11#13d51a182026-10-14
  • R22-11rel:R22-11#3bb1942d2026-10-14
  • R23-11rel:R23-11#ee143e792026-10-14
  • R24-11rel:R24-11#761192782026-10-14
  • R25-11rel:R25-11#c8dd72d02026-10-14 active
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_50006] Upstream: RS_CRYPTO_02112

virtual ara::core::Result< std::size_t > GetExportSize (FormatId format) const noexcept=0;

Get the size in bytes of the object when serialized in the provided format using ExportPublicly()

Header-Datei#include "ara/crypto/common/serializable.h"
Scopeclass ara::crypto::Serializable
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
formatidentifier of the output format

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
ara::crypto::CryptoErrc::kUnsupportedFormatrollback_semantics if the specified format ID is not supported for this object type

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CRYPT_50006
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_50006@rel:R25-11#944fc04d
Content hash
944fc04d
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_50006
Status: valid/unmigrated Version: rel:R25-11#6c5e92f9 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_50006@rel:R25-11#6c5e92f9
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