Key Manager (KeyM)
Manages lifecycle, storage, and distribution of cryptographic keys and certificates.
Funktionen — Übersicht
void KeyM_Init (const KeyM_ConfigType* ConfigPtr);This function initializes the key management module.void KeyM_Deinit (void);This function resets the key management module to the uninitialized state.void KeyM_GetVersionInfo (Std_VersionInfoType* VersionInfo);Provides the version information of this module.Std_ReturnType KeyM_Start (KeyM_StartType StartType, const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);This function is optional and only used if the configuration item Key MCrypto Key Start Finalize Function Enabled is set to true.Std_ReturnType KeyM_Prepare (const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);This function is used to prepare a key update operation.Std_ReturnType KeyM_Finalize (const uint8* RequestDataPtr, uint16 RequestDataLength, uint8* ResponseDataPtr, uint16 ResponseMaxDataLength);The function is used to finalize key update operations.Std_ReturnType KeyM_SetCertificate (KeyM_CertificateIdType CertId, const KeyM_CertDataType* CertificateDataPtr);This function provides the certificate data to the key managem ent module to temporarily store the certificate.Std_ReturnType KeyM_GetCertificate (KeyM_CertificateIdType CertId, KeyM_CertDataType* CertificateDataPtr);This function provides the certificate dataStd_ReturnType KeyM_VerifyCertificates (KeyM_CertificateIdType CertId, KeyM_CertificateIdType CertUpperId);This function verifies two certificates that are stored and parsed internally against each other.Std_ReturnType KeyM_VerifyCertificate (KeyM_CertificateIdType CertId);Service KeyM_VerifyCertificate.Std_ReturnType KeyM_VerifyCertificateChain (KeyM_CertificateIdType CertId, const KeyM_CertDataType[] certChainData, uint8 NumberOfCertificates);Service KeyM_VerifyCertificateChain.Std_ReturnType KeyM_CertElementGet (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, uint8* CertElementData, uint32* CertElementDataLength);Service KeyM_CertElementGet.Std_ReturnType KeyM_CertificateElementGetByIndex (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, uint32 Index, uint8* CertElementDataPtr, uint32* CertElementDataLengthPtr);Service KeyM_CertificateElementGetByIndex.Std_ReturnType KeyM_CertificateElementGetCount (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, uint16* CountPtr);This function provides the total number of data elements that a re available for the specified certificate element.Std_ReturnType KeyM_CertElementGetFirst (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, KeyM_CertElementIteratorType* CertElementIterator, uint8* CertElementData, uint32* CertElementDataLength);Service KeyM_CertElementGetFirst.Std_ReturnType KeyM_CertElementGetNext (KeyM_CertElementIteratorType* CertElementIterator, uint8* CertElementData, uint32* CertElementDataLength);Service KeyM_CertElementGetNext.Std_ReturnType KeyM_CertGetStatus (KeyM_CertificateIdType CertId, KeyM_CertificateStatusType* Status);This function provides the sta tus of a certificate.void KeyM_MainFunction (void);Function is called periodically according the specified time interval.void KeyM_MainBackgroundFunction (void);Function is called from a pre - emptive operating system when no other task operation is needed.Std_ReturnType KeyM_KH_Start (KeyM_StartType StartType, const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);If Key MCrypto Key Start Finalize Function Enabled and Key MCrypto KeyStd_ReturnType KeyM_KH_Prepare (const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseDataPtr, uint16* ResponseDataLength);If the configuration parameters Key MCrypto Key Prepare Function Enabled and Key MCrypto Key Handler Prepare Enabled are both...Std_ReturnType KeyM_KH_Finalize (const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);If Key MCrypto Key Start Finalize Function Enabled and Key MCrypto Key Handler Start Finalize Enabled is set to TRUE, this...void KeyM_CryptoKeyUpdateCallbackNotification (KeyM_ResultType Result, uint16 ResultDataLength, const uint8* ResultDataPtr);Notifies the application that a crypto key update operation has been finished.void KeyM_CryptoKeyFinalizeCallbackNotification (KeyM_ResultType Result, uint16 ResultDataLength, const uint8* ResultDataPtr);Service KeyM_CryptoKeyFinalizeCallbackNotification.void KeyM_CryptoKeyVerifyCallbackNotification (KeyM_ResultType Result, uint32 KeyId, uint16 ResultDataLength, const uint8* ResultDataPtr);Notifies the application that a crypto key verify operation has been finished.void KeyM_ServiceCertificateCallbackNotification (KeyM_CertificateIdType CertId, KeyM_ResultType Result, uint16 ResultDataLength, const uint8* ResultDataPtr);Notifies the application that the certificate service operation has been finished.Std_ReturnType KeyM_CertificateVerifyCallbackNotification (KeyM_CertificateIdType CertId, KeyM_CertificateStatusType Result);Notifies the application that a certificate verification has been finished.
Typen — Übersicht
struct KeyM_ConfigTypeThis structure is the base type to initialize the Key Manager module.KeyM_KH_UpdateOperationTypeSpecifies the type of key handler update operation that was performed in the callback.struct KeyM_CertElementIteratorTypeThis structure is used to iterate through a number of elements of a certificate.KeyM_CryptoKeyIdTypeCrypto key handle.KeyM_CertDataPointerTypeByte - pointer to the data of the certificateKeyM_StartTypeThis type specifies in which mode the key operation will start.KeyM_CertElementIdTypeCertificate Element handle.KeyM_CertificateIdTypeCertificate handle.KeyM_ServiceCertificateTypeThis type specifies the requested service operation and what information is provided with this function.MaxArray long enough to store the key or certificate name.enum KeyM_CertificateStatusTypeType KeyM_CertificateStatusType.KeyM_CertificateElementTypeArray long enough to store dataKeyM_CryptoKeyDataTypeByte - pointer to the input or output dataenum KeyM_ResultTypeSpecifies the result type of an asynchronous key management fu nction.struct KeyM_CertDataTypeThis structure is used to exchange certificate data through interface functions.
Funktionen & Typen — Detailansicht
دالة KeyM_Init [SWS_KeyM_00043] 📄 PDF
void KeyM_Init (const KeyM_ConfigType* ConfigPtr);
This function initializes the key management module.
تُستخدم الدالة KeyM_Init لتهيئة الوحدة النمطية لإدارة المفاتيح ([SWS_KeyM_00043]). يتم الاستدعاء بشكل متزامن ومحدد على أنه غير قابل لإعادة الدخول ([SWS_KeyM_00043]). يُتوقع تمرير ConfigPtr كمعلمة وحيدة، ويمثل مؤشرًا إلى مجموعة بيانات التهيئة لـ VARIANT-POST-BUILD؛ وليست للدالة قيمة إرجاع ([SWS_KeyM_00043]).
فيما يتعلق بالتفاعل مع دوال الوحدة النمطية الأخرى، تمثل KeyM_Init شرطًا مسبقًا إلزاميًا: عند تفعيل اكتشاف التطوير، تتحقق جميع الدوال الأخرى لـ Key Manager مما إذا كانت الوحدة النمطية قد تمت تهيئتها مسبقًا عبر KeyM_Init ولم يتم إلغاء تهيئتها بعد بواسطة KeyM_Deinit ([SWS_KeyM_00144]). وإذا تم استدعاء دالة وحدة نمطية في حالة غير مهيأة، يبلغ Key Manager عن خطأ التطوير KEYM_E_UNINIT ([SWS_KeyM_00144]).
بما أن KeyM_Init محددة على أنها غير قابلة لإعادة الدخول ([SWS_KeyM_00043])، فلا يجوز تنفيذ الدالة في مرحلة تهيئة النظام إلا لمرة واحدة فقط ومع استبعاد الاستدعاءات المتزامنة. تكون الوحدة النمطية متاحة بعد التنفيذ الناجح عبر ملف الترويسة KeyM.h ([SWS_KeyM_00043]).
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى حمولة مواصفات AUTOSAR.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة KeyM_Deinit [SWS_KeyM_00047] 📄 PDF
void KeyM_Deinit (void);
This function resets the key management module to the uninitialized state.
تُستخدم الدالة KeyM_Deinit لإعادة تعيين الوحدة Key Manager إلى الحالة غير المهيأة ([SWS_KeyM_00047]).
الاستخدام وسياق الاستدعاء
يتم استدعاء KeyM_Deinit بشكل متزامن وهو محدد بأنه غير قابل لإعادة الدخول (Non Reentrant). تمتلك الدالة معرّف الخدمة 0x02، ولا تقبل أي معاملات ولا تُرجع أي قيمة إرجاع ([SWS_KeyM_00047]).
التزامن والتفاعل
بسبب عدم قابلية إعادة الدخول، لا يجوز استدعاء KeyM_Deinit بالتزامن مع نفسها أو بما يتعارض مع العمليات الجارية. بعد تنفيذ إلغاء التهيئة هذا، تكون الوحدة في الحالة غير المهيأة. وفي حال تفعيل أخطاء التطوير (Development Errors)، يتحقق Key Manager عند كل استدعاء لاحق للدالة مما إذا كانت الوحدة قد تمت تهيئتها مسبقًا عبر KeyM_Init() ولم يتم إلغاء تهيئتها بعد بواسطة KeyM_Deinit()؛ وإلا فسيتم الإبلاغ عن خطأ التطوير KEYM_E_UNINIT ([SWS_KeyM_00144]).
تم إنشاء ملاحظة الاستخدام هذه بصورة آلية بناءً على مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة KeyM_GetVersionInfo [SWS_KeyM_00049] 📄 PDF
void KeyM_GetVersionInfo (Std_VersionInfoType* VersionInfo);
Provides the version information of this module.
دالة KeyM_Start [SWS_KeyM_00050] 📄 PDF
Std_ReturnType KeyM_Start (KeyM_StartType StartType, const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);
This function is optional and only used if the configuration item Key MCrypto Key Start Finalize Function Enabled is set to true. It intents to allow key update operation.
تُستخدم الدالة المتزامنة KeyM_Start لتمكين عمليات تحديث المفاتيح في Key Manager ([SWS_KeyM_00050]). وهي اختيارية ولا تتاح إلا إذا تم تكوين معامل التكوين KeyMCryptoKeyStartFinalizeFunctionEnabled على true (AUTOSAR_SWS_KeyManager ص. 35). يتم توفير الدالة عبر KeyM.h وتتوقع عبر StartType وضع التشغيل المراد تنفيذه، بالإضافة إلى بيانات طلب إضافية عبر Request Data وRequest Data Length مثل التوقيع.
تُعاد بيانات الاستجابة عبر مخزن الإخراج المؤقت Response Data. ويعمل المعامل Response Data Length هنا كمعامل إدخال وإخراج: حيث يحدد قبل الاستدعاء الحد الأقصى لعدد البايتات المتاحة في المخزن المؤقت، ويحتوي بعد التنفيذ على طول البيانات المكتوبة فعليًا ([SWS_KeyM_00050]).
معالجة الأخطاء وقيم الإرجاع:
E_OK: نُفذت عملية البدء بنجاح؛ أصبحت تحديثات المفاتيح مسموحة الآن.E_NOT_OK: لم يتم قبول عملية البدء.KEYM_E_PARAMETER_MISMATCH: معاملات التمرير لا تتطابق مع القيم المتوقعة.KEYM_E_KEY_CERT_SIZE_MISMATCH: أحد أحجام المعاملات الممررة لا يتطابق مع الحجم المتوقع.
تم تحديد الدالة على أنها غير قابلة لإعادة الدخول (Non Reentrant) ([SWS_KeyM_00050]). ونظرًا لعدم وصف أي آليات قفل داخلية في الوحدة، فمن المرجح أن يتعين على جهة الاستدعاء ضمان تنفيذ منسق ومتسلسل. سؤال Q-82276b712a8dd170 (مفتوح)
تم إنشاء هذا النص تلقائيًا استنادًا إلى AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة KeyM_Prepare [SWS_KeyM_00051] 📄 PDF
Std_ReturnType KeyM_Prepare (const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);
This function is used to prepare a key update operation. The main intent is to provide information for the key operation to the key server. Other operations may start the negotiation for a common secret that is used further to derive key material. This function is only av ailable if Key MCrypto Key Prepare Function Enabled is set to TRUE.
تُستخدم الدالة المتزامنة KeyM_Prepare للتحضير لتحديث المفتاح (Key Update Operation) وتنقل المعلومات المطلوبة إلى خادم المفاتيح أو تبدأ التفاوض على سر مشترك لاشتقاق المفاتيح [SWS_KeyM_00051]. تمتلك الدالة معرف الخدمة (Service-ID) 0x05، ومصرح عنها عبر ملف الترويسة KeyM.h، وتتاح حصريًا عندما يتم ضبط معامل التكوين Key MCrypto Key Prepare Function Enabled على TRUE [SWS_KeyM_00051].
عند الاستدعاء، يجب تمرير المخازن المؤقتة ومحددات الطول التالية [SWS_KeyM_00051]:
Request DataوRequest Data Length: بيانات الإدخال وطولها للطلب [SWS_KeyM_00051].Response Data: مؤشر إلى المخزن المؤقت لاستقبال بيانات الإخراج [SWS_KeyM_00051].Response Data Length: معامل إدخال/إخراج، يحدد قبل الاستدعاء الحد الأقصى لحجم المخزن المؤقت المتاح ويحتوي عند العودة على عدد البايتات المكتوبة فعليًا [SWS_KeyM_00051].
إذا تم تأكيد الاستدعاء بـ E_OK، فهذا يعني أنه تم قبول الخدمة وتتم معالجتها داخليًا؛ وتُتاح النتائج النهائية لاحقًا عبر رد نداء (Callback) [SWS_KeyM_00051]. وإذا فشل القبول، تُرجع الدالة E_NOT_OK في حالة وجود أخطاء داخلية، أو KEYM_E_PARAMETER_MISMATCH عند اختلاف قيم المعاملات، أو KEYM_E_KEY_CERT_SIZE_MISMATCH عند عدم ملاءمة محددات الحجم [SWS_KeyM_00051].
نظرًا لأن KeyM_Prepare محددة على أنها غير قابلة لإعادة الدخول (Non Reentrant)، فلا يجوز إجراء استدعاءات متزامنة أو متداخلة [SWS_KeyM_00051].
تم إنشاء هذا النص تلقائيًا استنادًا إلى مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة KeyM_Finalize [SWS_KeyM_00053] 📄 PDF
Std_ReturnType KeyM_Finalize (const uint8* RequestDataPtr, uint16 RequestDataLength, uint8* ResponseDataPtr, uint16 ResponseMaxDataLength);
The function is used to finalize key update operations. It is typi cally used in conjunction with the Key M_
تختتم الدالة KeyM_Finalize عمليات التحديث للمفاتيح وتعيد عملية المفتاح إلى حالة الخمول (وضع Idle) [SWS_KeyM_00053]. وتُستخدم عادةً بالاقتران مع عملية KeyM_Start سابقة. بعد الاستدعاء، لا تقبل الوحدة أي عمليات تحضير أو تحديث أخرى (Prepare/Update) حتى يتم بدء تسلسل جديد عبر KeyM_Start [SWS_KeyM_00053]. بالإضافة إلى ذلك، يتم حفظ مادة المفتاح المحدثة بشكل دائم ونقلها إلى الحالة الصالحة من خلال استدعاء Csm_KeySetValid [SWS_KeyM_00053].
الاستخدام والتزامن: KeyM_Finalize غير قابلة لإعادة الدخول (Non Reentrant) وتعمل بشكل غير متزامن [SWS_KeyM_00053]. تفسير: نظرًا لعدم قابليتها لإعادة الدخول، فمن المرجح أن يتم الاستدعاء عادةً في سياق المهمة (Task context). سؤال Q-895ebec2d0d2e635 (مفتوح) لا تتاح واجهة التعامل إلا عندما يكون معامل التكوين KeyMCryptoKeyStartFinalizeFunctionEnabled مضبوطًا على TRUE، وهي مصرح عنها عبر KeyM.h [SWS_KeyM_00053].
المعاملات وقيم الإرجاع: يتم تمرير بيانات خاصة بالطلب عبر RequestDataPtr وRequestDataLength. وتُتاح بيانات الاستجابة عبر ResponseDataPtr؛ ويعمل ResponseMaxDataLength في البداية كحجم للمخزن المؤقت ويقدم عند الإرجاع المتزامن عدد البايتات الفعلي [SWS_KeyM_00053]. إذا تم قبول العملية ومعالجتها داخليًا، تُرجع الدالة E_OK (تتبع النتائج بشكل غير متزامن عبر رد نداء) ويظل ResponseMaxDataLength دون تغيير [SWS_KeyM_00053].
معالجة الأخطاء: في حالة حدوث خطأ، تشير KeyM_Finalize إلى الفشل عبر قيم إرجاع محددة [SWS_KeyM_00053]:
E_NOT_OK: لم يتم قبول العملية بسبب خطأ داخلي.KEYM_E_BUSY: وحدة KeyM مشغولة بمهام أخرى؛ لا يمكن إجراء التحقق من الصحة بعد.KEYM_E_PARAMETER_MISMATCH: المعاملات لا تتطابق مع القيمة المتوقعة.KEYM_E_KEY_CERT_SIZE_MISMATCH: حجم المعامل لا يتطابق.
تم توليد ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة KeyM_SetCertificate [SWS_KeyM_00057] 📄 PDF
Std_ReturnType KeyM_SetCertificate (KeyM_CertificateIdType CertId, const KeyM_CertDataType* CertificateDataPtr);
This function provides the certificate data to the key managem ent module to temporarily store the certificate.
الاستخدام
تمرر الدالة المتزامنة KeyM_SetCertificate بيانات الشهادة إلى وحدة إدارة المفاتيح لتخزين شهادة مؤقتًا [SWS_KeyM_00057]. وتتوقع كمعاملات إدخال كلاً من معرف الشهادة CertId (النوع KeyM_CertificateIdType) بالإضافة إلى المؤشر CertificateDataPtr (النوع const KeyM_CertDataType*)، الذي يشير إلى هيكل الشهادة المراد توفيره [SWS_KeyM_00057]. تم التصريح عن واجهة التعامل عبر ملف الترويسة KeyM.h ولها معرف الخدمة (Service-ID) 0x0a [SWS_KeyM_00057].
قيم الإرجاع ومعالجة الأخطاء
توفر قيمة الإرجاع من النوع Std_ReturnType معلومات حول قبول البيانات [SWS_KeyM_00057]:
E_OK: تم قبول الشهادة بنجاح [SWS_KeyM_00057].E_NOT_OK: تعذر تعيين الشهادة [SWS_KeyM_00057].KEYM_E_PARAMETER_MISMATCH: المعاملات الممررة لا تتطابق مع القيم المتوقعة [SWS_KeyM_00057].KEYM_E_KEY_CERT_SIZE_MISMATCH: حجم بيانات الشهادة الممررة يختلف عن الحجم المتوقع [SWS_KeyM_00057].
التزامن والقيود
صُنفت الدالة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_KeyM_00057]. لذلك، يجب مزامنة الاستدعاءات المتزامنة أو استبعادها من جانب جهة الاستدعاء. ونظرًا لأن المواصفة تنص صراحةً على تخزين مؤقت، فمن المفترض أن تظل بيانات الشهادة الممررة في البداية في الذاكرة المؤقتة للوحدة قبل إجراء التخزين الدائم أو التحقق من الصحة. سؤال Q-c35c4b02344d5bc9 (مفتوح)
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى مواصفات AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة KeyM_GetCertificate [SWS_KeyM_00058] 📄 PDF
Std_ReturnType KeyM_GetCertificate (KeyM_CertificateIdType CertId, KeyM_CertDataType* CertificateDataPtr);
This function provides the certificate data
الاستخدام
تُستخدم الدالة المتزامنة KeyM_GetCertificate لتوفير بيانات الشهادة لمُعرّف شهادة محدد [SWS_KeyM_00058]. يمرر المُستدعي عبر المعلمة CertId مُعرّف الشهادة المطلوبة، بالإضافة إلى مؤشر إلى هيكل بيانات الشهادة عبر معلمة الإدخال/الإخراج CertificateDataPtr. ويكون المُستدعي مسؤولاً عن توفير المخزن المؤقت الذي يشير إليه المؤشر الموجود في الهيكل [SWS_KeyM_00058]. يجب تحديد الحد الأقصى لطول هذا المخزن المؤقت في الهيكل قبل الاستدعاء؛ وفي حالة الإرجاع الناجح (E_OK)، يحتوي حقل الطول على الطول الفعلي لبيانات الشهادة المقدمة [SWS_KeyM_00058].
معالجة الأخطاء
تشير الدالة إلى النجاح أو إلى أخطاء محددة عبر القيمة المرجعة من النوع Std_ReturnType [SWS_KeyM_00058]:
E_OK: بيانات الشهادة متاحة وتم تسليمها بنجاح.KEYM_E_PARAMETER_MISMATCH: معرّف الشهادة المُمرَّر (CertId) غير صالح.KEYM_E_KEY_CERT_SIZE_MISMATCH: المخزن المؤقت المقدم صغير جدًا بالنسبة للشهادة.KEYM_E_KEY_CERT_EMPTY: لا توجد بيانات شهادة، لأن فتحة الشهادة فارغة.KEYM_E_KEY_CERT_READ_FAIL: لا يمكن توفير الشهادة نظرًا لرفض الوصول.E_NOT_OK: لم يتم قبول العملية بسبب خطأ داخلي.
التزامن والقيود
تم تحديد الدالة على أنها غير قابلة لإعادة الدخول (Non Reentrant) وهي متاحة عبر ملف الرأس KeyM.h [SWS_KeyM_00058]. لذلك يجب على المُستدعين التأكد من مزامنة الاستدعاءات المتوازية للدالة ضد بعضها البعض.
تم إنشاء هذا النص بواسطة ذكاء اصطناعي وهو مخصص كدليل توجيهي. المرجع الأساسي هو مواصفة AUTOSAR الرسمية.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة KeyM_VerifyCertificates [SWS_KeyM_00059] 📄 PDF
Std_ReturnType KeyM_VerifyCertificates (KeyM_CertificateIdType CertId, KeyM_CertificateIdType CertUpperId);
This function verifies two certificates that are stored and parsed internally against each other. The certificat e referenced with Cert Id was signed by the certificate referenced with cert Upper Id. Only these two certificates are validated against each other.
تُستخدم الدالة KeyM_VerifyCertificates للتحقق غير المتزامن من شهادتين مخزنتين ومحللتين داخليًا في مواجهة بعضهما وفقًا لـ [SWS_KeyM_00059]. ويتم في ذلك التحقق مما إذا كانت الشهادة التابعة المشار إليها عبر CertId قد تم توقيعها بواسطة الشهادة الرئيسية المشار إليها بـ CertUpperId.
نظرًا لأن الخدمة محددة بأنها غير قابلة لإعادة الدخول (Non Reentrant)، فلا يجوز استدعاؤها بشكل متزامن لعمليات متداخلة [SWS_KeyM_00059]. ويتم التنفيذ بشكل غير متزامن في الخلفية: تشير قيمة الإرجاع E_OK فقط إلى قبول طلب التحقق بنجاح. ويتم إبلاغ المستدعي بنتيجة التحقق الفعلية عبر دالة رد النداء المهيأة KeyMCertificateVerifyCallbackNotificationFunc، شريطة أن تكون مهيأة بشكل صالح [SWS_KeyM_00153].
إذا لم يتم قبول الطلب، تُرجع الدالة قيم إرجاع محددة لمعالجة الأخطاء [SWS_KeyM_00059]:
KEYM_E_BUSY: إن Key Manager مشغول بمهام أخرى؛ ولا يمكن بدء التحقق في هذا الوقت بعد.KEYM_E_PARAMETER_MISMATCH: معرّف شهادة ممرر واحد على الأقل غير صالح.KEYM_E_KEY_CERT_EMPTY: إحدى فتحات الشهادات المشار إليها فارغة.KEYM_E_CERT_INVALID_CHAIN_OF_TRUST: الشهادة الرئيسية (CertUpperId) غير صالحة.E_NOT_OK: تم رفض الطلب بسبب خطأ داخلي.
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويُستخدم للتوجيه الفني استنادًا إلى مواصفات AUTOSAR.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة KeyM_VerifyCertificate [SWS_KeyM_00060] 📄 PDF
Std_ReturnType KeyM_VerifyCertificate (KeyM_CertificateIdType CertId);
Service KeyM_VerifyCertificate.
تُستخدم الدالة KeyM_VerifyCertificate للتحقق غير المتزامن من شهادة تم توفيرها مسبقًا عبر KeyM_SetCertificate() [SWS_KeyM_00060]. يتم إجراء الفحص بناءً على مُعرّف الشهادة المُمرر CertId مقابل شهادات لمُعرّفات شهادات (IDs) أخرى مودعة بالفعل في Key Manager [SWS_KeyM_00060]. يتوفر التصريح عبر ملف الرأس KeyM.h [SWS_KeyM_00060].
دلالات الاستدعاء والقيم المرجعة
تؤكد القيمة المرجعة E_OK أنه تم قبول طلب التحقق بنجاح وأن العملية تُنفذ في الخلفية [SWS_KeyM_00060]. وإذا تعذر قبول الأمر، يتم إرسال الاستجابة بشكل متزامن عبر رموز خطأ محددة [SWS_KeyM_00060]:
E_NOT_OK: تم رفض العملية بسبب خطأ داخلي [SWS_KeyM_00060].KEYM_E_BUSY: وحدة KeyM مشغولة حاليًا بمهام أخرى، بحيث لا يمكن إجراء التحقق من الصحة بعد [SWS_KeyM_00060].KEYM_E_PARAMETER_MISMATCH:CertIdالممرر غير صالح [SWS_KeyM_00060].KEYM_E_KEY_CERT_EMPTY: واحدة على الأقل من فتحات الشهادات المطلوبة فارغة [SWS_KeyM_00060].KEYM_E_CERT_INVALID_CHAIN_OF_TRUST: شهادة عليا في سلسلة الثقة غير صالحة [SWS_KeyM_00060].
التزامن والعمل غير المتزامن
نظرًا لتحديد KeyM_VerifyCertificate على أنها غير قابلة لإعادة الدخول (Non Reentrant)، يجب على المُستدعي التأكد من عدم حدوث استدعاءات متزامنة أو مقاطعة [SWS_KeyM_00060]. بعد قبول أمر الفحص بنجاح (الإرجاع E_OK)، يتم إرسال نتيجة عملية الخلفية إلى دالة رد النداء المهيأة KeyMCertificateVerifyCallbackNotificationFunc، بشرط تزويدها باسم دالة صالح [SWS_KeyM_00153].
تم إنشاء ملاحظة الاستخدام هذه بصورة آلية بناءً على مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة KeyM_VerifyCertificateChain [SWS_KeyM_00061] 📄 PDF
Std_ReturnType KeyM_VerifyCertificateChain (KeyM_CertificateIdType CertId, const KeyM_CertDataType[] certChainData, uint8 NumberOfCertificates);
Service KeyM_VerifyCertificateChain.
تُستخدم الدالة KeyM_VerifyCertificateChain للتحقق غير المتزامن من شهادة ما في مواجهة سلسلة من الشهادات الممررة [SWS_KeyM_00061]. ويتم تمرير معرّف الشهادة الأخيرة في السلسلة (CertId)، ومؤشر إلى مصفوفة الشهادات المرتبة وفقًا لتسلسل PKI (certChainData)، بالإضافة إلى عدد الشهادات (NumberOfCertificates) كمعاملات [SWS_KeyM_00061]. وقبل الاستدعاء، يجب أن تكون الشهادة المراد فحصها قد سُجلت عبر KeyM_SetCertificate()، ويجب أن تكون شهادة الجذر (Root) إما متضمنة في القائمة أو مخصصة بالفعل لإحدى الشهادات الأخرى [SWS_KeyM_00061].
الوظيفة غير قابلة لإعادة الدخول (Non Reentrant) وتُوفَّر عبر ملف الترويسة KeyM.h [SWS_KeyM_00061]. تشير قيم الإرجاع المتزامنة التالية إلى حالة قبول الطلب [SWS_KeyM_00061]:
E_OK: تم قبول طلب الفحص ويجري تنفيذه في الخلفية [SWS_KeyM_00061].E_NOT_OK: تم رفض الطلب بسبب خطأ داخلي [SWS_KeyM_00061].KEYM_E_BUSY: الوحدة مشغولة بطلبات أخرى؛ لا يمكن تنفيذ التحقق من الصحة بعد [SWS_KeyM_00061].KEYM_E_PARAMETER_MISMATCH: معرف الشهادة الممرر غير صالح [SWS_KeyM_00061].KEYM_E_KEY_CERT_EMPTY: أحد فتحات الشهادات المطلوبة فارغ [SWS_KeyM_00061].KEYM_E_CERT_INVALID_CHAIN_OF_TRUST: شهادة عليا في سلسلة الثقة غير صالحة [SWS_KeyM_00061].
إذا قُبِل الطلب بـ E_OK، فسيتم التقييم في الخلفية. وما دام KeyMCertificateVerifyCallbackNotificationFunc قد تم تكوينه بوظيفة صالحة، تُبلِغ KeyM التطبيقَ المستدعي بالنتيجة النهائية لعملية التحقق عبر وظيفة رد الاتصال هذه [SWS_KeyM_00061] [SWS_KeyM_00153].
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا بناءً على مواصفات AUTOSAR.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة KeyM_CertElementGet [SWS_KeyM_00063] 📄 PDF
Std_ReturnType KeyM_CertElementGet (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, uint8* CertElementData, uint32* CertElementDataLength);
Service KeyM_CertElementGet.
الاستخدام وسياق الاستدعاء
تُستخدم الدالة المتزامنة KeyM_CertElementGet لقراءة بيانات عنصر شهادة محدد من فتحة شهادة في مخزن مؤقت يوفره المُستدعي [SWS_KeyM_00063]. وتُستخدم عندما يكون مُعرّف الكائن (OID) المودع في تهيئة الشهادة مرتبطًا بعنصر واحد فقط [SWS_KeyM_00063].
يمرر المُستدعي مُعرّف الشهادة CertId، ومُعرّف العنصر CertElementId، بالإضافة إلى مؤشر إلى المخزن المؤقت الهدف CertElementData [SWS_KeyM_00063]. وتعمل المعلمة CertElementDataLength كقيمة إدخال وإخراج مشتركة: يجب أن تحتوي قبل الاستدعاء على أقصى حجم للمخزن المؤقت. في حالة النجاح (E_OK)، يتم استبدالها بالطول الفعلي للبيانات المكتوبة؛ وفي حالة الخطأ، تعيد الدالة تعيين القيمة المشار إليها إلى الصفر [SWS_KeyM_00063].
معالجة الأخطاء وقيم الإرجاع
تبلغ الدالة عن حالة التنفيذ عبر القيم المرجعة التالية [SWS_KeyM_00063]:
E_OK: تم العثور على العنصر ونسخه بنجاح في المخزن المؤقت [SWS_KeyM_00063].E_NOT_OK: لم يتم العثور على بيانات العنصر [SWS_KeyM_00063].KEYM_E_PARAMETER_MISMATCH: غير صالحCertIdأوCertElementId[SWS_KeyM_00063].KEYM_E_KEY_CERT_SIZE_MISMATCH: المخزن المؤقت المقدم صغير جدًا لبيانات العنصر [SWS_KeyM_00063].KEYM_E_KEY_CERT_EMPTY: لا توجد بيانات للفتحة المحددة، الفتحة فارغة [SWS_KeyM_00063].KEYM_E_KEY_CERT_INVALID: الشهادة غير صالحة أو لم يتم التحقق منها بعد [SWS_KeyM_00063].
التزامن
تم تحديد الدالة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_KeyM_00063]. لذلك، في حالة الاستدعاءات المتزامنة من مهام أو سياقات مختلفة، يُرجح أن تكون المزامنة من جانب المُستدعي مطلوبة. سؤال Q-238a3e53ce0e3a45 (مفتوح)
تم إنشاء هذا النص بواسطة ذكاء اصطناعي. تستند جميع المعلومات حصريًا إلى معيار AUTOSAR الإصدار R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة KeyM_CertificateElementGetByIndex [SWS_KeyM_91014] 📄 PDF
Std_ReturnType KeyM_CertificateElementGetByIndex (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, uint32 Index, uint8* CertElementDataPtr, uint32* CertElementDataLengthPtr);
Service KeyM_CertificateElementGetByIndex.
تُستخدم الدالة المتزامنة KeyM_CertificateElementGetByIndex للقراءة المستهدفة لبيانات عنصر شهادة استنادًا إلى فهرس صفري الأساس (0..N)، وذلك عند وجود مدخلات متعددة لنوع عنصر ما [SWS_KeyM_91014]. وبذلك تشكل بديلاً للوصول المباشر مقارنة بالتكرار التسلسلي.
الاستخدام والمعلمات
يمرر المستدعي معرّف الشهادة CertId ومعرّف العنصر CertElementId بالإضافة إلى Index المطلوب [SWS_KeyM_91014]. علاوة على ذلك، يجب على المستدعي تخصيص الذاكرة لـ CertElementDataPtr وتمرير الحد الأقصى المتاح لحجم الذاكرة الوسيطة عبر CertElementDataLengthPtr. عند العودة الناجحة، يتم استبدال CertElementDataLengthPtr بالطول الفعلي للبيانات المنسوخة [SWS_KeyM_91014].
قيم الإرجاع ومعالجة الأخطاء
تشير الدالة إلى النتيجة عبر قيم إرجاع محددة لـ Std_ReturnType [SWS_KeyM_91014]:
E_OK: تم العثور على العنصر ونُسخ بنجاح إلى الذاكرة الوسيطة للوجهة.KEYM_E_PARAMETER_MISMATCH: قيمةCertIdغير صالحة، أوCertElementIdغير صالحة، أو أنIndexالممرر يقع خارج النطاق الصالح.KEYM_E_KEY_CERT_SIZE_MISMATCH: الذاكرة الوسيطة المقدمة صغيرة جدًا بالنسبة لعنصر الشهادة.KEYM_E_KEY_CERT_EMPTY: الشهادة المحددة لا تحتوي على بيانات أو أنها فارغة.KEYM_E_CERT_INVALID: الشهادة غير صالحة أو لم يكن التحقق ناجحًا.E_NOT_OK: فشلت قراءة بيانات العنصر.
التزامن
وفقًا للمواصفة، صُنفت الخدمة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_KeyM_91014]. لذلك، لا يجوز تنفيذ الاستدعاءات بالتزامن دون حماية.
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا بواسطة مساعد ذكاء اصطناعي بناءً على مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة KeyM_CertificateElementGetCount [SWS_KeyM_91015] 📄 PDF
Std_ReturnType KeyM_CertificateElementGetCount (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, uint16* CountPtr);
This function provides the total number of data elements that a re available for the specified certificate element. Typically, only one data element is available. But in some cases, several data elements can be assigned to one certificate element in a row. This function retrieves the total number of elements. The indiv idual data elements can then accessed with Key M_ Certificate Element Get By Index(). It is similar to the functions Key M_ Cert Element Get First/ Key M_ Cert Element Get Next to retrieve a group of data elements of one certificate element. AUTOSAR CP R20 - of
تحدد الواجهة المتزامنة KeyM_CertificateElementGetCount العدد الإجمالي لعناصر البيانات المخزنة لعنصر شهادة محدد، وتكتب النتيجة في الذاكرة الوسيطة CountPtr [SWS_KeyM_91015].
الاستخدام والمعلمات
يتم الإعلان عن الدالة عبر ملف الترويسة KeyM.h ولها معرف الخدمة 0x1c [SWS_KeyM_91015]. وهي تعالج المعاملات التالية:
CertId(IN): المعرف الفريد للشهادة المطلوب الاستعلام عنها ([SWS_KeyM_91015]).CertElementId(IN): يحدد العنصر الفعلي داخل الشهادة ([SWS_KeyM_91015]).CountPtr(OUT): مؤشر إلى الذاكرة الوسيطة من النوعuint16، والتي يُنسخ إليها عدد عناصر البيانات المتاحة ([SWS_KeyM_91015]).
معالجة الأخطاء وقيم الإرجاع
توفر قيمة الإرجاع من النوع Std_ReturnType معلومات حول نتيجة التنفيذ [SWS_KeyM_91015]:
E_OK: تم بنجاح كتابة قيمة العد في الذاكرة الوسيطة ([SWS_KeyM_91015]).E_NOT_OK: تعذر توفير قيمة العد ([SWS_KeyM_91015]).KEYM_E_PARAMETER_MISMATCH: معرّف الشهادة (CertId) أو معرّف العنصر (CertElementId) غير صالح أو يقع خارج النطاق المسموح به ([SWS_KeyM_91015]).
التزامن والتفاعل
التنفيذ متزامن، ولكنه مصنف على أنه غير قابل لإعادة الدخول (Non Reentrant)، مما يستوجب تنسيق الاستدعاءات المتزامنة [SWS_KeyM_91015]. بينما يُعيّن عادةً عنصر بيانات واحد فقط لعناصر الشهادة، يمكن في حالات معينة وجود عدة عناصر بيانات متتالية [SWS_KeyM_91015]. ويُستخدم العدد الإجمالي المحدد كأساس لقراءة العناصر المفردة لاحقًا بشكل مستهدف عبر KeyM_CertificateElementGetByIndex()، وهو ما يشبه وظيفيًا النهج التكراري باستخدام KeyM_CertElementGetFirst وKeyM_CertElementGetNext [SWS_KeyM_91015].
تستند ملاحظة الاستخدام هذه إلى مواصفة AUTOSAR SWS_KeyM_91015.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة KeyM_CertElementGetFirst [SWS_KeyM_00064] 📄 PDF
Std_ReturnType KeyM_CertElementGetFirst (KeyM_CertificateIdType CertId, KeyM_CertElementIdType CertElementId, KeyM_CertElementIteratorType* CertElementIterator, uint8* CertElementData, uint32* CertElementDataLength);
Service KeyM_CertElementGetFirst.
تُستخدم الدالة المتزامنة KeyM_CertElementGetFirst وفقًا لـ [SWS_KeyM_00064] لبدء الاستخراج التكراري لبيانات الشهادة. وتقرأ العنصر الأعلى لعنصر الشهادة المعنون عبر CertElementId من الشهادة CertId وتقوم بتهيئة بناء المكرر CertElementIterator للاستدعاءات اللاحقة لـ KeyM_CertElementGetNext().
عند الاستدعاء، يجب مراعاة متطلبات المعلمات والذاكرة التالية وفقًا لـ [SWS_KeyM_00064]:
CertElementIterator: مؤشر إلى هيكل مخصص ومدار من قبل المُستدعي؛ ولا يجوز للتطبيق إتلافه أو تعديله طالما لم يتم استرداد جميع البيانات عبرKeyM_CertElementGetNext().CertElementData: مؤشر إلى مخزن مؤقت للإخراج يوفره المُستدعي، وتُنسخ إليه البيانات المفيدة عند العثور بنجاح (E_OK).CertElementDataLength: يمرر كإدخال الحد الأقصى لطول مخزن البيانات المؤقت، ويتم استبداله عند إرجاعE_OKبطول البيانات المكتوبة فعليًا.
فيما يتعلق بالتزامن، فإن الخدمة قابلة لإعادة الدخول وفقًا لـ [SWS_KeyM_00064]، ولكنها مخصصة لمكرر واحد فقط («Reentrant for one iterator»).
في حالة حدوث خطأ، تميز الدالة عبر قيم مرجعة محددة وفقًا لـ [SWS_KeyM_00064]: يشير E_NOT_OK إلى أنه لم يتم العثور على بيانات للعنصر (ولا يجوز بعد ذلك استخدام المكرر لأي استدعاءات أخرى). ويشير KEYM_E_PARAMETER_MISMATCH إلى مُعرّف شهادة أو مُعرّف عنصر غير صالح، وKEYM_E_KEY_CERT_SIZE_MISMATCH إلى مخزن بيانات مؤقت صغير جدًا، وKEYM_E_KEY_CERT_EMPTY إلى شهادة فارغة دون بيانات متاحة، وKEYM_E_CERT_INVALID إلى شهادة غير صالحة أو لم يتم التحقق منها بنجاح.
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى بيانات مواصفات AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة KeyM_CertElementGetNext [SWS_KeyM_00065] 📄 PDF
Std_ReturnType KeyM_CertElementGetNext (KeyM_CertElementIteratorType* CertElementIterator, uint8* CertElementData, uint32* CertElementDataLength);
Service KeyM_CertElementGetNext.
تُستخدم الدالة المتزامنة KeyM_CertElementGetNext (مُعرّف الخدمة 0x11، المقدمة عبر KeyM.h) للقراءة المستمرة لبيانات إضافية من عنصر شهادة، إذا كانت هناك سجلات بيانات متعددة مخزنة فيه بشكل تسلسلي [SWS_KeyM_00065]. كشرط استدعاء إلزامي، تتطلب المواصفة أن يتم استدعاء الدالة KeyM_CertElementGetFirst() مرة واحدة على الأقل مسبقًا [SWS_KeyM_00065].
يجب توفير مساحات الذاكرة لجميع المعلمات بواسطة التطبيق المُستدعي [SWS_KeyM_00065]:
CertElementIterator: مؤشر إلى هيكل مكرر مخصص، لا يجوز للتطبيق تعديله أو إتلافه أثناء التكرار حتى تتم قراءة جميع العناصر بالكامل [SWS_KeyM_00065].CertElementData: مؤشر إلى المخزن المؤقت للإخراج، الذي تنسخ الدالة إليه البيانات المفيدة عند التنفيذ الناجح [SWS_KeyM_00065].CertElementDataLength: يمرر السعة القصوى لمخزن البيانات المؤقت عند الاستدعاء، ويتم استبداله عند الإرجاع الناجح بالطول الفعلي للبيانات المنسوخة [SWS_KeyM_00065].
إذا أعاد الاستدعاء E_OK، فهذا يعني أنه تم العثور على العنصر التالي، وكتابته في المخزن المؤقت، ومتابعة المكرر وفقًا لذلك [SWS_KeyM_00065]. وفي حالة E_NOT_OK، تعذر العثور على المزيد من بيانات العنصر؛ وفي هذه الحالة لا يجوز استخدام المكرر لمزيد من الاستدعاءات [SWS_KeyM_00065]. يتم الإبلاغ عن حالات الخطأ عبر قيم مرجعة محددة: يشير KEYM_E_KEY_CERT_SIZE_MISMATCH إلى مخزن بيانات مؤقت بحجم صغير جدًا، وKEYM_E_PARAMETER_MISMATCH إلى مُعرّف شهادة أو مُعرّف عنصر غير صالح، وKEYM_E_KEY_CERT_EMPTY إلى شهادة فارغة، وKEYM_E_CERT_INVALID إلى شهادة غير صالحة أو لم يتم التحقق منها بنجاح [SWS_KeyM_00065].
فيما يتعلق بالتزامن، تم تحديد الدالة المتزامنة على أنها قابلة لإعادة الدخول لمكرر واحد في كل مرة [SWS_KeyM_00065].
تم إنشاء ملاحظة الاستخدام هذه تلقائياً بناءً على مواصفة AUTOSAR.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة KeyM_CertGetStatus [SWS_KeyM_00066] 📄 PDF
Std_ReturnType KeyM_CertGetStatus (KeyM_CertificateIdType CertId, KeyM_CertificateStatusType* Status);
This function provides the sta tus of a certificate.
تُستخدم الدالة المتزامنة KeyM_CertGetStatus للاستعلام عن حالة شهادة وتوفيرها عبر معلمة إخراج [SWS_KeyM_00066]. يتوفر التصريح عن الدالة عبر ملف الرأس KeyM.h، وتم تعيين مُعرّف الخدمة السداسي عشري 0x12 للخدمة [SWS_KeyM_00066].
تُستخدم المعلمات التالية للاستدعاء [SWS_KeyM_00066]:
CertId(IN): يحتوي على مُعرّف الشهادة المراد الاستعلام عنها ويتم تمريره بنوع البياناتKeyM_CertificateIdType[SWS_KeyM_00066].Status(OUT): مؤشر إلى مساحة الذاكرة من النوعKeyM_CertificateStatusType، التي تكتب فيها الدالة الحالة المحددة للشهادة [SWS_KeyM_00066].
تُبلغ القيمة المرجعة من النوع Std_ReturnType عن نتيجة الاستعلام عن الحالة [SWS_KeyM_00066]:
E_OK: تم تحديد حالة الشهادة وتوفيرها بنجاح [SWS_KeyM_00066].E_NOT_OK: لا يمكن توفير الحالة حاليًا [SWS_KeyM_00066]. يحدث هذا على سبيل المثال عند تمرير مُعرّف شهادة غير صالح (ID)، وهو موثق برمز الخطأKEYM_E_PARAMETER_MISMATCH[SWS_KeyM_00066].
فيما يتعلق بالتنفيذ والتزامن، تتصرف الواجهة بشكل متزامن تمامًا ومحددة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_KeyM_00066]. بالتالي، لا يُسمح بالاستدعاءات المتزامنة عبر سياقات تنفيذ متعددة. لا توجد معلمات إدخال وإخراج إضافية مخصصة لهذه الواجهة [SWS_KeyM_00066].
تم إنشاء ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي بناءً على المواصفة.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة KeyM_MainFunction [SWS_KeyM_00074] 📄 PDF
void KeyM_MainFunction (void);
Function is called periodically according the specified time interval.
تُستخدم الوظيفة KeyM_MainFunction كوظيفة رئيسية دورية لوحدة AUTOSAR الكلاسيكية KeyM [SWS_KeyM_00074]. وفقاً للمواصفة، تمتلك الوظيفة معرف الخدمة 0x19 بالتمثيل الست عشري بالإضافة إلى التوقيع void KeyM_MainFunction (void) [SWS_KeyM_00074]. بالتالي، لا تُمرر الكيانات المستدعية أي معاملات إدخال ولا تتلقى أي قيمة إرجاع [SWS_KeyM_00074].
بالنسبة للتحكم الزمني، تم تحديد وجوب استدعاء الوظيفة دورياً وفقاً لفاصل زمني محدد [SWS_KeyM_00074]. تم الإعلان عن ملف الترويسة SchM_KeyM.h كملف واجهة [SWS_KeyM_00074]. وينتج عن ذلك التفسير التالي: من خلال التوفير عبر SchM_KeyM.h، من المرجح أن يتم الاستدعاء المنتظم للوظيفة في سياق مجدول برمجيات الأساس (SchM) [SWS_KeyM_00074]. سؤال Q-761ff71812bda3c2 (مفتوح) بالإضافة إلى ذلك، يُستخدم التشغيل الحلقي على الأرجح للمعالجة الداخلية للعمليات المعتمدة على الوقت في الوحدة KeyM.
فيما يتعلق بمعالجة الأخطاء وسلوك الخطأ، لم يتم توثيق أي رموز إرجاع أو ثوابت أخطاء أو رسائل إلى DET أو DEM في عنصر المواصفة لهذه الخدمة [SWS_KeyM_00074]. ونظراً لعدم وجود معاملات إدخال، ينتفي أيضاً التحقق من قيم التمرير عند الاستدعاء [SWS_KeyM_00074].
تم إنشاء ملاحظة الاستخدام هذه تلقائياً بواسطة نظام ذكاء اصطناعي بناءً على مواصفة إصدار AUTOSAR رقم R20-11.
دالة KeyM_MainBackgroundFunction [SWS_KeyM_00075] 📄 PDF
void KeyM_MainBackgroundFunction (void);
Function is called from a pre - emptive operating system when no other task operation is needed. Can be used for calling time consuming synchronous functions such as Key M_ KH_ Update().
الاستخدام وسياق الاستدعاء
تمتلك الوظيفة KeyM_MainBackgroundFunction التوقيع void KeyM_MainBackgroundFunction(void) وهي محددة تحت معرف الخدمة 0x1a [SWS_KeyM_00075]. لا تقبل أي معاملات تمرير ولا تعيد أي قيمة إرجاع إلى المستدعي [SWS_KeyM_00075]. ومن أجل الدمج، يتم الإعلان عن الواجهة وتوفيرها عبر ملف الترويسة SchM_KeyM.h [SWS_KeyM_00075].
يتم الاستدعاء بواسطة نظام تشغيل وقائي في الخلفية بمجرد عدم وجود عملية مهمة أخرى قيد الانتظار للمعالجة [SWS_KeyM_00075]. الغرض الأساسي من هذه الوظيفة هو توفير سياق خلفية غير حرج للعمليات المتزامنة والمستغرقة للوقت الخاصة بالوحدة KeyM، كما هو موصوف على سبيل المثال لتنفيذ KeyM_KH_Update() [SWS_KeyM_00075].
التزامن ومعالجة الأخطاء
نظراً لأن الوظيفة تُنفَّذ في سياق الخلفية لنظام تشغيل وقائي، فمن المرجح أنها قابلة للمقاطعة في أي وقت بواسطة أي مهام عادية ذات أولوية أعلى. سؤال Q-a2394a51ba63467f (مفتوح) بالنسبة لخدمة الخلفية هذه، لا يحدد المعيار رموز أخطاء محددة ولا إشعارات إلى DET أو DEM [SWS_KeyM_00075]. علاوة على ذلك، لا تفرض حالة البيانات المحددة خصائص إعادة دخول خاصة أو شروط ترتيب ثابتة فيما يتعلق بوظائف الوحدة الأخرى [SWS_KeyM_00075].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند حصرياً إلى بيانات المواصفة المأخوذة من الحمولة.
دالة KeyM_KH_Start [SWS_KeyM_00067] 📄 PDF
Std_ReturnType KeyM_KH_Start (KeyM_StartType StartType, const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);
If Key MCrypto Key Start Finalize Function Enabled and Key MCrypto Key
يتم التصريح عن الدالة المتزامنة وغير القابلة لإعادة الدخول KeyM_KH_Start عبر ملف الرأس KeyM_Externals.h [SWS_KeyM_00067]. وإذا تم ضبط معلمتي التهيئة KeyMCryptoKeyStartFinalizeFunctionEnabled وKeyMCryptoKeyHandlerStartFinalizeEnabled على TRUE، فسيتم تنفيذها مباشرة عند استدعاء KeyM_Start [SWS_KeyM_00067].
يتم تحديد وضع تنفيذ عملية المفتاح عبر المعلمة StartType. وباستخدام RequestData وRequestDataLength، تستقبل الدالة بيانات مصاحبة خاصة بالطلب مثل التوقيعات. ويمرر المُستدعي عبر معلمة الإدخال/الإخراج ResponseDataLength الحد الأقصى لكمية البايتات المتاحة في المخزن المؤقت ResponseData؛ وفي حالة النجاح، تبلغ الدالة عبرها عن عدد بايتات الاستجابة المكتوبة فعليًا [SWS_KeyM_00067].
تُرجع الدالة حالة من النوع Std_ReturnType كقيمة إرجاع [SWS_KeyM_00067]:
E_OK: كانت عملية البدء ناجحة. ومن خلال هذه القيمة المرجعة فقط ينتقل Key Manager إلى الحالة النشطة، بحيث تصبح تحديثات المفاتيح اللاحقة (Key Updates) مسموحًا بها.E_NOT_OK: لم يتم قبول عملية البدء.KEYM_E_PARAMETER_MISMATCH: أحد المعاملات الممررة لا يتطابق مع القيمة المتوقعة.KEYM_E_KEY_CERT_SIZE_MISMATCH: حجم معلمة محدد لا يتطابق مع الحجم المتوقع.
نظرًا لتعريف KeyM_KH_Start على أنها غير قابلة لإعادة الدخول، فلا يجوز أن تحدث الاستدعاءات لعمليات المفاتيح المتوازية بشكل متزامن [SWS_KeyM_00067].
تم توليد ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة KeyM_KH_Prepare [SWS_KeyM_00068] 📄 PDF
Std_ReturnType KeyM_KH_Prepare (const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseDataPtr, uint16* ResponseDataLength);
If the configuration parameters Key MCrypto Key Prepare Function Enabled and Key MCrypto Key Handler Prepare Enabled are both set to TRUE, then this function w ill be called immediately when Key M_ Prepare gets called. The function takes over the task to prepare a key management operation. The response data will be passed on as is to the caller of Key_ Prepare.
الاستخدام وسياق الاستدعاء
يتم التصريح عن الدالة KeyM_KH_Prepare عبر ملف الرأس KeyM_Externals.h وتُستخدم لتجهيز عملية إدارة المفاتيح [SWS_KeyM_00068]. ويتم إطلاقها مباشرة عند استدعاء KeyM_Prepare، إذا تم ضبط كل من معلمتي التهيئة KeyMCryptoKeyPrepareFunctionEnabled وKeyMCryptoKeyHandlerPrepareEnabled على TRUE [SWS_KeyM_00068]. ويتم التنفيذ بشكل متزامن ومحدد على أنه غير قابل لإعادة الدخول [SWS_KeyM_00068].
يتم تسليم البيانات عبر أربع معلمات [SWS_KeyM_00068]:
RequestData: بيانات الإدخال التي يتم تمريرها مع الطلب [SWS_KeyM_00068].RequestDataLength: طول البيانات في المصفوفةRequestData[SWS_KeyM_00068].ResponseDataPtr: مؤشر إلى المخزن المؤقت لبيانات الاستجابة المرجعة من الدالة، والتي يتم تمريرها دون تغيير إلى مُستدعيKey_Prepare[SWS_KeyM_00068].ResponseDataLength: معلمة إدخال وإخراج؛ تمرر عند الاستدعاء الحد الأقصى لعدد البايتات المتاحة في المخزن المؤقت وتعيد بعد الرجوع كمية البايتات المكتوبة فعليًا [SWS_KeyM_00068].
قيم الإرجاع وسلوك الخطأ
تعيد الدالة قيمة الحالة Std_ReturnType كنتيجة [SWS_KeyM_00068]:
E_OK: تم قبول الخدمة وتتم معالجتها داخليًا؛ ويتم إرسال النتائج عبر رد نداء (Callback) [SWS_KeyM_00068].E_NOT_OK: لم يتم قبول الخدمة بسبب خطأ داخلي [SWS_KeyM_00068].KEYM_E_PARAMETER_MISMATCH: توجد معلمة لا تتطابق مع القيمة المتوقعة [SWS_KeyM_00068].KEYM_E_KEY_CERT_SIZE_MISMATCH: حجم إحدى المعلمات غير مناسب [SWS_KeyM_00068].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي. تستند جميع المعلومات حصريًا إلى معيار AUTOSAR الإصدار R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة KeyM_KH_Finalize [SWS_KeyM_00070] 📄 PDF
Std_ReturnType KeyM_KH_Finalize (const uint8* RequestData, uint16 RequestDataLength, uint8* ResponseData, uint16* ResponseDataLength);
If Key MCrypto Key Start Finalize Function Enabled and Key MCrypto Key Handler Start Finalize Enabled is set to TRUE, this function will be called immediately when Key M_
الاستخدام والتفويض
يتم التصريح عن الدالة KeyM_KH_Finalize عبر ملف الرأس KeyM_Externals.h وتعمل كمعالج مفاتيح (Key-Handler) مخصص للمستخدم [SWS_KeyM_00070]. وإذا تم ضبط كل من KeyMCryptoKeyStartFinalizeFunctionEnabled وKeyMCryptoKeyHandlerStartFinalizeEnabled في التهيئة على TRUE، فإن KeyM_Finalize() لا تنفذ عملية مستقلة، بل تفوض المعالجة مباشرة إلى دالة المعالج هذه [SWS_KeyM_00070].
سياق الاستدعاء والمعلمات
يتم استدعاء KeyM_KH_Finalize بشكل متزامن، ولكنه مصنف على أنه غير قابل لإعادة الدخول (Non Reentrant) ويتطلب سياق استدعاء محميًا [SWS_KeyM_00070]. يتم تسليم البيانات عبر المعلمات التالية:
RequestDataوRequestDataLength: مؤشر إلى بيانات الإدخال الممررة مع الطلب بالإضافة إلى طول مصفوفة البيانات [SWS_KeyM_00070].ResponseData: ذاكرة وسيطة لبيانات الإخراج المقدمة من الدالة [SWS_KeyM_00070].ResponseDataLength: معامل إدخال/إخراج يحدد عند الاستدعاء الحد الأقصى لكمية البايتات المتاحة في الذاكرة الوسيطة للاستجابة، ويحتوي عند العودة على عدد البايتات المكتوبة فعليًا [SWS_KeyM_00070].
قيم الإرجاع ومعالجة الأخطاء
تُعاد نتيجة العملية عبر Std_ReturnType [SWS_KeyM_00070]:
E_OK: قُبلت العملية وستتم معالجتها داخليًا؛ وتُتاح النتائج عبر دالة استدعاء رد (Callback) [SWS_KeyM_00070]. التفسير: على الرغم من تعريف واجهة الدالة على أنها متزامنة، فمن المرجح أن يستمر التنفيذ الفعلي في الخلفية. سؤال Q-02c4aac040570c03 (مفتوح)E_NOT_OK: لم تُقبل العملية بسبب خطأ داخلي [SWS_KeyM_00070].KEYM_E_BUSY: وحدة Key Manager مشغولة بمهام أخرى، ولهذا السبب لا يمكن إجراء التحقق من الصحة حاليًا [SWS_KeyM_00070].KEYM_E_PARAMETER_MISMATCH: توجد معلمة لا تتطابق مع القيمة المتوقعة [SWS_KeyM_00070].KEYM_E_KEY_CERT_SIZE_MISMATCH: حجم المعامل الممرر لا يتطابق مع المتطلبات المحددة [SWS_KeyM_00070].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي وهو مخصص كدليل إرشادي. والمستند المرجعي الملزم هو مواصفة AUTOSAR.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة KeyM_CryptoKeyUpdateCallbackNotification [SWS_KeyM_00077] 📄 PDF
void KeyM_CryptoKeyUpdateCallbackNotification (KeyM_ResultType Result, uint16 ResultDataLength, const uint8* ResultDataPtr);
Notifies the application that a crypto key update operation has been finished. This function is used by the key manager.
تخطر دالة استدعاء الرد KeyM_CryptoKeyUpdateCallbackNotification() التطبيق باكتمال تحديث مفتاح تشفير ([SWS_KeyM_00077]). يتم توفير الدالة عبر KeyM_Externals.h، وهي متزامنة وقابلة لإعادة الدخول وليس لها قيمة إرجاع ([SWS_KeyM_00077]).
المعلمات
Result: ينقل معلومات حول نتيجة عملية التحديث عبر النوعKeyM_ResultType([SWS_KeyM_00077]، [SWS_KeyM_00156]).ResultDataLength: يحدد طول البيانات الناتجة عن هذه العملية ([SWS_KeyM_00077]، [SWS_KeyM_00156]).ResultDataPtr: مؤشر إلى بيانات النتيجة ([SWS_KeyM_00077]).
التفاعل وإدارة المخازن المؤقتة
يتم استدعاء KeyM_CryptoKeyUpdateCallbackNotification() بواسطة KeyM_Update() بمجرد عودة معالج المفاتيح وتقديمه لنوع العملية KEYM_KH_UPDATE_FINISH ([SWS_KeyM_00093]). وفي أثناء ذلك، تُنسخ بيانات النتيجة من KeyM_KH_Update::ResultDataPtr إلى الذاكرة الوسيطة التي تم تمريرها عند استدعاء KeyM_Update()، ويتم اعتماد قيمة الإرجاع الخاصة بمعالج المفاتيح ([SWS_KeyM_00093]).
إذا قبلت KeyM_Update() العملية بـ E_OK، فلا يجوز للدالة المستدعية تعديل الذاكرة الوسيطة ResultDataPtr بأي حال من الأحوال حتى يتم إرسال إخطار استدعاء الرد KeyM_CryptoKeyUpdateCallbackNotification() ([SWS_KeyM_00156]). ويتم تمرير مؤشر الذاكرة الوسيطة نفسه في دالة استدعاء الرد كـ ResultDataPtr مع نتائج العملية المنسوخة فيه ([SWS_KeyM_00156]).
تستند ملاحظة الاستخدام هذه إلى مواصفة AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة KeyM_CryptoKeyFinalizeCallbackNotification [SWS_KeyM_00079] 📄 PDF
void KeyM_CryptoKeyFinalizeCallbackNotification (KeyM_ResultType Result, uint16 ResultDataLength, const uint8* ResultDataPtr);
Service KeyM_CryptoKeyFinalizeCallbackNotification.
تخطر دالة استدعاء الرد KeyM_CryptoKeyFinalizeCallbackNotification التطبيق باكتمال عملية إنهاء المفتاح [SWS_KeyM_00079]. تم تحديدها على أنها متزامنة وقابلة لإعادة الدخول، وليس لها قيمة إرجاع، ويتم الإعلان عنها عبر ملف الترويسة KeyM_Externals.h [SWS_KeyM_00079].
تمرر الواجهة المعاملات التالية إلى التطبيق عند الاستدعاء [SWS_KeyM_00079]:
Result(النوعKeyM_ResultType): يرسل النتيجة ومعلومات الحالة للعملية المكتملة [SWS_KeyM_00079].Result Data Length(النوعuint16): يحدد طول البيانات الناتجة عن هذه العملية [SWS_KeyM_00079].Result Data Ptr(النوعconst uint8*): مؤشر إلى الذاكرة الوسيطة المحتوية على بيانات النتيجة، والتي تم تقديمها مسبقًا لدالة الخدمة [SWS_KeyM_00079].
فيما يتعلق بالتكوين، لا يتم استدعاء دالة استدعاء الرد وتكون مطلوبة إلا إذا تم ضبط معامل التكوين KeyMCryptoKeyStartFinalizeFunctionEnabled على TRUE [SWS_KeyM_00079]. لم يتم تعريف رسائل خطأ محددة لـ DET أو DEM لدالة استدعاء الرد هذه. من المفترض أن التطبيق ينفذ دالة استدعاء الرد هذه لتلقي النتائج غير المتزامنة لعملية إنهاء مفتاح بدأت سابقًا. سؤال Q-6d9e4e062b008832 (مفتوح)
تم إنشاء ملاحظة الاستخدام هذه بصورة آلية استنادًا إلى مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة KeyM_CryptoKeyVerifyCallbackNotification [SWS_KeyM_00081] 📄 PDF
void KeyM_CryptoKeyVerifyCallbackNotification (KeyM_ResultType Result, uint32 KeyId, uint16 ResultDataLength, const uint8* ResultDataPtr);
Notifies the application that a crypto key verify operation has been finished. This function is used by the key manager.
الاستخدام والمعلمات
تُعلم دالة استدعاء الرد KeyM_CryptoKeyVerifyCallbackNotification التطبيق باكتمل عملية التحقق من مفتاح تشفير بواسطة الوحدة KeyM [SWS_KeyM_00081]. التفسير: نظرًا لأن العنصر متاح وفقًا للمواصفة عبر ملف الترويسة KeyM_Externals.h ويُستخدم لإخطار التطبيق، فمن المرجح أن يتم التنفيذ بواسطة مكون البرنامج المستخدم، بينما يتم الاستدعاء بواسطة Key Manager [SWS_KeyM_00081]. سؤال Q-e88e332a7d2cac40 (مفتوح)
تم تعريف أربعة معاملات إدخال خالصة للاستدعاء [SWS_KeyM_00081]:
Result(KeyM_ResultType): يمرر نتيجة التحقق المكتمل [SWS_KeyM_00081].KeyId(uint32): يحدد معرّف المفتاح الذي بدأ التحقق من أجله [SWS_KeyM_00081].ResultDataLength(uint16): يحتوي على طول بيانات النتيجة المتحصل عليها، إن وجدت [SWS_KeyM_00081].ResultDataPtr(const uint8*): يشير إلى بيانات نتيجة التحقق [SWS_KeyM_00081].
التزامن والقيود
لا تمتلك الدالة أي قيمة إرجاع (void) ولا معاملات إخراج أو معاملات إدخال/إخراج [SWS_KeyM_00081]. يتم تنفيذ الاستدعاء بشكل متزامن وقابل لإعادة الدخول [SWS_KeyM_00081]. لم يتم تحديد رموز أخطاء معينة أو رسائل DET أو DEM لدالة استدعاء الرد هذه؛ ويتم إرسال معلومات الحالة والخطأ حصريًا عبر المعامل Result إلى التطبيق [SWS_KeyM_00081].
أُنشئ هذا النص بواسطة ذكاء اصطناعي استنادًا إلى المواصفة.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة KeyM_ServiceCertificateCallbackNotification [SWS_KeyM_00147] 📄 PDF
void KeyM_ServiceCertificateCallbackNotification (KeyM_CertificateIdType CertId, KeyM_ResultType Result, uint16 ResultDataLength, const uint8* ResultDataPtr);
Notifies the application that the certificate service operation has been finished. This function is used by the certificate submodule. Thi s callback is only provided if Key MService Certificate Function Enabled is set to TRUE. The function name is configurable by Key MService Certificate Callback Notification Func.
الاستخدام والدلالات
تُستدعى دالة الاسترجاع KeyM_ServiceCertificateCallbackNotification بواسطة الوحدة الفرعية للشهادات في KeyM لإخطار التطبيق بانتهاء عملية خدمة الشهادات [SWS_KeyM_00147]. تعمل عملية الشهادات السابقة بشكل غير تزامني وتنفذ دالة الاسترجاع هذه عند انتهائها لنقل النتائج إلى التطبيق [SWS_KeyM_00149].
يتم نقل جميع بيانات النتائج ذات الصلة عبر معلمات الدالة [SWS_KeyM_00147]:
CertId: معرف الشهادة التي بدأت العملية من أجلها.Result: النوعKeyM_ResultTypeمع حالة العملية أو نتيجتها.ResultDataLength: طول بيانات النتيجة، إن وجدت.ResultDataPtr: مؤشر إلى بيانات النتيجة.
الدالة نفسها ليس لها قيمة مرجعة (void) وتتميز بدلالات تنفيذ تزامنية [SWS_KeyM_00147].
التكوين والقيود
يتم توفير دالة الاسترجاع عبر الترويسة KeyM_Externals.h، ولكنها لا تتوفر إلا إذا تم تعيين معامل التهيئة KeyMServiceCertificateFunctionEnabled على TRUE [SWS_KeyM_00147]. الاسم الفعلي لدالة الإخطار قابل للتخصيص عبر معامل التهيئة KeyMServiceCertificateCallbackNotificationFunc [SWS_KeyM_00147].
التزامن ومعالجة الأخطاء
وفقًا للمواصفات، تم تصنيف الدالة بأنها قابلة لإعادة الدخول [SWS_KeyM_00147]. وتتم الإشارة إلى حالات الخطأ أو النجاح للعملية غير التزامنية السابقة عبر معامل التمرير Result؛ ولا توجد إخطارات محددة لـ DET أو DEM معرفة في حمولة واجهة الاسترجاع هذه [SWS_KeyM_00147].
تم إنشاء ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي استنادًا إلى مواصفات AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة KeyM_CertificateVerifyCallbackNotification [SWS_KeyM_00073] 📄 PDF
Std_ReturnType KeyM_CertificateVerifyCallbackNotification (KeyM_CertificateIdType CertId, KeyM_CertificateStatusType Result);
Notifies the application that a certificate verification has been finished. The function name is configurable by Key MCertificate Verify Callback Notification Func. Availabl e via Key M_ Externals.h
الاستخدام
تُستخدم دالة استدعاء الرد KeyM_CertificateVerifyCallbackNotification لإخطار التطبيق باكتمال التحقق من شهادة [SWS_KeyM_00073]. الإعلان متاح عبر ملف الترويسة KeyM_Externals.h، مع إمكانية تكوين اسم الدالة عبر معامل التكوين KeyMCertificateVerifyCallbackNotificationFunc [SWS_KeyM_00073].
يتم تمرير معاملي إدخال عند الاستدعاء [SWS_KeyM_00073]:
CertId(النوعKeyM_CertificateIdType): معرف الشهادة التي تم التحقق منها [SWS_KeyM_00073].Result(النوعKeyM_CertificateStatusType): يحتوي على معلومات حول نتيجة عملية التحقق [SWS_KeyM_00073].
تعيد الدالة القيمة E_OK كقيمة حالة من النوع Std_ReturnType [SWS_KeyM_00073].
التنفيذ ومعالجة الأخطاء
تم تعريف تنفيذ الإخطار على أنه متزامن وقابل لإعادة الدخول (Reentrant) [SWS_KeyM_00073]. لا توجد رموز أخطاء محددة أو قيم إرجاع مختلفة أو رسائل إلى DET أو DEM مخصصة لدالة استدعاء الرد هذه [SWS_KeyM_00073]. التفسير: من المرجح أن يلزم تصميم التنفيذ من جانب التطبيق ليكون آمنًا بالنسبة للخيوط (Thread-safe)، وذلك لمعالجة الاستدعاءات المتزامنة لشهادات مختلفة دون آثار جانبية. سؤال Q-6bf5313c425fe1a8 (مفتوح)
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بالاستناد إلى مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
نوع KeyM_ConfigType [SWS_KeyM_00157] 📄 PDF
This structure is the base type to initialize the Key Manager module. A pointer to an instance of this structure will be used in the initialization of the Key Manager module.
نوع KeyM_KH_UpdateOperationType [SWS_KeyM_00055] 📄 PDF
Specifies the type of key handler update operation that was performed in the callback.
نوع KeyM_CertElementIteratorType [SWS_KeyM_00042] 📄 PDF
This structure is used to iterate through a number of elements of a certificate.
الاستخدام
نوع البيانات KeyM_CertElementIteratorType معرف وفقًا لـ [SWS_KeyM_00042] كبنية (Structure) ومتاح عبر ملف الترويسة KeyM.h. وفقًا للمواصفة، يُستخدم هذا النوع للتكرار عبر سلسلة من عناصر الشهادة ([SWS_KeyM_00042]). وبما أن المحتوى الفعلي لبنية البيانات محدد صراحةً على أنه خاص بالتنفيذ ([SWS_KeyM_00042])، فيُرجح أن يعتبر المستخدمون هذا النوع حالة تكرار غير شفافة وألا يصلوا مباشرةً إلى الحقول الهيكلية الداخلية. سؤال Q-81b5deb7dcdf2812 (مفتوح)
التعامل والقيود
تنتج من المواصفة الشروط العامة والعملية التالية للاستخدام:
- بنية خاصة بالتنفيذ: بما أن حقول
KeyM_CertElementIteratorTypeتُنفذ وفقًا للجهة المصنعة ([SWS_KeyM_00042])، فإن تخطيط الذاكرة الداخلي يعتمد على تحقيق BSW المعني. - إدارة الحالة: تفسير: يُرجح أن يقوم المستدعي بتخصيص مثيل للبنية كسياق مكرر وتمريره إلى الدوال المقابلة لاجتياز عناصر الشهادة، وذلك لتتبع التقدم المحرز في فحص حقول الشهادة أو استخراجها. سؤال Q-5ddb438001abe656 (مفتوح)
- التزامن: يُفترض أن مثيل المكرر غير قابل للاستخدام بشكل متزامن دون مزامنة خارجية عبر عدة مهام، في حال حدوث وصول متوازٍ إلى الشهادة نفسها. سؤال Q-6b4b8b1cdc35f021 (مفتوح)
تم إنشاء هذا النص بواسطة ذكاء اصطناعي. وهو يستند حصريًا إلى بيانات المواصفات من AUTOSAR Classic R20-11.
نوع KeyM_CryptoKeyIdType [SWS_KeyM_00302] 📄 PDF
Crypto key handle.
نوع KeyM_CertDataPointerType [SWS_KeyM_91011] 📄 PDF
Byte - pointer to the data of the certificate
نوع KeyM_StartType [SWS_KeyM_00038] 📄 PDF
This type specifies in which mode the key operation will start. The OEM production mode provides higher privileges compared to workshop mode.
نوع KeyM_CertElementIdType [SWS_KeyM_00300] 📄 PDF
Certificate Element handle.
نوع KeyM_CertificateIdType [SWS_KeyM_00301] 📄 PDF
Certificate handle.
نوع KeyM_ServiceCertificateType [SWS_KeyM_00039] 📄 PDF
This type specifies the requested service operation and what information is provided with this function.
يُتاح نوع التعداد KeyM_ServiceCertificateType عبر ملف الترويسة Rte_KeyM_Type.h ويحدد عملية خدمة الشهادات المطلوبة من خادم المفاتيح بالإضافة إلى نوع المعلومات الممررة مع الدالة [SWS_KeyM_00039]. ويُرجح أن يشير التصريح في ملف ترويسة RTE إلى أن النوع يُستخدم بشكل أساسي في تبادل البيانات بين مكونات البرمجيات والوحدة النمطية Key Manager. سؤال Q-37ed693ea3eda646 (مفتوح)
تم تحديد رموز العمليات القياسية التالية لإدارة الشهادات [SWS_KeyM_00039]:
KEYM_SERVICE_CERT_REQUEST_CSR(0x01): يطلب خادم المفاتيح من عميل المفاتيح إنشاء شهادة أو طلب توقيع شهادة (CSR) [SWS_KeyM_00039].KEYM_SERVICE_CERT_UPDATE_SIGNED_CSR(0x02): يُرجع الخادم شهادة تم استلامها سابقًا وموقعة حاليًا من قبل المرجع المصدق (CA) [SWS_KeyM_00039].KEYM_SERVICE_CERT_SET_ROOT(0x03) وKEYM_SERVICE_CERT_UPDATE_ROOT(0x04): إنشاء شهادة جذر جديدة أو تحديث شهادة جذر حالية [SWS_KeyM_00039].KEYM_SERVICE_CERT_SET_INTERMEDIATE(0x05) وKEYM_SERVICE_CERT_UPDATE_INTERMEDIATE(0x06): إضافة شهادة وسيطة (شهادة CA) أو تحديثها [SWS_KeyM_00039].KEYM_SERVICE_CERT_UPDATE_CRL(0x07): توفير قائمة إلغاء الشهادات (CRL) أو تحديثها [SWS_KeyM_00039].
كشرط مسبق أساسي، يتطلب KEYM_SERVICE_CERT_SET_INTERMEDIATE أن تكون شهادة الجذر المقترنة مودعة بالفعل قبل تعيين شهادة وسيطة، وذلك لضمان التحقق الناجح [SWS_KeyM_00039]. وتوفر المواصفة للتوسعات الخاصة بالمشروع نطاق القيم المحجوز من 0x80 إلى 0x9F [SWS_KeyM_00039].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند إلى مواصفات AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
نوع Max [SWS_KeyM_91000] 📄 PDF
Array long enough to store the key or certificate name. base Type Encoding = UTF -
نوع KeyM_CertificateStatusType [SWS_KeyM_91003] 📄 PDF
Type KeyM_CertificateStatusType.
يمثل نوع التعداد KeyM_CertificateStatusType نتيجة عمليات فحص الشهادات ويعكس حالة التحقق والمعالجة الحالية لشهادة في Key Manager [SWS_KeyM_91003]. يُوفَّر النوع عبر الترويسة Rte_KeyM_Type.h ويُستخدم من قبل المستدعين لتقييم الحالة أو أسباب الأخطاء المحددة للتحقق من الشهادة بشكل متمايز [SWS_KeyM_91003].
تغطي قيم التعداد كلاً من الحالات المرحلية وحالات النجاح العادية بالإضافة إلى أنماط الأخطاء الدقيقة [SWS_KeyM_91003]:
KEYM_CERTIFICATE_VALID(0x00): تم تحليل الشهادة والتحقق منها بنجاح [SWS_KeyM_91003].KEYM_CERTIFICATE_INVALID(0x01): الشهادة غير صالحة بسبب خطأ لم يتم تحديده بدقة [SWS_KeyM_91003].KEYM_CERTIFICATE_NOT_PARSED(0x02): لم يتم تحليل الشهادة حتى الآن [SWS_KeyM_91003].KEYM_CERTIFICATE_PARSED_NOT_VALIDATED(0x03): تم تحليل الشهادة، ولكن لم يتم التحقق من صحتها بعد [SWS_KeyM_91003].KEYM_CERTIFICATE_NOT_AVAILABLE(0x04): لم يتم تعيين أي شهادة [SWS_KeyM_91003].- نتائج الفحص المحددة للأخطاء: فشل فترة الصلاحية (
KEYM_E_CERTIFICATE_VALIDITY_PERIOD_FAIL، 0x05)، توقيع خاطئ (KEYM_E_CERTIFICATE_SIGNATURE_FAIL، 0x06)، سلسلة ثقة غير صالحة (KEYM_E_CERTIFICATE_INVALID_CHAIN_OF_TRUST، 0x07)، نوع غير صالح (KEYM_E_CERTIFICATE_INVALID_TYPE، 0x08)، تنسيق خاطئ (KEYM_E_CERTIFICATE_INVALID_FORMAT، 0x09)، محتوى غير صالح (KEYM_E_CERTIFICATE_INVALID_CONTENT، 0x0A)، بالإضافة إلى الإلغاء أو نطاق صلاحية غير صالح (KEYM_E_CERTIFICATE_REVOKED، 0x0B) [SWS_KeyM_91003].
يجب على المستدعين فحص الحالة قبل استخدام المفاتيح المشفرة؛ وعادةً ما يُسمح للعمليات بالاعتماد على شهادة فقط إذا كانت الحالة تشير صراحةً إلى KEYM_CERTIFICATE_VALID. ونظراً لأن النوع تم الإعلان عنه عبر Rte_KeyM_Type.h، فمن المرجح استخدامه بشكل أساسي في واجهات الخدمات والمنافذ القياسية للتفاعل بين KeyM وSWCs التطبيقية. سؤال Q-f3ca10ee673798df (مفتوح)
تم إنشاء هذا النص بواسطة ذكاء اصطناعي. وهو لا يغني عن دراسة مواصفات AUTOSAR الرسمية.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
نوع KeyM_CertificateElementType [SWS_KeyM_91004] 📄 PDF
Array long enough to store data
الاستخدام والبنية
تم تحديد نوع البيانات KeyM_CertificateElementType كمصفوفة بايت بنوع العناصر uint8، ويُستخدم وفقًا للمواصفات كمنطقة تخزين كبيرة بما يكفي لحفظ بيانات عنصر الشهادة [SWS_KeyM_91004]. يتم توفير نوع البيانات والتصريح عنه لوحدة KeyM عبر ملف الترويسة Rte_KeyM_Type.h [SWS_KeyM_91004].
التكوين وبناء المتغيرات
يخضع شكل نوع البيانات لتغييرات في الاسم والحجم تعتمد على التهيئة، والتي تُشتق من المعلمات المهيأة للوحدة [SWS_KeyM_91004]:
- نمط التسمية: يتم إنشاء اسم النوع المحدد لكل عنصر وفقًا للمخطط
KeyM_CertificateElementType_{KeyMCertificate}_{KeyMCertificateElement}، حيث تتوافق العناصر النائبة مع الأسماء القصيرة المهيأةSHORT-NAMEللمثيلات المعنية لكل من الشهادة وعنصر الشهادة [SWS_KeyM_91004]. - حجم المصفوفة: يتم تحديد عدد عناصر
uint8بواسطة معامل التهيئةKeyMCertificateElementMaxLength، حتى يوفر المخزن المؤقت مساحة كافية للبيانات الأولية للعنصر المعني [SWS_KeyM_91004].
القيود والافتراضات
نظرًا لتوفير التعريف في Rte_KeyM_Type.h، يُرجح استخدام النوع في المقام الأول كمخزن مؤقت قياسي عند الواجهات المؤدية إلى مكونات البرمجيات لتبادل محتويات الشهادة [SWS_KeyM_91004]. سؤال Q-994f8ac6772de3c1 (مفتوح) ويظل الحد الأقصى لطول البيانات القابلة للمعالجة مرتبطًا بشكل ثابت بالحد الأقصى للطول المحدد في وقت التهيئة [SWS_KeyM_91004].
تم إنشاء ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي استنادًا إلى مواصفات AUTOSAR.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع KeyM_CryptoKeyDataType [SWS_KeyM_91012] 📄 PDF
Byte - pointer to the input or output data
الاستخدام وتعريف النوع
تم تعريف نوع البيانات KeyM_CryptoKeyDataType كنوع مؤشر إلى uint8* ويُستخدم كمؤشر بايت لبيانات الإدخال أو الإخراج داخل الوحدة KeyM [SWS_KeyM_91012]. يتم توفير تعريف النوع عبر ملف الترويسة Rte_KeyM_Type.h [SWS_KeyM_91012].
القيود وإدارة الذاكرة
عند استخدام KeyM_CryptoKeyDataType كمؤشر إلى مخازن البايت المؤقتة، يجب مراعاة شروط حدية محددة:
- تفسير: نظرًا لتحديد النوع كمؤشر بايت بسيط (
uint8*) [SWS_KeyM_91012]، فإن تخصيص الذاكرة المشار إليها وتحديد حجمها وصلاحيتها يقع على الأرجح على عاتق جهة الاستدعاء المعنية. سؤال Q-07c167f400cbfb9c (مفتوح) - تفسير: عند التمرير كمخزن مؤقت للإخراج، يُرجح أنه يجب التأكد من أن منطقة الذاكرة المشار إليها كبيرة بما يكفي لاستيعاب بيانات المفتاح أو البيانات التشفيرية، لمنع طفح المخزن المؤقت. سؤال (مفتوح)
- تفسير: بالنسبة للوصول المتزامن إلى المخزن المؤقت المشار إليه، يُرجح أن تكون هناك حاجة إلى تدابير مزامنة إضافية بواسطة البرمجيات المستدعية، لأن النوع نفسه لا يقدم آلية مزامنة. سؤال (مفتوح)
التكامل
تقوم جهات الاستدعاء التي تمرر بيانات مفاتيح التشفير أو الشهادات إلى واجهات KeyM أو تستقبلها منها بتضمين Rte_KeyM_Type.h للوصول إلى تعريف المؤشر المحدد النوع لـ KeyM_CryptoKeyDataType [SWS_KeyM_91012].
تم إنشاء ملاحظة الاستخدام هذه آليًا وتستند حصريًا إلى مواصفات AUTOSAR للوحدة KeyM.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع KeyM_ResultType [SWS_KeyM_91008] 📄 PDF
Specifies the result type of an asynchronous key management fu nction.
يحدد نوع التعداد KeyM_ResultType نتيجة الدوال غير المتزامنة للوحدة KeyM لإدارة المفاتيح والشهادات [SWS_KeyM_91008]. يتم توفير هذا النوع عبر ملف الترويسة Rte_KeyM_Type.h ويُستخدم لتقديم إفادة حول نتيجة أمر عمل غير متزامن مطلوب [SWS_KeyM_91008].
يشمل نطاق القيم رموز حالة وأخطاء قياسية للتقييم الدقيق من قِبل المستدعين [SWS_KeyM_91008]:
KEYM_RT_OK(0x00): اكتملت عملية إدارة المفاتيح بنجاح [SWS_KeyM_91008].KEYM_RT_NOT_OK(0x01): حدث خطأ عام أثناء عملية إدارة المفاتيح [SWS_KeyM_91008].KEYM_RT_KEY_CERT_INVALID(0x02): المفتاح أو الشهادة المشار إليها غير صالحة ولا يمكن استخدامها للعملية [SWS_KeyM_91008].KEYM_RT_KEY_CERT_WRITE_FAIL(0x03): فشلت كتابة المفتاح أو الشهادة في ذاكرة الوجهة المخصصة [SWS_KeyM_91008].KEYM_RT_KEY_CERT_UPDATE_FAIL(0x04): خطأ عام عند تحديث مفتاح أو شهادة، لم يكن بالإمكان تحديده برمز أكثر دقة [SWS_KeyM_91008].KEYM_RT_CERT_INVALID_CHAIN_OF_TRUST(0x05): فشل التحقق من الشهادة بسبب سلسلة ثقة غير صالحة [SWS_KeyM_91008].
يجب على مستدعي دوال KeyM غير المتزامنة تقييم نوع الإرجاع هذا، حتى يتمكنوا في حالة حدوث خطأ من الاستجابة بصورة محددة لسلاسل الثقة غير الصالحة أو أخطاء الوصول إلى الذاكرة أو مواد المفاتيح غير الصحيحة [SWS_KeyM_91008].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على المواصفات.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
نوع KeyM_CertDataType [SWS_KeyM_00041] 📄 PDF
This structure is used to exchange certificate data through interface functions.
تُستخدم البنية KeyM_CertDataType في الوحدة النمطية KeyM لتمرير وتبادل بيانات الشهادات عبر دوال الواجهة [SWS_KeyM_00041]. ويكون تعريف النوع متاحًا عبر ملف الترويسة KeyM.h [SWS_KeyM_00041].
تجمع البنية عنصرين أساسيين [SWS_KeyM_00041]:
certDataLength: عنصر من النوعuint32يحدد طول بيانات الشهادة [SWS_KeyM_00041].certData: عنصر من النوعVoidPtrيشير كمؤشر مباشرةً إلى بيانات الشهادة في منطقة بيانات محلية للمستدعي [SWS_KeyM_00041].
بما أن certData تشير إلى نطاقات ذاكرة في السياق المحلي للمستدعي [SWS_KeyM_00041]، فإن إدارة المخزن المؤقت تقع على عاتق الجهة المستدعية. تفسير: يُرجح أن يتعين على المستدعي ضمان بقاء الذاكرة المشار إليها صالحة طوال مدة تنفيذ دالة الواجهة المعنية بالكامل، وأن تتضمن على الأقل عدد البايتات المحدد في certDataLength. سؤال Q-7da9d5ed0975ddbd (مفتوح) بالإضافة إلى ذلك، يُفترض أنه إذا كان الطول أكبر من صفر، فيجب تمرير مؤشر صالح لا يساوي NULL لتجنب عمليات الوصول الخاطئة إلى الذاكرة داخل دالة الواجهة.
تم إنشاء ملاحظة الاستخدام هذه بصورة آلية استنادًا إلى مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_KeyM- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_KeyM@rel:R20-11#856fe79b- Content hash
856fe79b- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_KeyManager.pdf#nameddest=SWS_KeyM_00043
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني