DEENESPTFRRUARHIKOZHNL

Crypto Driver (Crypto)

ModulCrypto (Crypto Driver)
BSW-Modul-ID114
Standard-Header#include "Crypto.h"
SWS-SpezifikationAUTOSAR_SWS_CryptoDriver.pdf
ClusterCrypto Services

मॉड्यूल गाइडएआई जनित

हार्डवेयर-समीप AUTOSAR Classic क्रिप्टो स्टैक के लिए क्रिप्टोग्राफ़िक प्रिमिटिव और कुंजी प्रबंधन प्रदान करता है।
एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 79b1b64c6bf7 उद्गम खुले प्रश्न (2)
कारणात्मक एंकर: R20-11 R20-11 से मान्य इस विनिर्देश संस्करण के लिए नए सिरे से संश्लेषित।
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

हार्डवेयर-समीप AUTOSAR Classic क्रिप्टो स्टैक के लिए क्रिप्टोग्राफ़िक प्रिमिटिव और कुंजी प्रबंधन प्रदान करता है।

Crypto Driver, एक MCAL मॉड्यूल के रूप में, AUTOSAR Classic क्रिप्टो स्टैक के लिए हार्डवेयर-समीप क्रिप्टोग्राफ़िक गणनाएँ और कुंजी प्रबंधन प्रदान करता है (EXP_UtilizationOfCryptoServices पृ. 8)। यह हार्डवेयर सुरक्षा मॉड्यूल (HSM) या सॉफ़्टवेयर लाइब्रेरीज़ को Driver Objects में समाहित करता है और केंद्रीय इंटरफ़ेस Crypto_ProcessJob के माध्यम से सिंक्रोनस और एसिंक्रोनस दोनों कार्यों को संभालता है ([SWS_Crypto_91003])। कुंजी एक्सेस कॉन्फ़िगर करने योग्य अनुमतियों के अधीन है, और NVM में स्थायी भंडारण केवल सफल कुंजी सत्यापन पर ही ट्रिगर होता है (SWS_CryptoDriver पृ. 37)।

Crypto Driver (मॉड्यूल Crypto), एक MCAL ड्राइवर के रूप में, AUTOSAR Classic क्रिप्टो स्टैक की सबसे निचली नींव बनाता है और हार्डवेयर सुरक्षा मॉड्यूल (HSM), क्रिप्टो एक्सेलेरेटर और सॉफ़्टवेयर रूटीन को सीधे क्रिप्टो इंटरफ़ेस (CryIf) से जोड़ता है (EXP_UtilizationOfCryptoServices पृ. 8, SWS_CryptoDriver पृ. 15)। एकाधिक कार्यान्वयन के मामले में, इंस्टेंस को निर्माता-विशिष्ट रूप से Crypto_<vi>_<ai> स्कीमा के साथ नाम दिया जाता है ([SWS_Crypto_00012])। आरंभीकरण [SWS_Crypto_91000] के माध्यम से सिंक्रोनस रूप से [SWS_Crypto_91016] के लिए एक अनिवार्य अशक्त सूचक (null pointer) के साथ किया जाता है ([SWS_Crypto_00215])। आंतरिक रूप से, मॉड्यूल स्वतंत्र गणना इकाइयों को Crypto Driver Objects में समाहित करता है, जिनमें से प्रत्येक एक समय में ठीक एक कार्य निष्पादित कर सकता है ([SWS_Crypto_00014]), जबकि n ऑब्जेक्ट समानांतर गणनाओं को सक्षम करते हैं ([SWS_Crypto_00117])। Driver Object 0 उसी इंस्टेंस के अन्य सभी ड्राइवर ऑब्जेक्ट्स की आंतरिक आवश्यकताओं के लिए एक केंद्रीय रैंडम जनरेटर के रूप में कार्य करता है ([SWS_Crypto_00224], [SWS_Crypto_00225])।

diag_architektur CSM CSM CryIf CryIf CSM->CryIf Csm_Job CryptoDriver CryptoDriver CryIf->CryptoDriver Crypto_ProcessJob / Key APIs Object0 Object0 CryptoDriver->Object0 RNG Default ObjectN ObjectN CryptoDriver->ObjectN Primitive Job NvM NvM CryptoDriver->NvM NvM_WriteBlock Det DET CryptoDriver->Det Det_ReportError HW_HSM HW_HSM Object0->HW_HSM Hardware Kanal (HSM) SW_Crypto SW_Crypto ObjectN->SW_Crypto Software / Beschleuniger NvM->CryptoDriver NvBlock Callbacks

संदर्भ आरेख: NvM और DET के लिए Driver Objects और इंटरफ़ेस के साथ AUTOSAR क्रिप्टो स्टैक में Crypto Driver का अंतःस्थापन। स्रोत: SWS_CryptoDriver पृ. 15, SWS_Crypto_00012, SWS_Crypto_91017

क्रिप्टोग्राफ़िक कार्यों को [SWS_Crypto_91003] (Crypto_ProcessJob) के माध्यम से निष्पादित किया जाता है, जहाँ एक मोड बिटफ़ील्ड (START, UPDATE, FINISH) स्ट्रीमिंग और संपूर्ण कॉल्स को एकीकृत करता है (SWS_CryptoDriver पृ. 25, [SWS_Crypto_00017])। एसिंक्रोनस कार्यों की गणना चक्रीय फ़ंक्शन [SWS_Crypto_91012] (Crypto_MainFunction) के माध्यम से की जाती है और पूरा होने के बाद CRYIF_CallbackNotification के माध्यम से CryIf को रिपोर्ट की जाती है ([SWS_Crypto_00027], [SWS_Crypto_00028])। चल रहे कार्यों को [SWS_Crypto_00122] का उपयोग करके सिंक्रोनस रूप से रद्द किया जा सकता है ([SWS_Crypto_00183], [SWS_Crypto_00214]), जबकि कुंजी तत्वों पर सीधे बफ़र रीडायरेक्शन कॉपी संचालन को कम करते हैं ([SWS_Crypto_00203], [SWS_Crypto_00221])।

Crypto Driver के माध्यम से एसिंक्रोनस ऑर्डर प्रोसेसिंगCryIfCrypto DriverDriver ObjectSchM / OSCrypto_ProcessJob(objectId, job)पैरामीटर & की हैंडल की जांच करेंE_OK (Auftrag angenommen)Crypto_MainFunction()गणना प्रारंभ करें (START/UPDATE/FINISH)क्रिप्टोग्राफ़िक गणना निष्पादित करेंErgebnis bereitstellenCRYIF_CallbackNotification(job, result)वापसी

अनुक्रम आरेख: Crypto_ProcessJob के माध्यम से एसिंक्रोनस प्रोसेसिंग प्रवाह, Crypto_MainFunction में चक्र और CRYIF_CallbackNotification के माध्यम से प्रतिक्रिया। स्रोत: SWS_Crypto_91003, SWS_Crypto_00027, SWS_Crypto_00028, SWS_Crypto_91012

कुंजी प्रबंधन में सख्त एक्सेस अधिकार नियंत्रण ([SWS_Crypto_00219], [SWS_Crypto_00220]) के तहत कुंजी तत्वों को सेट करना ([SWS_Crypto_91004]), पढ़ना ([SWS_Crypto_91006]), कॉपी करना ([SWS_Crypto_00155], [SWS_Crypto_91015]), उत्पन्न करना ([SWS_Crypto_91007]) और व्युत्पन्न करना ([SWS_Crypto_91008]) शामिल है। संगति कारणों से, Non-Volatile RAM Manager (NvM) में दृढ़ता (persisting) को एकल लेखन के दौरान कभी भी ट्रिगर नहीं किया जाता है, बल्कि विशेष रूप से [SWS_Crypto_91014] (Crypto_KeySetValid) के माध्यम से कुंजी सत्यापन पर ही ट्रिगर किया जाता है (SWS_CryptoDriver पृ. 37, [SWS_Crypto_91025])। मल्टी-कोर वातावरण में, मॉड्यूल प्रत्येक विभाजन (partition) में अलग रहकर काम करता है ([SWS_Crypto_CONSTR_00001]), जहाँ HSM ऑब्जेक्ट्स को अधिकतम एक विभाजन में असाइन किया जा सकता है ([SWS_Crypto_CONSTR_00003])।

Classic क्रिप्टो स्टैक में Crypto Driver की भूमिका और सिस्टम सीमाएं

Crypto Driver (मॉड्यूल संक्षिप्त नाम Crypto) Microcontroller Abstraction Layer (MCAL) में AUTOSAR-Classic-बेसिक सॉफ़्टवेयर की सबसे निचली लेयर पर स्थित है (EXP_UtilizationOfCryptoServices पृ. 8)। यह सीधे क्रिप्टो-इंटरफ़ेस (Crypto Interface, CryIf) के नीचे स्थित होता है और इसके माध्यम से Crypto Service Manager (CSM) को सेवा प्रदान करता है (SWS_CryptoDriver पृ. 15)। इसका मुख्य कार्य विशिष्ट क्रिप्टोग्राफ़िक कंप्यूटेशनल यूनिट्स को एनकैप्सुलेट करना है – चाहे वे हार्डवेयर-समर्थित सुरक्षा मॉड्यूल (Hardware Security Modules, HSM) हों, AES-इंजन जैसे समर्पित क्रिप्टो-एक्सेलरेटर हों या विशुद्ध सॉफ़्टवेयर लाइब्रेरीज़ हों (SWS_CryptoDriver पृ. 15)। क्रिप्टोग्राफ़िक प्रिमिटिव्स की वास्तविक गणना के अलावा, इसके कार्यात्मक दायरे में क्रिप्टोग्राफ़िक कुंजियों का भंडारण, कॉन्फ़िगरेशन और प्रबंधन शामिल है (SWS_CryptoDriver पृ. 24)।

एक ECU में विभिन्न निर्माताओं के कई ड्राइवर इंस्टेंस समानांतर रूप से मौजूद हो सकते हैं; इस मामले में, फ़ाइल, API और कॉन्फ़िगरेशन आइडेंटिफ़ायर को Crypto_<vi>_<ai> स्कीमा के अनुसार निर्माता-विशिष्ट इनफ़िक्स द्वारा विशिष्ट रूप से विभेदित किया जाता है ([SWS_Crypto_00012])। मॉड्यूल का इनिशियलाइज़ेशन फ़ंक्शन [SWS_Crypto_91000] के माध्यम से होता है (Crypto_Init)। [SWS_Crypto_91016] प्रकार के कॉन्फ़िगरेशन पॉइंटर (Crypto_ConfigType) के लिए एक विशेष नियम यह है कि इसे हमेशा नल पॉइंटर के रूप में पास किया जाना चाहिए ([SWS_Crypto_00215])। संस्करण की जानकारी [SWS_Crypto_91001] (Crypto_GetVersionInfo) के माध्यम से सिंक्रोनस रूप से प्राप्त की जा सकती है, जहाँ विकास त्रुटि पहचान (development error detection) सक्रिय होने पर नल पॉइंटर पास किए जाने की रिपोर्ट DET को त्रुटि CRYPTO_E_PARAM_POINTER के साथ दी जाती है (SWS_CryptoDriver पृ. 56)।

diag_architektur CSM CSM CryIf CryIf CSM->CryIf Csm_Job CryptoDriver CryptoDriver CryIf->CryptoDriver Crypto_ProcessJob / Key APIs Object0 Object0 CryptoDriver->Object0 RNG Default ObjectN ObjectN CryptoDriver->ObjectN Primitive Job NvM NvM CryptoDriver->NvM NvM_WriteBlock Det DET CryptoDriver->Det Det_ReportError HW_HSM HW_HSM Object0->HW_HSM Hardware Kanal (HSM) SW_Crypto SW_Crypto ObjectN->SW_Crypto Software / Beschleuniger NvM->CryptoDriver NvBlock Callbacks

संदर्भ आरेख: NvM और DET के लिए Driver Objects और इंटरफ़ेस के साथ AUTOSAR क्रिप्टो स्टैक में Crypto Driver का अंतःस्थापन। स्रोत: SWS_CryptoDriver पृ. 15, SWS_Crypto_00012, SWS_Crypto_91017

