Crypto Driver (Crypto)
Low-level driver executing cryptographic primitives on hardware security modules (HSM) or software libraries.
Funktionen — Übersicht
void Crypto_Init (const Crypto_ConfigType* configPtr);Initializes the Crypto Driver.void Crypto_GetVersionInfo (Std_VersionInfoType* versioninfo);Returns the version information of this module.Std_ReturnType Crypto_ProcessJob (uint32 objectId, Crypto_JobType* job);Service Crypto_ProcessJob.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.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.Std_ReturnType Crypto_KeySetValid (uint32 cryptoKeyId);Sets the key state of the key identified by crypto Key Id to valid.Std_ReturnType Crypto_KeySetInvalid (uint32 cryptoKeyId);Sets invalid for the status of the key identifi ed by crypto Key Id.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 cryptoStd_ReturnType Crypto_KeyGetStatus (uint32 cryptoKeyId, Crypto_KeyStatusType* keyStatusPtr);Returns the key state of the key identified by crypto Key Id.Std_ReturnType Crypto_KeyElementCopy (uint32 cryptoKeyId, uint32 keyElementId, uint32 targetCryptoKeyId, uint32 targetKeyElementId);Service Crypto_KeyElementCopy.Std_ReturnType Crypto_KeyElementCopyPartial (uint32 cryptoKeyId, uint32 keyElementId, uint32 keyElementSourceOffset, uint32 keyElementTargetOffset, uint32 keyElementCopyLength, uint32 targetCryptoKeyId, uint32 targetKeyElementId);Service Crypto_KeyElementCopyPartial.Std_ReturnType Crypto_KeyCopy (uint32 cryptoKeyId, uint32 targetCryptoKeyId);Copies a key with all its elements to another key in the same crypto driver.Std_ReturnType Crypto_KeyElementIdsGet (uint32 cryptoKeyId, uint32* keyElementIdsPtr, uint32* keyElementIdsLengthPtr);Used to retrieve information which key elements are available in a given key.Std_ReturnType Crypto_RandomSeed (uint32 cryptoKeyId, const uint8* seedPtr, uint32 seedLength);This function generates the internal seed state using the pro vided entropy source.Std_ReturnType Crypto_KeyGenerate (uint32 cryptoKeyId);Generates new key material store it in the key identified by crypto Key Id.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.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...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...void Crypto_MainFunction (void);If asynchronous job processing is configured and there are job queues, the function is called cyclically to process queued jobs.
Typen — Übersicht
struct Crypto_ConfigTypeConfiguration data structure of Cry If module
Funktionen & Typen — Detailansicht
फ़ंक्शन Crypto_Init [SWS_Crypto_91000] 📄 PDF
void Crypto_Init (const Crypto_ConfigType* configPtr);
Initializes the Crypto Driver.
फ़ंक्शन 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_GetVersionInfo [SWS_Crypto_91001] 📄 PDF
void Crypto_GetVersionInfo (Std_VersionInfoType* versioninfo);
Returns the version information of this module.
फ़ंक्शन Crypto_ProcessJob [SWS_Crypto_91003] 📄 PDF
Std_ReturnType Crypto_ProcessJob (uint32 objectId, Crypto_JobType* job);
Service Crypto_ProcessJob.
फ़ंक्शन 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.
उपयोग
समकालिक फ़ंक्शन 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.
समकालिक फ़ंक्शन 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.
सिंक्रोनस फ़ंक्शन 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.
उपयोग और सिमेंटिक्स
सिंक्रोनस फ़ंक्शन 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
समकालिक और रीएंट्रेंट फ़ंक्शन 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.
समकालिक फ़ंक्शन 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.
समकालिक फ़ंक्शन 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.
सिंक्रोनस फ़ंक्शन 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)
उपयोग
सिंक्रोनस फ़ंक्शन 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.
समकालिक फ़ंक्शन 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
समकालिक फ़ंक्शन 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.
उपयोग
हेडर फ़ाइल 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.
समकालिक फ़ंक्शन 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.
उपयोग
समकालिक फ़ंक्शन 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.
समकालिक फ़ंक्शन 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
फ़ंक्शन 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 द्वारा जनरेट किया गया था।
टाइप Crypto_ConfigType [SWS_Crypto_91016] 📄 PDF
Configuration data structure of Cry If module
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
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल