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 की आवश्यकता होती है और त्रुटियाँ हमेशा रोलबैक सेमांटिक्स के अधीन होती हैं [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

मेथड

ExportPublicly फ़ंक्शन

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 · जर्मन मूल

उपयोग

इंटरफ़ेस ara::crypto::Serializable का सिंक्रोनस सदस्य फ़ंक्शन ExportPublicly निर्दिष्ट आउटपुट प्रारूप [SWS_CRYPT_10711] में ऑब्जेक्ट को सीरियलाइज़ करता है। पैरामीटर के रूप में प्रारूप पहचानकर्ता format (प्रकार FormatId) और गंतव्य मेमोरी क्षेत्र out (प्रकार ReadWriteMem Region) पास किए जाते हैं। सफल निष्पादन पर, फ़ंक्शन ara::core::Result<std::size_t> में लिखे गए बाइट्स की वास्तविक संख्या लौटाता है [SWS_CRYPT_10711]।

संबंधित फ़ंक्शंस के साथ परस्पर क्रिया

यह फ़ंक्शन सीधे GetExportSize [SWS_CRYPT_50006] से संबंधित है, जिसका उपयोग किसी विशिष्ट प्रारूप के लिए आवश्यक बाइट आकार निर्धारित करने के लिए किया जा सकता है। पर्याप्त बफ़र क्षमता सुनिश्चित करने के लिए कॉलर्स आमतौर पर आउटपुट बफ़र out प्रदान करने से पहले GetExportSize से पूछताछ कर सकते हैं। प्रश्न 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 के आधार पर एक AI द्वारा उत्पन्न किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता 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#68146b76
Content hash
68146b76
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#1f15bba1
Content hash
1f15bba1
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