Crypto Driver Objects और हार्डवेयर एब्स्ट्रैक्शन का प्रबंधन

Crypto Driver का प्रत्येक इंस्टेंस आंतरिक रूप से एक या अधिक लॉजिकल ड्राइवर ऑब्जेक्ट्स (Crypto Driver Objects) में विभाजित होता है (SWS_CryptoDriver पृ. 15)। एक Crypto Driver Object एक क्रिप्टो चैनल के कार्यात्मक एंडपॉइंट का निर्माण करता है और एक स्वतंत्र हार्डवेयर कंप्यूटेशनल यूनिट या एक सॉफ़्टवेयर कार्यान्वयन का प्रतिनिधित्व करता है (SWS_CryptoDriver पृ. 15)। सिद्धांततः, एक एकल Driver Object किसी दिए गए समय पर हमेशा केवल ठीक एक कार्य (Job) ही सक्रिय रूप से निष्पादित कर सकता है ([SWS_Crypto_00014])। परिणामस्वरूप, n Driver Objects वाले एक Crypto Driver के पास समानांतर रूप से n क्रिप्टो जॉब्स की गणना करने की क्षमता होती है ([SWS_Crypto_00117])। कौन से गणितीय और सुरक्षा-प्रासंगिक प्रिमिटिव्स समर्थित हैं, यह संबद्ध ऑब्जेक्ट के प्रदर्शन क्षमता द्वारा निर्धारित होता है ([SWS_Crypto_00013])।

यदि किसी ड्राइवर ऑब्जेक्ट को आंतरिक रैंडम नंबर्स की आवश्यकता होती है (उदाहरण के लिए [SWS_Crypto_91009] के माध्यम से कुंजी विनिमय के संदर्भ में सार्वजनिक मानों की गणना के लिए) और उसके पास अपना स्वयं का रैंडम नंबर जनरेटर नहीं है, तो वह अनिवार्य रूप से उसी ड्राइवर के Crypto Driver Object 0 का सहारा लेता है ([SWS_Crypto_00224], [SWS_Crypto_00225])। इस प्रक्रिया में ड्राइवर ऑब्जेक्ट्स को किसी भी परिस्थिति में अन्य क्रिप्टो-ड्राइवर इंस्टेंस के रैंडम जनरेटर को संबोधित करने की अनुमति नहीं है ([SWS_Crypto_00226])। Interpretation: इस प्रकार Driver Object 0 उसी पार्टीशन के अन्य सभी ड्राइवर ऑब्जेक्ट्स के लिए एक केंद्रीय आंतरिक संदर्भ रैंडम जनरेटर के रूप में कार्य करता है। प्रश्न Q-4e8e30714cbc9c80 (खुला)

सिंक्रोनस डायरेक्ट-कॉल और एसिंक्रोनस स्ट्रीमिंग के बीच जॉब प्रोसेसिंग

क्रिप्टोग्राफ़िक प्रोसेसिंग मॉड्यूल को केंद्रीय इंटरफ़ेस [SWS_Crypto_91003] (Crypto_ProcessJob) के माध्यम से प्रकार Crypto_JobType की जॉब संरचनाओं के रूप में सौंपी जाती है ([SWS_Crypto_00042], AUTOSAR_CP_SWS_CryptoServiceManager पृ. 21)। यह इंटरफ़ेस एक मोड-विशिष्ट बिटफ़ील्ड के माध्यम से ब्लॉक-आधारित समग्र कॉल्स और निरंतर डेटा स्ट्रीमिंग को संयोजित करता है: ऑपरेशन START, UPDATE और FINISH को व्यक्तिगत रूप से या संयुक्त रूप से पास किया जा सकता है (SWS_CryptoDriver पृ. 25)। START फ़्लैग सेट करना एक नए जॉब को चिह्नित करता है और उसी जॉब के सभी पिछले इंस्टेंस को निरस्त कर देता है ([SWS_Crypto_00017])। संयुक्त रूप से पास किए जाने पर, चरण हमेशा START, UPDATE और अंत में FINISH के निश्चित क्रम में निष्पादित किए जाते हैं (SWS_CryptoDriver पृ. 25)।

कोई जॉब सिंक्रोनस रूप से प्रोसेस किया जाएगा या एसिंक्रोनस रूप से, यह Crypto_JobType (SWS_CryptoDriver पृ. 26) में मेटाडेटा कॉन्फ़िगरेशन का हिस्सा है। एसिंक्रोनस मोड में, [SWS_Crypto_91003] केवल जॉब डेटा स्वीकार करता है; वास्तविक निष्पादन चक्रीय मुख्य फ़ंक्शन [SWS_Crypto_91012] (Crypto_MainFunction) द्वारा शुरू या प्रोसेस किया जाता है ([SWS_Crypto_00027], [SWS_Crypto_91012])। एसिंक्रोनस गणना पूरी होने के बाद, Crypto Driver स्टेटस और परिणाम पॉइंटर्स लौटाते हुए कॉलबैक फ़ंक्शन CRYIF_CallbackNotification को कॉल करके उच्च-स्तरीय लेयर CryIf को अनिवार्य रूप से सूचित करता है ([SWS_Crypto_00028])। Interpretation: इसके विपरीत, सिंक्रोनस कॉल्स मुख्य फ़ंक्शन के माध्यम से डीकपल किए बिना, कॉलर के संदर्भ में ब्लॉकिंग तरीके से क्रिप्टो ऑपरेशन निष्पादित करते हैं। प्रश्न Q-0447ed9db11aa30b (खुला)

Crypto Driver के माध्यम से एसिंक्रोनस ऑर्डर प्रोसेसिंगCryIfCrypto DriverDriver ObjectSchM / OSCrypto_ProcessJob(objectId, job)पैरामीटर & की हैंडल की जांच करेंE_OK (Auftrag angenommen)Crypto_MainFunction()गणना प्रारंभ करें (START/UPDATE/FINISH)क्रिप्टोग्राफ़िक गणना निष्पादित करेंErgebnis bereitstellenCRYIF_CallbackNotification(job, result)वापसी

अनुक्रम आरेख: Crypto_ProcessJob के माध्यम से एसिंक्रोनस प्रोसेसिंग प्रवाह, Crypto_MainFunction में चक्र और CRYIF_CallbackNotification के माध्यम से प्रतिक्रिया। स्रोत: SWS_Crypto_91003, SWS_Crypto_00027, SWS_Crypto_00028, SWS_Crypto_91012

चल रहे या लंबित क्रिप्टो जॉब्स को फ़ंक्शन [SWS_Crypto_00122] (Crypto_CancelJob) के माध्यम से रद्द किया जा सकता है। यदि अनुरोधित जॉब ड्राइवर ऑब्जेक्ट द्वारा सक्रिय प्रसंस्करण में नहीं है, तो इसे तुरंत हटा दिया जाता है और कॉल E_OK लौटाता है ([SWS_Crypto_00214])। हालाँकि, यदि हार्डवेयर सक्रिय गणना प्रक्रिया को तुरंत बाधित नहीं कर सकता है, तो API इस प्रयास को CRYPTO_E_JOB_CANCELED के साथ स्वीकार करता है, और रद्दीकरण अगले प्राप्य चरण में पूरा किया जाता है ([SWS_Crypto_00183])।

Crypto_CancelJob के माध्यम से जॉब रद्दीकरणCryIfCrypto DriverDriver ObjectCrypto_CancelJob(objectId, job)altजॉब सक्रिय प्रोसेसिंग में नहीं हैड्राइवर कतार से जॉब हटाएंE_OK (Job sofort entfernt)जॉब सक्रिय है & हार्डवेयर तुरंत निरस्त नहीं कर सकताHardware-Abbruch anfordernCRYPTO_E_JOB_CANCELED

अनुक्रम आरेख: सक्रिय हार्डवेयर निष्पादन में केस डिस्टिंक्शन के साथ Crypto_CancelJob के माध्यम से क्रिप्टोग्राफ़िक जॉब्स का सिंक्रोनस रद्दीकरण। स्रोत: SWS_Crypto_00122, SWS_Crypto_00183, SWS_Crypto_00214

एप्लिकेशन और हार्डवेयर मेमोरी के बीच अनावश्यक कॉपी प्रक्रियाओं से बचने के लिए, Crypto Driver प्रत्यक्ष बफ़र पुनर्निर्देशन (Job Redirection) का समर्थन करता है: इनपुट और आउटपुट डेटा को jobRedirectionInfoRef के माध्यम से सीधे आंतरिक कुंजी तत्वों पर संदर्भित किया जा सकता है ([SWS_Crypto_00203], [SWS_Crypto_00204])। डेटा लीक को रोकने के लिए, यहाँ सख्त अधिकार जाँच लागू होती है: एन्क्रिप्शन और डिक्रिप्शन सेवाओं के लिए इनपुट रीडायरेक्शन के मामले में कुंजी तत्व के पास कम से कम CRYPTO_RA_ENCRYPTED अधिकार होना चाहिए, शुद्ध रीड-रीडायरेक्शन के लिए कम से कम CRYPTO_RA_INTERNAL_COPY आवश्यक है ([SWS_Crypto_00221])।

कुंजी प्रबंधन, एक्सेस अधिकार और क्रिप्टोग्राफ़िक कुंजी संचालन

Crypto Driver में एक लॉजिकल कुंजी (Key) में एक या अधिक कुंजी तत्व (Key Elements) होते हैं, जो वास्तविक कुंजी सामग्री, इनिशियलाइज़ेशन वेक्टर्स (IV), रैंडम सीड्स या SHE-प्रूफ़्स (Proof) को धारण करते हैं (SWS_CryptoDriver पृ. 28)। प्रत्येक व्यक्तिगत तत्व तक पहुँच को कड़ाई से विनियमित किया जाता है: रीड और राइट एक्सेस की निगरानी कॉन्फ़िगर किए गए अधिकार पदानुक्रमों (उदा. CRYPTO_RA_ALLOWED, CRYPTO_RA_ENCRYPTED, CRYPTO_RA_INTERNAL_COPY) के आधार पर की जाती है, जहाँ एक छोटा एन्यूमरेटर मान उच्च-प्राथमिकता वाले एक्सेस अधिकार का प्रतिनिधित्व करता है (SWS_CryptoDriver पृ. 28, [SWS_Crypto_00219])। प्रत्यक्ष रीड ऑपरेशन्स की अनुमति केवल CRYPTO_RA_ALLOWED या CRYPTO_RA_ENCRYPTED के मामले में है ([SWS_Crypto_00222]); राइट एक्सेस के लिए कम से कम CRYPTO_WA_ALLOWED या CRYPTO_WA_ENCRYPTED आवश्यक है ([SWS_Crypto_00223])। कॉपी करते समय, स्रोत तत्व के पास कम से कम CRYPTO_RA_INTERNAL_COPY होना चाहिए और उसके पास लक्ष्य तत्व से कम अधिकार नहीं होने चाहिए ([SWS_Crypto_00220])।

कुंजियों और उनके तत्वों के प्रत्यक्ष हेरफेर के लिए, Crypto Driver कई सिंक्रोनस APIs प्रदान करता है: डेटा सेट करना और पढ़ना क्रमशः [SWS_Crypto_91004] (Crypto_KeyElementSet) या [SWS_Crypto_91006] (Crypto_KeyElementGet) के माध्यम से होता है। किसी कुंजी के मौजूदा तत्व पहचानकर्ताओं को [SWS_Crypto_00160] (Crypto_KeyElementIdsGet) के माध्यम से निर्धारित किया जा सकता है। पूरी कुंजियों या व्यक्तिगत तत्वों को [SWS_Crypto_00155] (Crypto_KeyCopy) या [SWS_Crypto_00148] (Crypto_KeyElementCopy) द्वारा डुप्लिकेट किया जाता है। आंशिक प्रतियों के लिए [SWS_Crypto_91015] (Crypto_KeyElementCopyPartial) मौजूद है, जो स्रोत और लक्ष्य बफ़र्स पर सटीक लंबाई और ऑफ़सेट जाँच लागू करता है ([SWS_Crypto_00207], [SWS_Crypto_00208], [SWS_Crypto_00209]) और लक्ष्य की लंबाई को गतिशील रूप से समायोजित करता है ([SWS_Crypto_00210], [SWS_Crypto_00211])।

इसके अतिरिक्त, मॉड्यूल जटिल कुंजी परिचालनों का समर्थन करता है: कुंजी निर्माण [SWS_Crypto_91007] (Crypto_KeyGenerate) के माध्यम से एंट्रॉपी डेटा के आधार पर होता है, जिसे पहले [SWS_Crypto_91013] (Crypto_RandomSeed) का उपयोग करके इनिशियलाइज़ किया गया था। नई कुंजी सामग्रियों की व्युत्पत्ति (derivation) [SWS_Crypto_91008] (Crypto_KeyDerive) द्वारा संभाली जाती है। Diffie-Hellman कुंजी विनिमय प्रोटोकॉल के लिए, सार्वजनिक मान उत्पन्न करने के लिए फ़ंक्शन [SWS_Crypto_91009] (Crypto_KeyExchangeCalcPubVal) और साझा रहस्य (shared secret) निर्धारित करने के लिए [SWS_Crypto_91010] (Crypto_KeyExchangeCalcSecret) उपलब्ध हैं (SWS_CryptoServiceManager पृ. 70)।

प्रत्येक लॉजिकल कुंजी एक स्थिति बनाए रखती है जिसे [SWS_Crypto_91019] (Crypto_KeyGetStatus) के माध्यम से क्वेरी किया जा सकता है। नई लिखी गई कुंजियाँ प्रारंभ में invalid स्थिति में होती हैं और [SWS_Crypto_91014] (Crypto_KeySetValid) का उपयोग करके सफल सत्यापन के बाद ही valid के रूप में जारी की जाती हैं, जबकि [SWS_Crypto_91020] (Crypto_KeySetInvalid) कुंजी को स्पष्ट रूप से ब्लॉक करता है। डेटा प्रारूपों के संबंध में, ड्राइवर ASN.1-PKCS#8 एन्कोडिंग ([SWS_Crypto_00184]) में RFC 5958 के अनुसार असममित कुंजियों को, निश्चित एल्गोरिथ्म OID 1.2.840.113549.1.1.1 ([SWS_Crypto_00185], [SWS_Crypto_00186], [SWS_Crypto_00187], [SWS_Crypto_00188]) के साथ RFC 8017 के अनुसार RSA कुंजी संरचनाओं को, और लिटिल-एंडियन बिंदु निर्देशांकों ([SWS_Crypto_00189], [SWS_Crypto_00190], [SWS_Crypto_00191], [SWS_Crypto_00192], [SWS_Crypto_00193]) में ECC वक्र डेटा (NIST, Brainpool, ED25519) को प्रोसेस करता है। हार्डवेयर-उन्मुख SHE कुंजियों को M1M2M3 प्रारूप में पास किया जाता है; उनका सत्यापन प्रमाण M4M5 सत्यापन के तुरंत बाद कुंजी तत्व 2 में अस्थायी रूप से पठनीय होता है ([SWS_Crypto_00255])।

diag_schluessel_lebenszyklus UNINITIALIZED UNINITIALIZED INVALID INVALID UNINITIALIZED->INVALID Crypto_Init / NVM-Ladefehler INVALID->INVALID Crypto_KeyElementSet / Crypto_KeyGenerate VALID VALID INVALID->VALID Crypto_KeySetValid (जांच OK) VALID->INVALID Crypto_KeySetInvalid VALID->VALID Crypto_KeyElementSet (Re-Validierung ausstehend) NVM_SYNC NVM_SYNC VALID->NVM_SYNC NVM-Schreibanforderung NVM_SYNC->VALID Persistierung erfolgreich

स्थिति आरेख: पॉपुलेशन से लेकर सत्यापन, पर्सिस्टेंस और एरर हैंडलिंग तक एक कुंजी के स्थिति संक्रमण। स्रोत: SWS_Crypto_00198, SWS_Crypto_00242, SWS_Crypto_91014, SWS_Crypto_91019, SWS_Crypto_91020

Non-Volatile RAM Manager के माध्यम से कुंजी तत्वों का पर्सिस्टेंस

यदि कुंजियों को पावर चक्रों के दौरान नॉन-वोलेटाइल रूप से संरक्षित रखना आवश्यक है, तो Crypto Driver को Non-Volatile RAM Manager (NvM) से जोड़ा जाता है (SWS_CryptoDriver पृ. 35, AUTOSAR_CP_SWS_CryptoDriver पृ. 37)। एक केंद्रीय वास्तुकला सिद्धांत यह बताता है कि NvM में राइट प्रक्रियाएँ कभी भी Crypto_KeyElementSet के माध्यम से किसी एकल तत्व को पॉप्युलेट करते समय सीधे ट्रिगर नहीं होती हैं (SWS_CryptoDriver पृ. 37)। इसके बजाय, पर्सिस्टेंस विशेष रूप से [SWS_Crypto_91014] (Crypto_KeySetValid) के माध्यम से स्थिति सत्यापन KEYSETVALID द्वारा या एक समकक्ष क्रिप्टो जॉब द्वारा शुरू की जाती है (SWS_CryptoDriver पृ. 37)। यह गारंटी देता है कि अन्योन्याश्रित कुंजी तत्वों को सुसंगत रूप से जाँचा जाता है और एकल NvM राइट एक्सेस में संग्रहीत किया जाता है, जो फ़्लैश चक्रों की बचत करता है (SWS_CryptoDriver पृ. 37)।

NvM के साथ इंटरेक्शन समर्पित कॉलबैक इंटरफ़ेस के माध्यम से होता है: ECU स्टार्टअप के दौरान, NvM [SWS_Crypto_91023] (Crypto_<vi>_<ai>_NvBlock_Init_<NvBlock>) के माध्यम से इनिशियलाइज़ेशन ब्लॉक प्रदान करता है। NvM के RAM मिरर से पर्सिस्टेड डेटा लोड करना [SWS_Crypto_91024] (Crypto_<vi>_<ai>_NvBlock_ReadFrom_<NvBlock>) के माध्यम से होता है। लिखने से पहले, NvM [SWS_Crypto_91025] (Crypto_<vi>_<ai>_NvBlock_WriteTo_<NvBlock>) को कॉल करता है ताकि क्रिप्टो ड्राइवर अपने आंतरिक कुंजी डेटा को NvM बफ़र में कॉपी कर सके; एसिंक्रोनस ब्लॉक ट्रांसफ़र के पूरा होने की रिपोर्ट [SWS_Crypto_91026] (Crypto_<vi>_<ai>_NvBlock_Callback_<NvBlock>) के माध्यम से दी जाती है। नियंत्रण के लिए, ड्राइवर NvM सेवाओं NvM_SetRamBlockStatus और NvM_WriteBlock ([SWS_Crypto_91017]) का उपयोग करता है। यदि स्टार्टअप पर किसी पर्सिस्टेंट कुंजी को लोड करना विफल हो जाता है, तो ड्राइवर अनिवार्य रूप से उस कुंजी को invalid के रूप में चिह्नित करता है ([SWS_Crypto_00198])।

सत्यापन पर NVM में कुंजियों का पर्सिस्टेंसCryIf / ApplikationCrypto DriverNvMCrypto_KeySetValid(cryptoKeyId)एलिमेंट्स की संगति & निर्भरताओं की जांच करेंNvM_WriteBlock(BlockId, NvM_Buffer)Crypto_<vi>_<ai>_NvBlock_WriteTo_<NvBlock>(NvmBuffer)की डेटा को NvM-RAM मिरर में स्थानांतरित करेंE_OKCrypto_<vi>_<ai>_NvBlock_Callback_<NvBlock>(BlockRequest, JobResult)की स्थिति को VALID पर सेट करेंE_OKE_OK

अनुक्रम आरेख: NvM_WriteBlock और ड्राइवर-विशिष्ट कॉलबैक्स के माध्यम से सत्यापन पर NVM में कुंजी तत्वों का पर्सिस्टेंस। स्रोत: SWS_Crypto_00242, SWS_Crypto_91017, SWS_Crypto_91025, SWS_Crypto_91026

पार्टीशनिंग और मल्टी-कोर संचालन नियम

मल्टी-कोर सिस्टम पर क्रिप्टो ऑपरेशन्स को कुशलतापूर्वक विभाजित करने के लिए, क्रिप्टो स्टैक को कई सॉफ़्टवेयर पार्टीशन्स में वितरित किया जा सकता है (BSWDistributionGuide पृ. 59)। Crypto मॉड्यूल प्रत्येक पार्टीशन में पूरी तरह से स्वतंत्र इंस्टेंस के रूप में कार्य करता है: प्रत्येक API कॉल विशेष रूप से उस पार्टीशन के भीतर डेटा प्रोसेस करता है जिसमें इसे जारी किया गया था ([SWS_Crypto_CONSTR_00001])। ड्राइवर ऑब्जेक्ट्स का पार्टीशनिंग निश्चित कॉन्फ़िगरेशन नियमों के अधीन है: CryptoDriverObjectEcucPartitionRef द्वारा संदर्भित पार्टीशन्स मॉड्यूल को सौंपे गए पार्टीशन्स (CryptoEcucPartitionRef) का अनिवार्य रूप से एक उचित उपसमुच्चय (proper subset) होना चाहिए ([SWS_Crypto_CONSTR_00002])। यदि कोई Crypto Driver Object किसी हार्डवेयर सुरक्षा मॉड्यूल (HSM) से जुड़ा है, तो हार्डवेयर अलगाव कारणों से इसे ठीक 0 या 1 पार्टीशन सौंपा जा सकता है ([SWS_Crypto_CONSTR_00003])।

त्रुटि की स्थिति में व्यवहार

Crypto Driver डेवलपमेंट त्रुटि पहचान (Development Errors) और रनटाइम त्रुटियों (Runtime Errors) की दो-चरणीय त्रुटि निगरानी लागू करता है। विकास सुरक्षा मोड (DET) सक्रिय होने पर, औपचारिक इंटरफ़ेस उल्लंघनों को Det_ReportError पर प्रेषित किया जाता है ([SWS_Crypto_91017])। इनमें ड्राइवर इनिशियलाइज़ेशन से पहले के कॉल्स (CRYPTO_E_UNINIT, 0x00) ([SWS_Crypto_00040], [SWS_Crypto_00196], [SWS_Crypto_00205]), अमान्य इनिशियलाइज़ेशन डेटा (CRYPTO_E_INIT_FAILED, 0x01) और अस्वीकार्य नल पॉइंटर्स (CRYPTO_E_PARAM_POINTER, 0x02) ([SWS_Crypto_00040]) शामिल हैं। यदि कुंजी पहचानकर्ता या लक्ष्य कुंजी हैंडल स्वीकार्य मान सीमा से बाहर हैं, तो ड्राइवर E_NOT_OK के साथ कॉल को निरस्त कर देता है और CRYPTO_E_PARAM_HANDLE (0x04) की रिपोर्ट करता है ([SWS_Crypto_00040], [SWS_Crypto_00180], [SWS_Crypto_00197], [SWS_Crypto_00202], [SWS_Crypto_00217])।

यदि किसी ऑपरेशन के लिए पास किए गए इनपुट या आउटपुट बफ़र्स पर्याप्त नहीं हैं, तो निष्पादन से इनकार कर दिया जाता है और DET सक्रिय होने पर त्रुटि CRYPTO_E_SMALL_BUFFER की रिपोर्ट की जाती है ([SWS_Crypto_00195], SWS_CryptoDriver पृ. 49)। सेवाओं CRYPTO_HASH और CRYPTO_MACGENERATE के लिए एक मानक अपवाद लागू होता है: यदि आउटपुट बफ़र यहाँ मूल हैश या MAC लंबाई से छोटा है, तो परिणाम को खारिज नहीं किया जाता है, बल्कि सबसे महत्वपूर्ण बिट्स (MSB) के रूप में बफ़र में छोटा (truncated) करके लिखा जाता है ([SWS_Crypto_00065])। परिचालन संचालन में, ड्राइवर रिटर्न मान के माध्यम से विशिष्ट रनटाइम त्रुटियों की रिपोर्ट करता है: यादृच्छिक एंट्रॉपी की कमी होने पर [SWS_Crypto_91003] रिटर्न कोड CRYPTO_E_ENTROPY_EXHAUSTED के साथ प्रतिक्रिया देता है और रनटाइम त्रुटि CRYPTO_E_RE_ENTROPY_EXHAUSTED (0x03) की रिपोर्ट करता है ([SWS_Crypto_00141], [SWS_Crypto_00194], [SWS_Crypto_91018])। यदि NVM पर रीड या राइट एक्सेस विफल हो जाता है, तो CRYPTO_E_RE_NVM_ACCESS_FAILED (0x04) संकेतित होता है ([SWS_Crypto_00194])। अन्य मानकीकृत API रिटर्न मान CRYPTO_E_BUSY, CRYPTO_E_KEY_READ_FAIL, CRYPTO_E_KEY_WRITE_FAIL, CRYPTO_E_KEY_NOT_AVAILABLE, CRYPTO_E_KEY_NOT_VALID, CRYPTO_E_KEY_SIZE_MISMATCH और CRYPTO_E_KEY_EMPTY हैं ([SWS_Crypto_00155], [SWS_Crypto_00207], [SWS_Crypto_91018])।

आगे विस्तृत साक्ष्य

Crypto Driver की आवश्यक विशेषताएँ निम्नलिखित कार्यात्मक विनिर्देश आवश्यकताओं और वास्तुशिल्प बिंदुओं पर आधारित हैं:

विषय क्षेत्रआवश्यक विनिर्देश तत्वदस्तावेज़ संदर्भ
मॉड्यूल फ़्रेमवर्क & इंस्टेंसिएशन[SWS_Crypto_00012], [SWS_Crypto_91000], [SWS_Crypto_91016], [SWS_Crypto_00215]SWS_CryptoDriver S. 15
जॉब प्रोसेसिंग & रद्दीकरण[SWS_Crypto_91003], [SWS_Crypto_00017], [SWS_Crypto_00027], [SWS_Crypto_00122], [SWS_Crypto_00183]SWS_CryptoDriver S. 25
कुंजी & अधिकार प्रबंधन[SWS_Crypto_91004], [SWS_Crypto_91006], [SWS_Crypto_00219], [SWS_Crypto_00220], [SWS_Crypto_91014]SWS_CryptoDriver S. 28
क्रिप्टो संचालन & विनिमय[SWS_Crypto_91007], [SWS_Crypto_91008], [SWS_Crypto_91009], [SWS_Crypto_91010]SWS_CryptoServiceManager S. 70
NvM-पर्सिस्टेंस & कॉलबैक्स[SWS_Crypto_91023], [SWS_Crypto_91024], [SWS_Crypto_91025], [SWS_Crypto_91026]SWS_CryptoDriver S. 37
मल्टी-कोर & पार्टीशनिंग[SWS_Crypto_CONSTR_00001], [SWS_Crypto_CONSTR_00002], [SWS_Crypto_CONSTR_00003]BSWDistributionGuide S. 59

यह दिशानिर्देश केवल AUTOSAR Classic R20-11 विनिर्देश के मानक निर्धारणों पर आधारित है।

Crypto Driver (Crypto)

Low-level driver executing cryptographic primitives on hardware security modules (HSM) or software libraries.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

फ़ंक्शन Crypto_Init [SWS_Crypto_91000] 📄 PDF

void Crypto_Init (const Crypto_ConfigType* configPtr);

Initializes the Crypto Driver.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 4040b6dde00b उद्गम खुले प्रश्न (2)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

फ़ंक्शन Crypto_Init [SWS_Crypto_91000] के अनुसार Crypto Driver के इनिशियलाइज़ेशन के लिए कार्य करता है। इंटरफ़ेस हेडर Crypto.h में घोषित है और इसमें Service ID 0x00 है [SWS_Crypto_91000]।

कॉल और इंटरफ़ेस पैरामीटर के लिए निम्नलिखित गुण निर्दिष्ट हैं:

  • कॉन्फ़िगरेशन पॉइंटर: प्रकार const Crypto_ConfigType* के इनपुट पैरामीटर configPtr के माध्यम से चयनित कॉन्फ़िगरेशन संरचना का एक पॉइंटर पास किया जाता है [SWS_Crypto_91000]।
  • रिटर्न मान: फ़ंक्शन का कोई रिटर्न मान (void) नहीं है; न तो कोई इनपुट/आउटपुट पैरामीटर है और न ही कोई अलग आउटपुट पैरामीटर मौजूद है [SWS_Crypto_91000]।
  • निष्पादन व्यवहार: इनिशियलाइज़ेशन रूटीन समकालिक रूप से निष्पादित होता है (Synchronous) [SWS_Crypto_91000]।
  • रीएंट्रेंसी: फ़ंक्शन को गैर-रीएंट्रेंट (Non Reentrant) के रूप में परिभाषित किया गया है [SWS_Crypto_91000]। समानांतर या ओवरलैपिंग कॉल्स अस्वीकार्य हैं।

गैर-रीएंट्रेंट के रूप में वर्गीकरण के कारण और चूँकि विनिर्देश कोई विशिष्ट त्रुटि कोड वापस नहीं करता है, इसलिए कॉल आमतौर पर इलेक्ट्रॉनिक कंट्रोल यूनिट (ECU) के स्टार्टअप चरण के दौरान अन्य सभी ड्राइवर एक्सेस से पहले केंद्रीय रूप से होना चाहिए (व्याख्या)। प्रश्न Q-008bb5a45b823891 (खुला) कॉलर को संभवतः इसके लिए भी ज़िम्मेदार होना चाहिए कि संदर्भित कॉन्फ़िगरेशन संरचना मेमोरी में स्थायी रूप से मान्य बनी रहे (व्याख्या)। प्रश्न Q-6271a86fad440121 (खुला)

यह उपयोग संबंधी निर्देश AUTOSAR CP R20-11 विनिर्देश के आधार पर एक AI द्वारा जनरेट किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन Crypto_ProcessJob [SWS_Crypto_91003] 📄 PDF

Std_ReturnType Crypto_ProcessJob (uint32 objectId, Crypto_JobType* job);

Service Crypto_ProcessJob.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 58fc9052e1fa उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

फ़ंक्शन Crypto_ProcessJob पैरामीटर job में कॉन्फ़िगर किए गए क्रिप्टोग्राफ़िक प्रिमिटिव को objectId द्वारा संदर्भित Crypto Driver Object पर निष्पादित करता है [SWS_Crypto_91003]। कॉल रीएंट्रेंट है और कार्य कॉन्फ़िगरेशन के आधार पर समकालिक या असमकालिक रूप से कार्य करता है [SWS_Crypto_91003]। Crypto_JobType के पॉइंटर के माध्यम से प्रिमिटिव के लिए कॉन्फ़िगरेशन डेटा और परिणाम डेटा के लिए बफ़र दोनों पास किए जाते हैं [SWS_Crypto_91003]।

किसी कार्य के वास्तविक निष्पादन से पहले, ड्राइवर वैधता के लिए कुंजी पहचानकर्ताओं की जाँच करता है: यदि job->cryptoKeyId या संभवतः job->targetCryptoKeyId अनुमत सीमा से बाहर हैं, तो फ़ंक्शन त्रुटि CRYPTO_E_PARAM_HANDLE की रिपोर्ट DET को देता है और E_NOT_OK लौटाता है [SWS_Crypto_00217]। यह सेवा CRYPTO_KEYDERIVE (job->jobPrimitiveInfo->primitiveInfo->service) पर भी लागू होता है, यदि job->targetCryptoKeyId अमान्य है [SWS_Crypto_00202]।

E_OK और E_NOT_OK के अलावा, विशिष्ट त्रुटि कोड अनुरोध की विफलता का संकेत देते हैं [SWS_Crypto_91003]:

  • CRYPTO_E_BUSY, यदि ड्राइवर ऑब्जेक्ट व्यस्त है या इसकी कतार भरी हुई है [SWS_Crypto_91003],
  • कुंजी-संबंधी त्रुटियाँ जैसे CRYPTO_E_KEY_NOT_VALID, CRYPTO_E_KEY_SIZE_MISMATCH, CRYPTO_E_KEY_READ_FAIL, CRYPTO_E_KEY_WRITE_FAIL, CRYPTO_E_KEY_NOT_AVAILABLE या CRYPTO_E_KEY_EMPTY [SWS_Crypto_91003],
  • किसी समकालिक कार्य के निरस्तीकरण पर CRYPTO_E_JOB_CANCELED [SWS_Crypto_91003] तथा
  • रैंडम नंबर जनरेटर (RNG) की अपर्याप्त एंट्रॉपी पर CRYPTO_E_ENTROPY_EXHAUSTED; इस मामले में फ़ंक्शन अतिरिक्त रूप से रनटाइम त्रुटि CRYPTO_E_RE_ENTROPY_EXHAUSTED की रिपोर्ट करता है [SWS_Crypto_00141], [SWS_Crypto_91003]।

यह पाठ AUTOSAR R20-11 विनिर्देश डेटा के आधार पर एक AI द्वारा तैयार किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन Crypto_CancelJob [SWS_Crypto_00122] 📄 PDF

Std_ReturnType Crypto_CancelJob (uint32 objectId, Crypto_JobType* job);

This interface removes the provided job from the queue and cancels the processing of the job if possible.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 53c6dc327c97 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

उपयोग

समकालिक फ़ंक्शन Crypto_CancelJob पास किए गए कार्य को कतार से हटाता है और जहाँ तक संभव हो इसके प्रसंस्करण को निरस्त करता है [SWS_Crypto_00122]। कॉल करते समय, Crypto Driver Object का पहचानकर्ता (objectId) और कार्य कॉन्फ़िगरेशन का एक पॉइंटर (job) पास किया जाता है [SWS_Crypto_00122]।

रिटर्न मान निरस्तीकरण के प्रयास के परिणाम का संकेत देते हैं:

  • E_OK: अनुरोध सफल रहा और कार्य हटा दिया गया [SWS_Crypto_00122]। यदि ड्राइवर में कोई त्रुटि नहीं है और कार्य वर्तमान में संसाधित नहीं किया जा रहा है, तो सेवा बिना किसी अन्य कार्रवाई के E_OK भी वापस करती है [SWS_Crypto_00214]।
  • E_NOT_OK: अनुरोध विफल रहा क्योंकि जॉब को हटाया नहीं जा सका [SWS_Crypto_00122]।
  • CRYPTO_E_JOB_CANCELED: कार्य निरस्त कर दिया गया था, लेकिन निष्पादित होना जारी रहता है; एप्लिकेशन को कोई परिणाम वापस रिपोर्ट नहीं किया जाता है [SWS_Crypto_00122]। यह तब लागू होता है जब ड्राइवर त्रुटिपूर्ण ढंग से काम नहीं करता है, लेकिन (उदाहरण के लिए हार्डवेयर सीमाओं के कारण) कार्य को निरस्त नहीं कर सकता है [SWS_Crypto_00183]।

समवर्तीता और प्रतिबंध

इंटरफ़ेस भिन्न इंस्टैंस के लिए रीएंट्रेंट है, लेकिन इसे एक ही Crypto Driver Object के लिए एक साथ कॉल नहीं किया जाना चाहिए [SWS_Crypto_00122]।

यह उपयोग नोट स्वचालित रूप से तैयार किया गया था और विशेष रूप से AUTOSAR R20-11 के विनिर्देश डेटा पर आधारित है।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन Crypto_KeyElementSet [SWS_Crypto_91004] 📄 PDF

Std_ReturnType Crypto_KeyElementSet (uint32 cryptoKeyId, uint32 keyElementId, const uint8* keyPtr, uint32 keyLength);

Sets the given key element bytes to the key identified by crypto Key Id.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: c644721999af उद्गम खुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

समकालिक फ़ंक्शन Crypto_KeyElementSet क्रिप्टो-ड्राइवर में cryptoKeyId के माध्यम से पहचानी गई कुंजी के लिए एक विशिष्ट कुंजी तत्व के रॉ डेटा को सेट करने के लिए कार्य करता है [SWS_Crypto_91004]।

पैरामीटर और रिटर्न मान

keyElementId के माध्यम से गंतव्य कुंजी तत्व को संबोधित किया जाता है, जबकि keyPtr डेटा बफ़र को और keyLength इसके बाइट आकार को संदर्भित करता है [SWS_Crypto_91004]। सफल असाइनमेंट पर, इंटरफ़ेस E_OK लौटाता है [SWS_Crypto_91004]।

त्रुटि प्रबंधन

यदि प्रसंस्करण के दौरान कोई त्रुटि होती है, तो फ़ंक्शन विशिष्ट रिटर्न मान प्रदान करता है [SWS_Crypto_91004]:

  • CRYPTO_E_BUSY: संबंधित Crypto-Driver ऑब्जेक्ट व्यस्त है।
  • CRYPTO_E_KEY_WRITE_FAIL: कुंजी तत्व पर राइट एक्सेस से इनकार कर दिया गया।
  • CRYPTO_E_KEY_NOT_AVAILABLE: अनुरोधित कुंजी तत्व या कुंजी उपलब्ध नहीं है।
  • CRYPTO_E_KEY_SIZE_MISMATCH: पास की गई डेटा लंबाई कुंजी तत्व के आकार से मेल नहीं खाती है।
  • E_NOT_OK: अनुरोध अन्य कारणों से विफल हो गया है।

संगामिति

फ़ंक्शन को गैर-रीएंट्रेंट (Non Reentrant) के रूप में निर्दिष्ट किया गया है [SWS_Crypto_91004]। व्याख्या: ड्राइवर में डेटा विसंगतियों को रोकने के लिए, समानांतर कॉल्स को एक दूसरे के विरुद्ध सिंक्रोनाइज़ करने के लिए कॉलर्स ज़िम्मेदार हो सकते हैं। प्रश्न Q-d7ef7a774052a212 (खुला)

यह उपयोग नोट विनिर्देश SWS_Crypto_91004 (R20-11) के आधार पर स्वचालित रूप से तैयार किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन Crypto_KeySetValid [SWS_Crypto_91014] 📄 PDF

Std_ReturnType Crypto_KeySetValid (uint32 cryptoKeyId);

Sets the key state of the key identified by crypto Key Id to valid.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 234814436706 उद्गम खुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

सिंक्रोनस फ़ंक्शन Crypto_KeySetValid का उपयोग आइडेंटिफ़ायर cryptoKeyId द्वारा निर्दिष्ट कुंजी की स्थिति को वैध ([SWS_Crypto_91014]) पर सेट करने के लिए किया जाता है। यह इंटरफ़ेस हेडर फ़ाइल Crypto.h के माध्यम से उपलब्ध है और इसकी Service-ID 0x05 ([SWS_Crypto_91014]) है।

उपयोग के दौरान निम्नलिखित पैरामीटर और रिटर्न मान परिभाषित हैं ([SWS_Crypto_91014]):

  • इनपुट पैरामीटर: cryptoKeyId (प्रकार uint32) के माध्यम से उस कुंजी का आइडेंटिफ़ायर पास किया जाता है जिसकी स्थिति को वैध पर सेट किया जाना है ([SWS_Crypto_91014])। कोई अतिरिक्त इनपुट या आउटपुट पैरामीटर मौजूद नहीं हैं ([SWS_Crypto_91014])।
  • रिटर्न मान: Std_ReturnType प्रकार का स्टेटस कोड अनुरोध के परिणाम की जानकारी देता है ([SWS_Crypto_91014]):
    • E_OK: अनुरोध सफल रहा ([SWS_Crypto_91014])।
    • E_NOT_OK: अनुरोध विफल रहा ([SWS_Crypto_91014])।
    • CRYPTO_E_BUSY: निष्पादन विफल रहा क्योंकि संबंधित Crypto ड्राइवर ऑब्जेक्ट व्यस्त है ([SWS_Crypto_91014])।

समवर्तीता के संबंध में, फ़ंक्शन को नॉन-reentrant (“Non Reentrant”) के रूप में निर्दिष्ट किया गया है ([SWS_Crypto_91014])। व्याख्या: टकराव से बचने के लिए कॉलर्स को संभवतः कार्यों (tasks) में समानांतर कॉल को बाहरी रूप से समन्वित करना होगा, और CRYPTO_E_BUSY प्राप्त होने पर बाद के समय में कॉल को पुनः दोहराने का प्रावधान करना चाहिए। प्रश्न Q-32d775a9e61e5731 (खुला)

यह पाठ AI द्वारा तैयार किया गया था और AUTOSAR R20-11 विनिर्देश स्थिति पर आधारित है।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन Crypto_KeySetInvalid [SWS_Crypto_91020] 📄 PDF

Std_ReturnType Crypto_KeySetInvalid (uint32 cryptoKeyId);

Sets invalid for the status of the key identifi ed by crypto Key Id.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: f9c09a4552e9 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

उपयोग और सिमेंटिक्स

सिंक्रोनस फ़ंक्शन Crypto_KeySetInvalid cryptoKeyId द्वारा पहचानी गई कुंजी की स्थिति को अमान्य पर सेट करता है [SWS_Crypto_91020]। फ़ंक्शन हेडर फ़ाइल Crypto.h में परिभाषित है और इसे Service-ID 0x15 के माध्यम से संबोधित किया जाता है [SWS_Crypto_91020]। एकमात्र ट्रांसफ़र पैरामीटर के रूप में इनपुट मान cryptoKeyId (प्रकार uint32) कार्य करता है, जिसमें डेस्टिनेशन कुंजी का अद्वितीय आइडेंटिफ़ायर शामिल है; इनपुट/आउटपुट और आउटपुट पैरामीटर मौजूद नहीं हैं [SWS_Crypto_91020]।

त्रुटि प्रबंधन और रिटर्न मान

फ़ंक्शन निष्पादन का परिणाम Std_ReturnType प्रकार के रिटर्न मान के माध्यम से संकेतित किया जाता है [SWS_Crypto_91020]:

  • E_OK: अनुरोध सफल रहा और कुंजी स्थिति को अमान्य पर सेट कर दिया गया था [SWS_Crypto_91020]।
  • E_NOT_OK: अनुरोध का निष्पादन विफल रहा [SWS_Crypto_91020]।
  • CRYPTO_E_BUSY: अनुरोध विफल रहा क्योंकि संबंधित क्रिप्टो ड्राइवर ऑब्जेक्ट (Crypto Driver Object) वर्तमान में व्यस्त है [SWS_Crypto_91020]।

समवर्तीता और प्रतिबंध

इंटरफ़ेस को नॉन-reentrant (Non Reentrant) के रूप में निर्दिष्ट किया गया है [SWS_Crypto_91020]। इसलिए समवर्ती या इंटरप्ट करने वाली कॉल अस्वीकार्य है। चूंकि फ़ंक्शन सिंक्रोनस रूप से निष्पादित होता है, यह स्थिति परिवर्तन के पूरा होने के बाद या त्रुटि का पता चलने के बाद ही कॉलर के पास लौटता है [SWS_Crypto_91020]।

यह उपयोग निर्देश विनिर्देश के आधार पर स्वचालित रूप से जनरेट किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन Crypto_KeyElementGet [SWS_Crypto_91006] 📄 PDF

Std_ReturnType Crypto_KeyElementGet (uint32 cryptoKeyId, uint32 keyElementId, uint8* resultPtr, uint32* resultLengthPtr);

This interface shall be used to get a key element of the key identified by the crypto

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: c68d666a4fd9 उद्गम खुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

समकालिक और रीएंट्रेंट फ़ंक्शन Crypto_KeyElementGet कुंजी cryptoKeyId से keyElementId द्वारा पहचाने गए कुंजी तत्व को पढ़ने और इसे मेमोरी क्षेत्र resultPtr में संग्रहीत करने के लिए कार्य करता है [SWS_Crypto_91006]। इंटरफ़ेस हेडर Crypto.h के माध्यम से प्रदान किया जाता है और इसमें Service ID 0x06 है [SWS_Crypto_91006]। कॉल करते समय, कॉलर इन-आउट पैरामीटर resultLengthPtr के माध्यम से बफ़र आकार या कॉन्फ़िगर किए गए आंशिक एक्सेस के मामले में वांछित पढ़ने का आकार पास करता है; निष्पादन पूरा होने के बाद, ड्राइवर वास्तव में कॉपी किए गए डेटा की मात्रा को वहाँ संग्रहीत करता है [SWS_Crypto_91006]।

सफलता के मामले में, फ़ंक्शन E_OK लौटाता है [SWS_Crypto_91006]। यदि ऑपरेशन विफल हो जाता है, तो यह विशिष्ट त्रुटि कोड के माध्यम से इसका संकेत देता है: व्यस्त Crypto-ड्राइवर ऑब्जेक्ट के मामले में CRYPTO_E_BUSY, यदि कुंजी तत्व उपलब्ध नहीं है तो CRYPTO_E_KEY_NOT_AVAILABLE, अस्वीकृत रीड एक्सेस पर CRYPTO_E_KEY_READ_FAIL, एक अनइनिशियलाइज़्ड स्रोत तत्व पर CRYPTO_E_KEY_EMPTY और सामान्य रूप से E_NOT_OK [SWS_Crypto_91006]।

यद्यपि इंटरफ़ेस को रीएंट्रेंट के रूप में निर्दिष्ट किया गया है, विनिर्देश इंगित करता है कि कुंजी तत्व के सीधे फ़्लैश मेमोरी में मैपिंग के मामले में, समकालिक निष्पादन के दौरान ध्यान देने योग्य विलंबता हो सकती है [SWS_Crypto_91006]। व्याख्या: इन संभावित देरी के कारण, कॉल मुख्य रूप से टास्क संदर्भ में उपयुक्त होना चाहिए, न कि समय-महत्वपूर्ण इंटरप्ट सर्विस रूटीन्स के भीतर। प्रश्न Q-ff4e2843b9aad46d (खुला)

यह उपयोग नोट स्वचालित रूप से उत्पन्न किया गया था और AUTOSAR Classic R20-11 के विनिर्देश स्तर पर आधारित है।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन Crypto_KeyGetStatus [SWS_Crypto_91019] 📄 PDF

Std_ReturnType Crypto_KeyGetStatus (uint32 cryptoKeyId, Crypto_KeyStatusType* keyStatusPtr);

Returns the key state of the key identified by crypto Key Id.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 4f6e929a170d उद्गम खुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

समकालिक फ़ंक्शन Crypto_KeyGetStatus क्रिप्टो-ड्राइवर के भीतर एक विशिष्ट कुंजी की वर्तमान स्थिति को क्वेरी करने के लिए कार्य करता है [SWS_Crypto_91019]। यह हेडर Crypto.h के माध्यम से प्रदान किया जाता है और Service ID 0x14 रखता है [SWS_Crypto_91019]।

उपयोग और पैरामीटर

कॉल समकालिक रूप से होता है और दो पैरामीटर की अपेक्षा करता है [SWS_Crypto_91019]:

  • cryptoKeyId: उस कुंजी का पहचानकर्ता, जिसकी स्थिति निर्धारित की जानी है।
  • keyStatusPtr: Crypto_KeyStatusType प्रकार के मेमोरी क्षेत्र का पॉइंटर, जिस पर स्थिति वापस की जाती है।

रिटर्न मान के रूप में इंटरफ़ेस Std_ReturnType लौटाता है। सफल निष्पादन पर E_OK रिपोर्ट किया जाता है, जबकि त्रुटि के मामले में E_NOT_OK लौटाया जाता है [SWS_Crypto_91019]।

समवर्तीता और प्रतिबंध

फ़ंक्शन को गैर-रीएंट्रेंट (Non Reentrant) घोषित किया गया है [SWS_Crypto_91019]। इसलिए कॉलर्स को यह सुनिश्चित करना चाहिए कि उच्च-स्तरीय सिंक्रोनाइज़ेशन तंत्रों द्वारा समवर्ती कॉल्स से बचा जाए। विशिष्ट DET त्रुटि संदेश सूचीबद्ध नहीं हैं; संभवतः कोई गलत कॉल जैसे अमान्य पॉइंटर या अमान्य ID सीधे E_NOT_OK लौटाने की ओर ले जाती है [SWS_Crypto_91019]। प्रश्न Q-5703fab02905e91a (खुला)

यह पाठ एक AI द्वारा तैयार किया गया था और AUTOSAR R20-11 के विनिर्देश पर आधारित है।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन Crypto_KeyElementCopy [SWS_Crypto_00148] 📄 PDF

Std_ReturnType Crypto_KeyElementCopy (uint32 cryptoKeyId, uint32 keyElementId, uint32 targetCryptoKeyId, uint32 targetKeyElementId);

Service Crypto_KeyElementCopy.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 0bf976054e55 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

समकालिक फ़ंक्शन Crypto_KeyElementCopy उसी Crypto-ड्राइवर [SWS_Crypto_00148] के भीतर एक कुंजी तत्व को दूसरे कुंजी तत्व में कॉपी करने के लिए उपयोग किया जाता है। स्रोत कुंजी (cryptoKeyId) और स्रोत कुंजी तत्व (keyElementId) के साथ-साथ गंतव्य कुंजी (targetCryptoKeyId) और गंतव्य कुंजी तत्व (targetKeyElementId) के पहचानकर्ता पास किए जाते हैं [SWS_Crypto_00148]।

समय व्यवहार के संबंध में, यह ध्यान दिया जाना चाहिए कि सीधे फ़्लैश मेमोरी में मैप किए गए कुंजी तत्वों के मामले में, समकालिक निष्पादन के कारण फ़ंक्शन कॉल में अधिक विलंब हो सकता है [SWS_Crypto_00148]। इसलिए रनटाइम व्यवहार को विशेष रूप से समय-महत्वपूर्ण संदर्भों में ध्यान में रखा जाना चाहिए।

फ़ंक्शन को रीएंट्रेंट डिज़ाइन किया गया है, लेकिन स्पष्ट रूप से समान cryptoKeyId [SWS_Crypto_00148] के लिए नहीं। परिणामस्वरूप, समान स्रोत कुंजी के साथ समकालिक कॉल्स को कॉलर द्वारा सिंक्रोनाइज़ किया जाना चाहिए या बाहर रखा जाना चाहिए।

सफलता के मामले में, फ़ंक्शन E_OK लौटाता है [SWS_Crypto_00148]। त्रुटियों के मामले में, रिटर्न मान विशिष्ट कारण का संकेत देता है [SWS_Crypto_00148]:

  • CRYPTO_E_BUSY: Crypto-ड्राइवर ऑब्जेक्ट व्यस्त है [SWS_Crypto_00148]।
  • CRYPTO_E_KEY_NOT_AVAILABLE: कम से कम एक कुंजी का अनुरोधित कुंजी तत्व उपलब्ध नहीं है [SWS_Crypto_00148]।
  • CRYPTO_E_KEY_READ_FAIL या CRYPTO_E_KEY_WRITE_FAIL: स्रोत तत्व को पढ़ना या गंतव्य तत्व को लिखना अनुमत नहीं है [SWS_Crypto_00148]।
  • CRYPTO_E_KEY_SIZE_MISMATCH: कुंजी तत्वों के आकार एक दूसरे के साथ संगत नहीं हैं [SWS_Crypto_00148]।
  • CRYPTO_E_KEY_EMPTY: स्रोत कुंजी तत्व प्रारंभ नहीं किया गया है [SWS_Crypto_00148]।
  • E_NOT_OK: अनुरोध सामान्यतः विफल रहा [SWS_Crypto_00148]।

यह उपयोग नोट AUTOSAR Classic R20-11 के विनिर्देश के आधार पर स्वचालित रूप से जनरेट किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन Crypto_KeyElementCopyPartial [SWS_Crypto_91015] 📄 PDF

Std_ReturnType Crypto_KeyElementCopyPartial (uint32 cryptoKeyId, uint32 keyElementId, uint32 keyElementSourceOffset, uint32 keyElementTargetOffset, uint32 keyElementCopyLength, uint32 targetCryptoKeyId, uint32 targetKeyElementId);

Service Crypto_KeyElementCopyPartial.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: a5ad7cce8b26 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

सिंक्रोनस फ़ंक्शन Crypto_KeyElementCopyPartial का उपयोग समान क्रिप्टो ड्राइवर के भीतर सोर्स कुंजी तत्व से डेस्टिनेशन कुंजी तत्व में डेटा की आंशिक कॉपी करने के लिए किया जाता है [SWS_Crypto_91015]। पैरामीटर keyElementSourceOffset और keyElementCopyLength के माध्यम से सोर्स तत्व का कॉपी किया जाने वाला भाग (cryptoKeyId, keyElementId) निर्धारित किया जाता है, जबकि keyElementTargetOffset डेस्टिनेशन तत्व (targetCryptoKeyId, targetKeyElementId) में प्रारंभ स्थिति निर्धारित करता है। त्रुटिहीन सत्यापन पर, ड्राइवर कॉपी ऑपरेशन को सिंक्रोनस रूप से निष्पादित करता है और E_OK लौटाता है [SWS_Crypto_00209]।

निष्पादन से पहले, ड्राइवर बफ़र और ड्राइवर स्थितियों को सत्यापित करता है:

  • यदि क्रिप्टो ड्राइवर इनिशियलाइज़ नहीं है और विकास नियंत्रण सक्रिय है, तो फ़ंक्शन DET को CRYPTO_E_UNINIT रिपोर्ट करता है और E_NOT_OK लौटाता है [SWS_Crypto_00205]।
  • यदि सोर्स कुंजी तत्व की कुल लंबाई keyElementSourceOffset + keyElementCopyLength से कम है, तो कॉल CRYPTO_E_KEY_SIZE_MISMATCH के साथ विफल हो जाता है [SWS_Crypto_00207]।
  • यदि डेस्टिनेशन कुंजी तत्व का अधिकतम बफ़र keyElementTargetOffset + keyElementCopyLength से कम स्थान प्रदान करता है, तो CRYPTO_E_KEY_SIZE_MISMATCH की भी रिपोर्ट की जाती है [SWS_Crypto_00208]।
  • अन्य निर्दिष्ट त्रुटि मानों में विशेष रूप से CRYPTO_E_BUSY (ड्राइवर ऑब्जेक्ट व्यस्त), CRYPTO_E_KEY_EMPTY (अन-इनिशियलाइज़्ड सोर्स तत्व), CRYPTO_E_KEY_NOT_AVAILABLE के साथ-साथ रीड या राइट एक्सेस त्रुटियां (CRYPTO_E_KEY_READ_FAIL, CRYPTO_E_KEY_WRITE_FAIL) शामिल हैं [SWS_Crypto_91015]।

फ़ंक्शन reentrant है, लेकिन इसे समान कुंजी-ID cryptoKeyId के लिए एक ही समय में कॉल नहीं किया जाना चाहिए [SWS_Crypto_91015]। यदि कोई कुंजी तत्व सीधे फ़्लैश मेमोरी में संग्रहीत है, तो सिंक्रोनस निष्पादन के कारण ध्यान देने योग्य समय विलंब हो सकता है [SWS_Crypto_91015]।

यह उपयोग नोट AUTOSAR विनिर्देश R20-11 के आधार पर स्वचालित रूप से जनरेट किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I2)

फ़ंक्शन Crypto_KeyCopy [SWS_Crypto_00155] 📄 PDF

Std_ReturnType Crypto_KeyCopy (uint32 cryptoKeyId, uint32 targetCryptoKeyId);

Copies a key with all its elements to another key in the same crypto driver. Note: If the actual key element is directly mapped to flash memory, there could be a bigger delay when calling this function (synchronous operation)

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 4fed74be6625 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

उपयोग

सिंक्रोनस फ़ंक्शन Crypto_KeyCopy समान Crypto ड्राइवर के भीतर किसी कुंजी को उसके सभी कुंजी तत्वों सहित डेस्टिनेशन कुंजी में कॉपी करता है [SWS_Crypto_00155]। असाइनमेंट सोर्स कुंजी के लिए इनपुट पैरामीटर cryptoKeyId और डेस्टिनेशन कुंजी के लिए targetCryptoKeyId के माध्यम से किया जाता है [SWS_Crypto_00155]। सफल कॉपी ऑपरेशन की पुष्टि E_OK के साथ की जाती है [SWS_Crypto_00155]।

समवर्तीता और रनटाइम व्यवहार

इंटरफ़ेस को reentrant डिज़ाइन किया गया है, लेकिन इसे समान cryptoKeyId के लिए एक ही समय में निष्पादित नहीं किया जाना चाहिए [SWS_Crypto_00155]। चूंकि निष्पादन सिंक्रोनस रूप से होता है, इसलिए सीधे फ्लैश मेमोरी में संग्रहीत कुंजी तत्वों के मामले में कॉल के दौरान ध्यान देने योग्य समय विलंब हो सकता है [SWS_Crypto_00155]।

त्रुटि प्रबंधन

त्रुटि के मामले में, फ़ंक्शन Std_ReturnType प्रकार के विशिष्ट रिटर्न मान प्रदान करता है [SWS_Crypto_00155]:

  • CRYPTO_E_BUSY: संबंधित Crypto Driver Object व्यस्त है [SWS_Crypto_00155]।
  • CRYPTO_E_KEY_NOT_AVAILABLE: अनुरोधित कुंजियों में से कम से कम एक उपलब्ध नहीं है [SWS_Crypto_00155]।
  • CRYPTO_E_KEY_READ_FAIL: सोर्स कुंजी तत्व को पढ़ना अनुमत नहीं है [SWS_Crypto_00155]।
  • CRYPTO_E_KEY_WRITE_FAIL: डेस्टिनेशन कुंजी तत्व में लिखना अनुमत नहीं है [SWS_Crypto_00155]।
  • CRYPTO_E_KEY_SIZE_MISMATCH: कुंजी तत्वों के आकार एक दूसरे के साथ संगत नहीं हैं [SWS_Crypto_00155]।
  • CRYPTO_E_KEY_EMPTY: सोर्स कुंजी का कुंजी तत्व इनिशियलाइज़ नहीं है [SWS_Crypto_00155]।
  • E_NOT_OK: अनुरोध का निष्पादन विफल रहा [SWS_Crypto_00155]।

यह उपयोग नोट विनिर्देश AUTOSAR CP R20-11 के आधार पर AI द्वारा जनरेट किया गया था।

फ़ंक्शन Crypto_KeyElementIdsGet [SWS_Crypto_00160] 📄 PDF

Std_ReturnType Crypto_KeyElementIdsGet (uint32 cryptoKeyId, uint32* keyElementIdsPtr, uint32* keyElementIdsLengthPtr);

Used to retrieve information which key elements are available in a given key.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 73fbfa8804b7 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

समकालिक फ़ंक्शन Crypto_KeyElementIdsGet इस बारे में जानकारी क्वेरी करने के लिए कार्य करता है कि किसी दी गई कुंजी में कौन से कुंजी तत्व उपलब्ध हैं [SWS_Crypto_00160]। इनपुट पैरामीटर cryptoKeyId के माध्यम से उस कुंजी का पहचानकर्ता पास किया जाता है, जिसके उपलब्ध तत्व ID निर्यात किए जाने हैं [SWS_Crypto_00160]। निर्धारित किए गए पहचानकर्ताओं को पॉइंटर keyElementIdsPtr द्वारा संदर्भित ऐरे में संग्रहीत किया जाता है [SWS_Crypto_00160]।

बफ़र आकार का प्रबंधन इनपुट और आउटपुट पैरामीटर keyElementIdsLengthPtr के माध्यम से किया जाता है: कॉल करते समय, इस पैरामीटर में बफ़र का प्रदान किया गया आकार keyElementIdsPtr होना चाहिए [SWS_Crypto_00160]। ऑपरेशन पूरा होने के बाद, मौजूद कुंजी तत्वों की वास्तविक संख्या वहाँ संग्रहीत की जाती है [SWS_Crypto_00160]।

रिटर्न मान के रूप में, सेवा सफल क्वेरी पर E_OK प्रदान करती है या यदि अनुरोध विफल हो गया है तो E_NOT_OK प्रदान करती है [SWS_Crypto_00160]। यदि संबंधित क्रिप्टो-ड्राइवर ऑब्जेक्ट कॉल के समय व्यस्त है, तो त्रुटि कोड CRYPTO_E_BUSY लौटाया जाता है [SWS_Crypto_00160]।

समवर्तीता के संबंध में, फ़ंक्शन रीएंट्रेंट है, लेकिन इसे समान cryptoKeyId के लिए एक साथ कॉल नहीं किया जाना चाहिए [SWS_Crypto_00160]। डिक्लेरेशन हेडर Crypto.h के माध्यम से उपलब्ध है [SWS_Crypto_00160]।

यह पाठ AUTOSAR विनिर्देश के आधार पर एक AI द्वारा तैयार किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन Crypto_RandomSeed [SWS_Crypto_91013] 📄 PDF

Std_ReturnType Crypto_RandomSeed (uint32 cryptoKeyId, const uint8* seedPtr, uint32 seedLength);

This function generates the internal seed state using the pro vided entropy source. Furthermore, this function can be used to update the seed state with new entropy

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 7ee33749b38a उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

समकालिक फ़ंक्शन Crypto_RandomSeed (Service ID 0x0d) [SWS_Crypto_91013] के अनुसार प्रदान किए गए एंट्रॉपी स्रोत का उपयोग करके किसी कुंजी की आंतरिक सीड स्थिति को उत्पन्न करने और अपडेट करने का कार्य करता है। फ़ंक्शन डिक्लेरेशन हेडर फ़ाइल Crypto.h में शामिल है।

उपयोग और कॉल पैरामीटर

[SWS_Crypto_91013] के अनुसार, प्रारंभिक जनरेशन के अलावा, फ़ंक्शन का उपयोग नई एंट्रॉपी के साथ सीड स्थिति को अपडेट करने के लिए भी किया जा सकता है। समकालिक कॉल के लिए तीन इनपुट पैरामीटर की आवश्यकता होती है:

  • cryptoKeyId: उस कुंजी का पहचानकर्ता पास करता है, जिसके लिए एक नया सीड उत्पन्न किया जाना है।
  • seedPtr: सीड को फीड करने के लिए डेटा वाले मेमोरी क्षेत्र का एक पॉइंटर रखता है।
  • seedLength: पास किए गए सीड डेटा की लंबाई बाइट्स में परिभाषित करता है।

रिटर्न मान और त्रुटि प्रबंधन

रिटर्न मान के रूप में, Crypto_RandomSeed [SWS_Crypto_91013] के अनुसार Std_ReturnType प्रकार की स्थिति रिपोर्ट करता है:

  • E_OK: अनुरोध सफलतापूर्वक निष्पादित किया गया।
  • E_NOT_OK: अनुरोध विफल रहा।
  • CRYPTO_E_KEY_NOT_VALID: निष्पादन विफल हो जाता है, क्योंकि cryptoKeyId द्वारा पहचानी गई कुंजी की कुंजी स्थिति “invalid” स्थिति में है।

समवर्तीता और प्रतिबंध

[SWS_Crypto_91013] के अनुसार फ़ंक्शन को रीएंट्रेंट के रूप में निर्दिष्ट किया गया है, लेकिन स्पष्ट रूप से समान cryptoKeyId के लिए नहीं। इसलिए समान कुंजी के लिए समानांतर कॉल्स को कॉलर साइड पर रोका जाना चाहिए।

यह पाठ एक AI द्वारा उत्पन्न किया गया था और विशेष रूप से पेलोड के विनिर्देश डेटा पर आधारित है।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन Crypto_KeyGenerate [SWS_Crypto_91007] 📄 PDF

Std_ReturnType Crypto_KeyGenerate (uint32 cryptoKeyId);

Generates new key material store it in the key identified by crypto Key Id.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 9465afa4791c उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

उपयोग

हेडर फ़ाइल Crypto.h के माध्यम से प्रदान किया गया फ़ंक्शन Crypto_KeyGenerate नई कुंजी सामग्री उत्पन्न करता है और पहचानकर्ता cryptoKeyId के माध्यम से संबोधित कुंजी को अपडेट करता है [SWS_Crypto_91007]। फ़ंक्शन पूरी तरह से समकालिक रूप से काम करता है और Service ID 0x07 के तहत परिभाषित है [SWS_Crypto_91007]। कुंजी पहचानकर्ता के अलावा कोई अन्य पैरामीटर मौजूद नहीं है [SWS_Crypto_91007]।

समवर्तीता और प्रतिबंध

समवर्तीता के संबंध में, Crypto_KeyGenerate को रीएंट्रेंट के रूप में निर्दिष्ट किया गया है, लेकिन स्पष्ट रूप से इस प्रतिबंध के साथ कि यह समान cryptoKeyId के लिए लागू नहीं होता है [SWS_Crypto_91007]। यदि समान कुंजी के लिए कई अनुरोध किए जाते हैं, तो ड्राइवर संघर्षों से बचने के लिए उन्हें कॉलर साइड पर सिंक्रोनाइज़ किया जाना चाहिए।

रिटर्न मान और त्रुटि प्रबंधन

मूल प्रकार Std_ReturnType के रिटर्न मान के माध्यम से, कॉलर को ऑपरेशन की सफलता या विशिष्ट त्रुटि कारणों के बारे में विस्तृत फीडबैक प्राप्त होता है [SWS_Crypto_91007]:

  • E_OK: कुंजी निर्माण सफलतापूर्वक निष्पादित किया गया [SWS_Crypto_91007]।
  • CRYPTO_E_BUSY: अनुरोध विफल रहा, क्योंकि संबंधित Crypto Driver Object वर्तमान में व्यस्त है [SWS_Crypto_91007]।
  • CRYPTO_E_KEY_EMPTY: निर्माण विफल रहा, क्योंकि एक आवश्यक स्रोत कुंजी तत्व अनइनिशियलाइज़्ड है [SWS_Crypto_91007]।
  • CRYPTO_E_KEY_NOT_VALID: ऑपरेशन विफल रहा, क्योंकि cryptoKeyId द्वारा संदर्भित कुंजी की कुंजी स्थिति अमान्य के रूप में चिह्नित है [SWS_Crypto_91007]।
  • E_NOT_OK: कुंजी निर्माण का अनुरोध अन्य कारणों से विफल हो गया है [SWS_Crypto_91007]।

यह उपयोग नोट AUTOSAR Classic R20-11 के विनिर्देश के आधार पर स्वचालित रूप से जनरेट किया गया था।

फ़ंक्शन Crypto_KeyDerive [SWS_Crypto_91008] 📄 PDF

Std_ReturnType Crypto_KeyDerive (uint32 cryptoKeyId, uint32 targetCryptoKeyId);

Derives a new key by using the key elements in the given key identified by the crypto Key Id. The given key contains the key elements for the password, salt. The derived key is stored in the key element with the id 1 of the key identified by target Crypto Key Id. The number of iterations is given in the key element CRYPTO_ KE_ KEYDERIVATION_ ITERATIONS.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 5847568b736a उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

समकालिक फ़ंक्शन Crypto_KeyDerive किसी स्रोत कुंजी (cryptoKeyId) के कुंजी तत्वों से एक नई क्रिप्टोग्राफ़िक कुंजी प्राप्त करता है और इसे गंतव्य कुंजी (targetCryptoKeyId) के ID 1 वाले कुंजी तत्व में संग्रहीत करता है [SWS_Crypto_91008]। स्रोत कुंजी में पासवर्ड और साल्ट के लिए आवश्यक कुंजी तत्व होने चाहिए; पुनरावृत्तियों की संख्या कुंजी तत्व CRYPTO_KE_KEYDERIVATION_ITERATIONS द्वारा निर्दिष्ट की जाती है [SWS_Crypto_91008]।

कॉल और समवर्तीता

इंटरफ़ेस रीएंट्रेंट है, लेकिन इसे समान cryptoKeyId के लिए एक साथ कॉल नहीं किया जाना चाहिए [SWS_Crypto_91008]। इसलिए कॉलर्स को यह सुनिश्चित करना चाहिए कि समानांतर व्युत्पत्ति प्रक्रियाएं विभिन्न स्रोत कुंजियों पर संचालित हों।

रिटर्न मान और त्रुटि प्रबंधन

फ़ंक्शन Std_ReturnType प्रकार के परिभाषित रिटर्न मानों के माध्यम से परिणाम का संकेत देता है [SWS_Crypto_91008]:

  • E_OK: कुंजी व्युत्पत्ति सफलतापूर्वक की गई।
  • E_NOT_OK: व्युत्पत्ति विफल रही। यदि पैरामीटर targetCryptoKeyId मान्य सीमा से बाहर है, तो फ़ंक्शन विकास पहचान सक्षम होने पर CRYPTO_E_PARAM_HANDLE की रिपोर्ट DET को भी देता है [SWS_Crypto_00180]।
  • CRYPTO_E_BUSY: संबंधित Crypto Driver Object व्यस्त है [SWS_Crypto_91008]।
  • CRYPTO_E_KEY_EMPTY: एक आवश्यक स्रोत कुंजी तत्व इनिशियलाइज़ नहीं है [SWS_Crypto_91008]।
  • CRYPTO_E_KEY_NOT_VALID: cryptoKeyId द्वारा संदर्भित कुंजी की स्थिति अमान्य है [SWS_Crypto_91008]।

यह उपयोग नोट विनिर्देश के आधार पर स्वचालित रूप से जनरेट किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन Crypto_KeyExchangeCalcPubVal [SWS_Crypto_91009] 📄 PDF

Std_ReturnType Crypto_KeyExchangeCalcPubVal (uint32 cryptoKeyId, uint8* publicValuePtr, uint32* publicValueLengthPtr);

Calculates the public value for the key exchange a nd stores the public key in the memory location pointed by the public value pointer.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: c27ddd0a9e75 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

उपयोग

समकालिक फ़ंक्शन Crypto_KeyExchangeCalcPubVal कुंजी विनिमय प्रोटोकॉल के लिए सार्वजनिक मान की गणना करता है और इसे publicValuePtr के भंडारण स्थान में संग्रहीत करता है ([SWS_Crypto_91009])। कॉलर cryptoKeyId के माध्यम से उस कुंजी का पहचानकर्ता पास करता है जिसे प्रोटोकॉल के लिए उपयोग किया जाना है। इनपुट और आउटपुट पैरामीटर publicValueLengthPtr के माध्यम से कॉल के समय प्रदान की गई मेमोरी का बफ़र आकार पास किया जाना चाहिए; निष्पादन पूरा होने के बाद, गणना किए गए सार्वजनिक मान की वास्तविक लंबाई वहाँ संग्रहीत की जाती है ([SWS_Crypto_91009])।

त्रुटि प्रबंधन और रिटर्न मान

सफल निष्पादन पर फ़ंक्शन E_OK लौटाता है। यदि कोई त्रुटि होती है, तो E_NOT_OK या एक विशिष्ट त्रुटि कोड लौटाया जाता है ([SWS_Crypto_91009]):

  • CRYPTO_E_BUSY: अनुरोध विफल हो जाता है, क्योंकि Crypto Driver Object व्यस्त है।
  • CRYPTO_E_KEY_EMPTY: अनुरोध विफल हो जाता है, क्योंकि स्रोत कुंजी तत्व इनिशियलाइज़ नहीं है।
  • CRYPTO_E_KEY_NOT_VALID: अनुरोध विफल हो जाता है, क्योंकि cryptoKeyId के माध्यम से संदर्भित कुंजी की स्थिति अमान्य है।

कन्करेंसी और सिस्टम एकीकरण

[SWS_Crypto_91009] के अनुसार फ़ंक्शन रीएंट्रेंट है, लेकिन समान cryptoKeyId के लिए नहीं। यदि क्रिप्टो-ड्राइवर को Crypto_KeyExchangeCalcPubVal जैसे आंतरिक उद्देश्यों के लिए रैंडम नंबर जनरेटर (RNG) की सेवाओं की आवश्यकता होती है, तो पहला Crypto Driver Object (ऑब्जेक्ट नंबर 0) इस उद्देश्य के लिए कॉन्फ़िगर किया जाना चाहिए ([SWS_Crypto_00224])।

यह पाठ एक AI द्वारा उत्पन्न किया गया था। सभी विवरण AUTOSAR Classic R20-11 विनिर्देश पर आधारित हैं।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन Crypto_KeyExchangeCalcSecret [SWS_Crypto_91010] 📄 PDF

Std_ReturnType Crypto_KeyExchangeCalcSecret (uint32 cryptoKeyId, const uint8* partnerPublicValuePtr, uint32 partnerPublicValueLength);

Calculates the shared secret key for the key exchange with the key material of the key identified by the crypto Key Id and the partner public key. The shared secret key is stored as a key element in the same key.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: c3912e0f8927 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

समकालिक फ़ंक्शन Crypto_KeyExchangeCalcSecret कुंजी विनिमय प्रोटोकॉल के लिए एक साझा रहस्य (Shared Secret Key) की गणना करने के लिए कार्य करता है [SWS_Crypto_91010]। यह cryptoKeyId के माध्यम से निर्दिष्ट कुंजी की कुंजी सामग्री को partnerPublicValuePtr के माध्यम से पास किए गए भागीदार के सार्वजनिक मान के साथ संसाधित करता है, जिसकी बाइट संख्या partnerPublicValueLength के माध्यम से निर्दिष्ट की जाती है [SWS_Crypto_91010]। गणना किया गया साझा रहस्य सीधे उसी कुंजी के भीतर एक कुंजी तत्व के रूप में संग्रहीत किया जाता है [SWS_Crypto_91010]।

रिटर्न मान के रूप में, फ़ंक्शन Std_ReturnType के माध्यम से स्थिति प्रदान करता है [SWS_Crypto_91010]:

  • E_OK: रहस्य की गणना और भंडारण सफलतापूर्वक पूरा हो गया [SWS_Crypto_91010]।
  • E_NOT_OK: अनुरोध विफल रहा [SWS_Crypto_91010]।
  • CRYPTO_E_BUSY: निष्पादन विफल रहा, क्योंकि संबंधित Crypto Driver Object व्यस्त है [SWS_Crypto_91010]।
  • CRYPTO_E_KEY_EMPTY: स्रोत कुंजी तत्व अप्रारंभीकृत है [SWS_Crypto_91010]।
  • CRYPTO_E_KEY_NOT_VALID: cryptoKeyId द्वारा संदर्भित कुंजी की स्थिति अमान्य है [SWS_Crypto_91010]।

इंटरफ़ेस रीएंट्रेंट रूप से कार्यान्वित किया गया है, लेकिन इसे समान cryptoKeyId के लिए समवर्ती रूप से कॉल नहीं किया जाना चाहिए [SWS_Crypto_91010]। त्रुटि स्थितियों को रोकने के लिए, कॉलर्स को इसलिए यह सुनिश्चित करना चाहिए कि समान कुंजी ID के साथ समकालिक कॉल्स से बचा जाए और संदर्भित कुंजी सामग्री पहले से इनिशियलाइज़ की गई हो तथा मान्य स्थिति में हो [SWS_Crypto_91010]।

यह उपयोग नोट स्वचालित रूप से SWS_Crypto_91010 के विनिर्देश के आधार पर उत्पन्न किया गया था।

फ़ंक्शन Crypto_MainFunction [SWS_Crypto_91012] 📄 PDF

void Crypto_MainFunction (void);

If asynchronous job processing is configured and there are job queues, the function is called cyclically to process queued jobs. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CryptoDriver

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 0801a980dea9 उद्गम खुले प्रश्न (3)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

फ़ंक्शन Crypto_MainFunction क्रिप्टो-ड्राइवर की कार्य कतारों में कतारबद्ध क्रिप्टोग्राफ़िक कार्यों के चक्रीय प्रसंस्करण के लिए कार्य करता है [SWS_Crypto_91012]। इसके उपयोग के लिए शर्त यह है कि मॉड्यूल में असमकालिक कार्य प्रसंस्करण कॉन्फ़िगर किया गया हो और संबंधित कार्य कतारें मौजूद हों [SWS_Crypto_91012]।

कॉल और सिमेंटिक्स

फ़ंक्शन का हस्ताक्षर void Crypto_MainFunction(void) है और इसे Service ID 0x0c के साथ निर्दिष्ट किया गया है [SWS_Crypto_91012]। यह कोई इनपुट पैरामीटर स्वीकार नहीं करता है और कोई रिटर्न मान नहीं देता है। इंटरफ़ेस हेडर SchM_Crypto.h के माध्यम से प्रदान किया जाता है [SWS_Crypto_91012]। यह व्याख्या की अनुमति देता है कि चक्रीय कॉल ऑपरेटिंग सिस्टम के आवधिक टास्क के संदर्भ में BSW-शेड्यूलर (Schedule Manager) द्वारा योजनाबद्ध तरीके से ट्रिगर किया जाता है।

समवर्तीता और प्रतिबंध

कॉल असमकालिक कार्य कतारों के कॉन्फ़िगरेशन से सख्ती से बंधा हुआ है [SWS_Crypto_91012]। चूँकि विनिर्देश Crypto_MainFunction के लिए कोई रीएंट्रेंसी नहीं दिखाता है, इसलिए फ़ंक्शन को गैर-रीएंट्रेंट के रूप में माना जाना चाहिए; इसलिए एकाधिक थ्रेड्स या टास्क से समानांतर कॉल्स से बचा जाना चाहिए। प्रश्न Q-038d384305c8c5c3 (खुला)

त्रुटि प्रबंधन

विनिर्देश में इस फ़ंक्शन के लिए कोई विशिष्ट त्रुटि कोड या DET प्रविष्टियां दर्ज नहीं की गई हैं [SWS_Crypto_91012]। चूँकि फ़ंक्शन कोई रिटर्न मान प्रदान नहीं करता है, इसलिए असमकालिक प्रसंस्करण के दौरान कोई भी त्रुटि संभवतः स्थिति प्रश्नों के माध्यम से या संबंधित कार्यों के फीडबैक चैनलों के माध्यम से उच्च परतों तक पहुँचाई जाती है। प्रश्न (खुला)

यह उपयोग संबंधी निर्देश AUTOSAR CP R20-11 विनिर्देश के आधार पर एक AI द्वारा जनरेट किया गया था।

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

Record
AUTOSAR/AP/record/CP_MOD_Crypto
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Crypto@rel:R20-11#a1fcd523
Content hash
a1fcd523
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CryptoDriver.pdf#nameddest=SWS_Crypto_91000

विषय मानचित्र

विवरण दृश्य

रूपरेखा में कोई प्रविष्टि चुनें।

आरंभीकरण और स्थिति

Crypto_GetVersionInfo फ़ंक्शन

Returns the version information of this module.

void Crypto_GetVersionInfo (Std_VersionInfoType* versioninfo);
Crypto_Init फ़ंक्शन

Initializes the Crypto Driver.

void Crypto_Init (const Crypto_ConfigType* configPtr);

सेवाएँ · KeyElement…

Crypto_KeyElementCopy फ़ंक्शन

Service Crypto_KeyElementCopy.

Std_ReturnType Crypto_KeyElementCopy (uint32 cryptoKeyId, uint32 keyElementId, uint32 targetCryptoKeyId, uint32 targetKeyElementId);
Crypto_KeyElementCopyPartial फ़ंक्शन

Service Crypto_KeyElementCopyPartial.

Std_ReturnType Crypto_KeyElementCopyPartial (uint32 cryptoKeyId, uint32 keyElementId, uint32 keyElementSourceOffset, uint32 keyElementTargetOffset, uint32 keyElementCopyLength, uint32 targetCryptoKeyId, uint32 targetKeyElementId);
Crypto_KeyElementGet फ़ंक्शन

This interface shall be used to get a key element of the key identified by the crypto

Std_ReturnType Crypto_KeyElementGet (uint32 cryptoKeyId, uint32 keyElementId, uint8* resultPtr, uint32* resultLengthPtr);
Crypto_KeyElementIdsGet फ़ंक्शन

Used to retrieve information which key elements are available in a given key.

Std_ReturnType Crypto_KeyElementIdsGet (uint32 cryptoKeyId, uint32* keyElementIdsPtr, uint32* keyElementIdsLengthPtr);
Crypto_KeyElementSet फ़ंक्शन

Sets the given key element bytes to the key identified by crypto Key Id.

Std_ReturnType Crypto_KeyElementSet (uint32 cryptoKeyId, uint32 keyElementId, const uint8* keyPtr, uint32 keyLength);

सेवाएँ · Key…

Crypto_KeyCopy फ़ंक्शन

Copies a key with all its elements to another key in the same crypto driver. Note: If the actual key element is directly mapped to flash memory, there could be a bigger delay when calling this function (synchronous operation)

Std_ReturnType Crypto_KeyCopy (uint32 cryptoKeyId, uint32 targetCryptoKeyId);
Crypto_KeyDerive फ़ंक्शन

Derives a new key by using the key elements in the given key identified by the crypto Key Id. The given key contains the key elements for the password, salt. The derived key is stored in the key element with the id 1 of the key identified by target Crypto Key Id. The number of iterations is given in the key element CRYPTO_ KE_ KEYDERIVATION_ ITERATIONS.

Std_ReturnType Crypto_KeyDerive (uint32 cryptoKeyId, uint32 targetCryptoKeyId);
Crypto_KeyExchangeCalcPubVal फ़ंक्शन

Calculates the public value for the key exchange a nd stores the public key in the memory location pointed by the public value pointer.

Std_ReturnType Crypto_KeyExchangeCalcPubVal (uint32 cryptoKeyId, uint8* publicValuePtr, uint32* publicValueLengthPtr);
Crypto_KeyExchangeCalcSecret फ़ंक्शन

Calculates the shared secret key for the key exchange with the key material of the key identified by the crypto Key Id and the partner public key. The shared secret key is stored as a key element in the same key.

Std_ReturnType Crypto_KeyExchangeCalcSecret (uint32 cryptoKeyId, const uint8* partnerPublicValuePtr, uint32 partnerPublicValueLength);
Crypto_KeyGenerate फ़ंक्शन

Generates new key material store it in the key identified by crypto Key Id.

Std_ReturnType Crypto_KeyGenerate (uint32 cryptoKeyId);
Crypto_KeyGetStatus फ़ंक्शन

Returns the key state of the key identified by crypto Key Id.

Std_ReturnType Crypto_KeyGetStatus (uint32 cryptoKeyId, Crypto_KeyStatusType* keyStatusPtr);
Crypto_KeySetInvalid फ़ंक्शन

Sets invalid for the status of the key identifi ed by crypto Key Id.

Std_ReturnType Crypto_KeySetInvalid (uint32 cryptoKeyId);
Crypto_KeySetValid फ़ंक्शन

Sets the key state of the key identified by crypto Key Id to valid.

Std_ReturnType Crypto_KeySetValid (uint32 cryptoKeyId);

सेवाएँ · अन्य

Crypto_CancelJob फ़ंक्शन

This interface removes the provided job from the queue and cancels the processing of the job if possible.

Std_ReturnType Crypto_CancelJob (uint32 objectId, Crypto_JobType* job);
Crypto_ProcessJob फ़ंक्शन

Service Crypto_ProcessJob.

Std_ReturnType Crypto_ProcessJob (uint32 objectId, Crypto_JobType* job);
Crypto_RandomSeed फ़ंक्शन

This function generates the internal seed state using the pro vided entropy source. Furthermore, this function can be used to update the seed state with new entropy

Std_ReturnType Crypto_RandomSeed (uint32 cryptoKeyId, const uint8* seedPtr, uint32 seedLength);

चक्रीय

Crypto_MainFunction फ़ंक्शन

If asynchronous job processing is configured and there are job queues, the function is called cyclically to process queued jobs. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CryptoDriver

void Crypto_MainFunction (void);

टाइप

Crypto_ConfigType टाइप

Configuration data structure of Cry If module