Crypto Interface (CryIf)
Abstracts cryptographic hardware and software acceleration engines.
Funktionen — Übersicht
void CryIf_Init (const CryIf_ConfigType* configPtr);Initializes the CRYIF module.void CryIf_GetVersionInfo (Std_VersionInfoType* versioninfo);Returns the version information of this module.Std_ReturnType CryIf_ProcessJob (uint32 channelId, Crypto_JobType* job);Service CryIf_ProcessJob.Std_ReturnType CryIf_CancelJob (uint32 channelId, Crypto_JobType* job);This interface dispatches the job cancellation function to the configured crypto driver object.Std_ReturnType CryIf_KeyElementSet (uint32 cryIfKeyId, uint32 keyElementId, const uint8* keyPtr, uint32 keyLength);This function shall dispatch the set key element function to the configured crypto driver object.Std_ReturnType CryIf_KeySetValid (uint32 cryIfKeyId);This function shall dispatch the set key valid function to the configured crypto driver object.Std_ReturnType CryIf_KeySetInvalid (uint32 cryIfKeyId);Sets invalid for the status of the key identifi ed by cry If Key Id.Std_ReturnType CryIf_KeyGetStatus (uint32 cryIfKeyId, Crypto_KeyStatusType* keyStatusPtr);Returns the key state of the key identified by cry If Key Id.Std_ReturnType CryIf_KeyElementGet (uint32 cryIfKeyId, uint32 keyElementId, uint8* resultPtr, uint32* resultLengthPtr);This function shall dispatch the get key ele ment function to the configured crypto driver object.Std_ReturnType CryIf_KeyElementCopy (uint32 cryIfKeyId, uint32 keyElementId, uint32 targetCryIfKeyId, uint32 targetKeyElementId);Service CryIf_KeyElementCopy.Std_ReturnType CryIf_KeyElementCopyPartial (uint32 cryIfKeyId, uint32 keyElementId, uint32 keyElementSourceOffset, uint32 keyElementTargetOffset, uint32 keyElementCopyLength, uint32 targetCryIfKeyId, uint32 targetKeyElementId);Service CryIf_KeyElementCopyPartial.Std_ReturnType CryIf_KeyCopy (uint32 cryIfKeyId, uint32 targetCryIfKeyId);This function shall co py all key elements from the source key to a target key.Std_ReturnType CryIf_RandomSeed (uint32 cryIfKeyId, const uint8* seedPtr, uint32 seedLength);This function shall dispatch the random seed function to the configured crypto driver object.Std_ReturnType CryIf_KeyGenerate (uint32 cryIfKeyId);This function shall dispatch the key generate function to the configured crypto driver object.Std_ReturnType CryIf_KeyDerive (uint32 cryIfKeyId, uint32 targetCryIfKeyId);This function shall dispatch th e key derive function to the configured crypto driver object.Std_ReturnType CryIf_KeyExchangeCalcPubVal (uint32 cryIfKeyId, uint8* publicValuePtr, uint32* publicValueLengthPtr);This function shall dispatch the key exchange public value calculation function to the configured crypto driver object.Std_ReturnType CryIf_KeyExchangeCalcSecret (uint32 cryIfKeyId, const uint8* partnerPublicValuePtr, uint32 partnerPublicValueLength);This function shall dispatch the key exchange common shared secret calculation function to the configured crypto driver object.void CryIf_CallbackNotification (Crypto_JobType* job, Crypto_ResultType result);Notifies the CRYIF about the completion of the request with the result of the cryptographic operation.
Typen — Übersicht
struct CryIf_ConfigTypeConfiguration data structure of Cry If module
Funktionen & Typen — Detailansicht
دالة CryIf_Init [SWS_CryIf_91000] 📄 PDF
void CryIf_Init (const CryIf_ConfigType* configPtr);
Initializes the CRYIF module. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CryptoInterface
الاستخدام
تُستخدم الدالة المتزامنة CryIf_Init للتهيئة الكاملة لوحدة Crypto Interface (CryIf) وفقًا لـ AUTOSAR Classic Platform [SWS_CryIf_91000]. تم الإعلان عن الدالة في ملف الرأس CryIf.h وتملك معرف الخدمة Service-ID 0x00 [SWS_CryIf_91000]. كمعلمة إدخال وحيدة، تتوقع الواجهة configPtr، وهو مؤشر إلى بنية تكوين محددة من النوع CryIf_ConfigType [SWS_CryIf_91000]. لا ترجع الدالة أي قيمة إرجاع (void) ولا تملك معلمات Inout أو Out [SWS_CryIf_91000].
الدلالات والتزامن
يتم تنفيذ استدعاء CryIf_Init بشكل متزامن [SWS_CryIf_91000]. وبالتالي تُكمل الوحدة جميع أعمال التهيئة المطلوبة قبل إرجاع التنفيذ إلى المُستدعي. فيما يتعلق بالتزامن، تُصنف الدالة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_CryIf_91000]. لذلك، لا يجوز استدعاء الروتين بالتوازي أو بشكل متداخل في أي وقت.
القيود والتكامل
Interpretation: يُرجح أن يتم استدعاء CryIf_Init عادةً بشكل مركزي أثناء بدء تشغيل النظام ضمن مرحلة تهيئة البرمجيات الأساسية، قبل السماح باستدعاء خدمات واجهة التشفير اللاحقة. سؤال Q-31b82ca9b144c843 (مفتوح) نظرًا لأن الحمولة لا تذكر أي معالجة أخطاء محددة أو رسائل DET أو أحداث DEM، يجب على المُستدعي التأكد مسبقًا من وجود مؤشر صالح إلى التكوين. لا يتم تعريف المتطلبات ذات الصلة في الحمولة.
تم إنشاء ملاحظة الاستخدام هذه آليًا وتستند حصريًا إلى بيانات المواصفات الخاصة بـ SWS_CryIf_91000.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة CryIf_GetVersionInfo [SWS_CryIf_91001] 📄 PDF
void CryIf_GetVersionInfo (Std_VersionInfoType* versioninfo);
Returns the version information of this module.
دالة CryIf_ProcessJob [SWS_CryIf_91003] 📄 PDF
Std_ReturnType CryIf_ProcessJob (uint32 channelId, Crypto_JobType* job);
Service CryIf_ProcessJob.
تُمرر الدالة CryIf_ProcessJob (معرّف الخدمة 0x03) المتوفرة عبر ملف الرأس CryIf.h أوامر معالجة التشفير إلى كائن برنامج تشغيل التشفير المكوّن [SWS_CryIf_91003]. وتستقبل كمعلمات مُعرّف قناة التشفير (channelId) ومؤشرًا إلى تكوين الأمر (job) [SWS_CryIf_91003]. ويحتوي الهيكل job على جميع المعلومات ذات الصلة بالمستخدم وكذلك بالبنية المشفرة الأساسية المحددة [SWS_CryIf_91003]. وتتم معالجة الأوامر بشكل متزامن أو غير متزامن وفقًا للتكوين؛ بالإضافة إلى ذلك، تم تنفيذ الواجهة لتكون قابلة لإعادة الدخول [SWS_CryIf_91003].
عند الاستلام الخالي من الأخطاء، تُرجع الدالة E_OK [SWS_CryIf_91003]. وإذا فشل الطلب، تشير قيمة الإرجاع إما إلى E_NOT_OK أو إلى حالة خطأ محددة لبرنامج التشغيل: CRYPTO_E_BUSY (كائن برنامج التشغيل مشغول)، CRYPTO_E_QUEUE_FULL (قائمة الانتظار ممتلئة)، أو أخطاء تتعلق بحالات المفاتيح مثل CRYPTO_E_KEY_NOT_VALID أو CRYPTO_E_KEY_SIZE_MISMATCH أو CRYPTO_E_KEY_NOT_AVAILABLE أو CRYPTO_E_KEY_EMPTY أو CRYPTO_E_KEY_READ_FAIL أو CRYPTO_E_KEY_WRITE_FAIL، بالإضافة إلى CRYPTO_E_JOB_CANCELED عند إلغاء أمر متزامن وCRYPTO_E_ENTROPY_EXHAUSTED [SWS_CryIf_91003].
علاوة على ذلك، تُجري الواجهة عمليات فحص مسبق لمُعرّفات المفاتيح:
- إذا تم ضبط
job->jobPrimitiveInfo->primitiveInfo->serviceعلىCRYPTO_KEYSETVALIDأوCRYPTO_KEYSETINVALIDأوCRYPTO_RANDOMSEEDأوCRYPTO_KEYGENERATEأوCRYPTO_KEYDERIVEأوCRYPTO_KEYEXCHANGECALCPUBVALأوCRYPTO_KEYEXCHANGECALCSECRET، يجب أن يقعjob->cryIfKeyIdضمن نطاق القيم الصالحة [SWS_CryIf_00134]. وإلا تُبلغ الدالة الخطأCRYPTO_E_PARAM_HANDLEإلى DET وتتوقف معE_NOT_OK[SWS_CryIf_00134]. - إذا طُلبت الخدمة
CRYPTO_KEYDERIVE، فيجب بالإضافة إلى ذلك أن يقع مُعرّف المفتاح الهدفjob->cryIfTargetKeyIdضمن النطاق الصالح؛ وإلا يتم إبلاغCRYPTO_E_PARAM_HANDLEإلى DET بالمثل ويتم إرجاعE_NOT_OK[SWS_CryIf_00135].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند إلى مواصفات AUTOSAR CP R20-11.
دالة CryIf_CancelJob [SWS_CryIf_91014] 📄 PDF
Std_ReturnType CryIf_CancelJob (uint32 channelId, Crypto_JobType* job);
This interface dispatches the job cancellation function to the configured crypto driver object.
تُستخدم الدالة CryIf_CancelJob لإعادة توجيه طلب إلغاء لمهمة تشفير إلى كائن برنامج تشغيل التشفير المهيأ [SWS_CryIf_91014]. وتوفر الواجهة المعيارية لـ Crypto Interface، وهي مصرح عنها عبر ملف الترويسة CryIf.h ولها رمز الخدمة المعرّف (Service-ID) 0x0e [SWS_CryIf_91014].
لإجراء الاستدعاء، يجب تمرير معرّف القناة الهدف وتهيئة المهمة [SWS_CryIf_91014]:
channelId(إدخال،uint32): يحمل معرّف قناة التشفير المعنية [SWS_CryIf_91014].job(إدخال/إخراج،Crypto_JobType*): مؤشر إلى تهيئة المهمة، والتي تتضمن بنيات ذات معلومات متعلقة بالمستخدم وبالدوال الأولية (Primitives) [SWS_CryIf_91014].
يتم التنفيذ بشكل متزامن ويعيد حالة من النوع Std_ReturnType إلى الجهة المستدعية [SWS_CryIf_91014]:
E_OK: كان الطلب ناجحاً وتمت إزالة المهمة من برنامج التشغيل [SWS_CryIf_91014].E_NOT_OK: فشل الطلب، نظراً لتعذر إزالة المهمة [SWS_CryIf_91014].CRYPTO_E_JOB_CANCELED: قيمة معادة تشفيرية محددة لتأكيد إلغاء المهمة [SWS_CryIf_91014].
فيما يتعلق بسلوك التزامن، حُددت CryIf_CancelJob بأنها قابلة لإعادة الدخول [SWS_CryIf_91014]. ويتيح ذلك استدعاءات متوازية لإلغاء المهام، حيث يتم تفويض المعالجة بشكل مانع (Blocking) إلى كائن برنامج التشغيل الأساسي [SWS_CryIf_91014].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR R20-11.
دالة CryIf_KeyElementSet [SWS_CryIf_91004] 📄 PDF
Std_ReturnType CryIf_KeyElementSet (uint32 cryIfKeyId, uint32 keyElementId, const uint8* keyPtr, uint32 keyLength);
This function shall dispatch the set key element function to the configured crypto driver object.
تقوم الدالة المتزامنة CryIf_KeyElementSet (Service-ID 0x04) بإعادة توجيه طلب تعيين عنصر مفتاح إلى كائن مشغل التشفير المكوّن [SWS_CryIf_91004]. يتم توفير إعلان الدالة عبر ملف الرأس CryIf.h [SWS_CryIf_91004].
يتم الاستدعاء عبر أربع معلمات إدخال [SWS_CryIf_91004]:
cryIfKeyId: يُحدد معرّف المفتاح الذي يراد تحديث عنصر المفتاح الخاص به.keyElementId: يُحدد معرّف عنصر المفتاح المحدد الذي يراد تعيينه.keyPtr: مؤشر إلى المخزن المؤقت المحتوي على بيانات المفتاح التي يجب اعتمادها كعنصر.keyLength: يُحدد طول عنصر المفتاح المراد تعيينه بالبايت.
تم تحديد الدالة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_CryIf_91004]. لذلك، يجب على المُستدعين التأكد من عدم إجراء استدعاءات متزامنة غير منسقة.
تشير قيمة الإرجاع من النوع Std_ReturnType إلى نتيجة إعادة التوجيه أو التنفيذ [SWS_CryIf_91004]:
E_OK: كان الطلب ناجحًا.E_NOT_OK: فشل الطلب.CRYPTO_E_BUSY: كائن مشغل التشفير المعين مشغول حاليًا.CRYPTO_E_KEY_WRITE_FAIL: تم رفض وصول الكتابة إلى عنصر المفتاح.CRYPTO_E_KEY_NOT_AVAILABLE: المفتاح المطلوب غير متاح.CRYPTO_E_KEY_SIZE_MISMATCH: حجم عنصر المفتاح لا يتطابق مع طول البيانات المقدمة.
تم إنشاء ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي استنادًا إلى مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة CryIf_KeySetValid [SWS_CryIf_91005] 📄 PDF
Std_ReturnType CryIf_KeySetValid (uint32 cryIfKeyId);
This function shall dispatch the set key valid function to the configured crypto driver object.
الاستخدام
يتم توفير الواجهة المتزامنة CryIf_KeySetValid (Service-ID 0x05) عبر ملف الرأس CryIf.h وتقوم بإعادة توجيه طلب التحقق من صحة المفتاح إلى كائن مشغل التشفير المكوّن المعني [SWS_CryIf_91005]. يتم تمرير المعرّف cryIfKeyId كمعلمة وحيدة، والتي تحدد المفتاح الهدف الذي يجب تمييز عناصر المفتاح الخاصة به على أنها صالحة [SWS_CryIf_91005]. لا توجد معلمات إدخال/إخراج أو إخراج إضافية لهذه الدالة [SWS_CryIf_91005].
قيم الإرجاع ومعالجة الأخطاء
تُبلغ قيمة الإرجاع من النوع Std_ReturnType المُستدعي بنتيجة إعادة التوجيه والمعالجة في المشغل [SWS_CryIf_91005]:
E_OK: تمت إعادة توجيه العملية بنجاح إلى كائن مشغل التشفير واكتملت بنجاح [SWS_CryIf_91005].E_NOT_OK: فشلت إعادة التوجيه أو تنفيذ الطلب [SWS_CryIf_91005].CRYPTO_E_BUSY: تعذر تنفيذ الطلب لأن كائن مشغل التشفير المسؤول مشغول حاليًا [SWS_CryIf_91005].
التزامن والقيود
تم تحديد الدالة صراحةً في المواصفات على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_CryIf_91005]. لذلك، يجب على الكيانات المستدعية التأكد من عدم تنفيذ استدعاءات CryIf_KeySetValid بشكل متزامن أو مقاطِع أبدًا، وذلك لمنع التعارضات عند إعادة التوجيه إلى كائن المشغل بشكل موثوق.
تم توليد ملاحظة الاستخدام هذه تلقائياً بناءً على المواصفة.
دالة CryIf_KeySetInvalid [SWS_CryIf_91021] 📄 PDF
Std_ReturnType CryIf_KeySetInvalid (uint32 cryIfKeyId);
Sets invalid for the status of the key identifi ed by cry If Key Id.
تُعيّن الواجهة المتزامنة CryIf_KeySetInvalid (معرّف الخدمة 0x14) حالة المفتاح المُحدَّد عبر المعلمة cryIfKeyId إلى غير صالح [SWS_CryIf_91021]. يُوفَّر تصريح الدالة عبر ملف الرأس CryIf.h [SWS_CryIf_91021].
تنطبق المعلمات وقيم الإرجاع التالية على استخدام الدالة [SWS_CryIf_91021]:
- معلمات التمرير: يُمرَّر عبر معلمة الإدخال
cryIfKeyIdمن النوعuint32معرّف المفتاح المراد إبطال صلاحيته. لا توجد معلمات إدخال/إخراج. - القيمة المعادة (
Std_ReturnType):E_OK: نجح طلب تغيير الحالة.E_NOT_OK: فشل الطلب.CRYPTO_E_BUSY: فشل التنفيذ لأن كائن Crypto Driver Object المسؤول مشغول.
فيما يتعلق بالتزامن وسياق التنفيذ، تم تحديد CryIf_KeySetInvalid على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_CryIf_91021]. لذلك، يجب على الجهات المستدعية التأكد من أن الاستدعاءات تجري بشكل تسلسلي ولا تتداخل فيما بينها. إذا ظهرت قيمة الإرجاع CRYPTO_E_BUSY، فإن كائن Crypto Driver Object يكون محجوبًا مؤقتًا [SWS_CryIf_91021]؛ ومن المرجح في هذه الحالة أن تكون الجهة المستدعية مسؤولة عن إعادة محاولة إبطال الحالة لاحقًا. سؤال Q-4377065d4d4eecab (مفتوح)
أُنشئ هذا النص بواسطة ذكاء اصطناعي ويستند حصريًا إلى بيانات مواصفات AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة CryIf_KeyGetStatus [SWS_CryIf_91012] 📄 PDF
Std_ReturnType CryIf_KeyGetStatus (uint32 cryIfKeyId, Crypto_KeyStatusType* keyStatusPtr);
Returns the key state of the key identified by cry If Key Id.
الاستخدام وسياق الاستدعاء
تُستخدم الدالة CryIf_KeyGetStatus للاستعلام المتزامن عن حالة مفتاح تشفيري ضمن Crypto Interface [SWS_CryIf_91012]. وهي متوفرة عبر ملف الترويسة CryIf.h برمز الخدمة المعرّف (Service-ID) 0x13 [SWS_CryIf_91012]. وعند الاستدعاء، يتم تمرير المعلمات التالية:
cryIfKeyId(إدخال): المعرّف الفريد للمفتاح المراد تحديد حالته [SWS_CryIf_91012].keyStatusPtr(إخراج): مؤشر إلى متغير من النوعCrypto_KeyStatusType، تُكتب فيه حالة المفتاح [SWS_CryIf_91012].
معالجة الأخطاء وقيم الإرجاع
تشير القيمة المعادة من النوع Std_ReturnType إلى نتيجة التنفيذ [SWS_CryIf_91012]:
E_OK: نجح الاستعلام عن الحالة وتم تخزين الحالة في الذاكرة الوجهة [SWS_CryIf_91012].E_NOT_OK: فشل الطلب [SWS_CryIf_91012].
لم تُحدد رموز أخطاء معينة، أو رسائل DET، أو أحداث DEM في مواصفة العنصر؛ وتعتمد معالجة الأخطاء من جانب الجهة المستدعية بشكل أساسي على تقييم القيمة المعادة.
التزامن والقيود
تم تحديد الدالة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_CryIf_91012]. لذلك، يجب على الجهات المستدعية التأكد من عدم إجراء استدعاءات متزامنة أو مقاطعة لمثيل المفتاح نفسه أو لمثيلات مفاتيح مختلفة. بالإضافة إلى ذلك، يُفترض أن توفر الجهة المستدعية نطاق ذاكرة صالح لمؤشر الإخراج keyStatusPtr، نظراً لأن الدالة تكتب فيه مباشرةً. سؤال Q-da3a034d4f2e9442 (مفتوح)
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة CryIf_KeyElementGet [SWS_CryIf_91006] 📄 PDF
Std_ReturnType CryIf_KeyElementGet (uint32 cryIfKeyId, uint32 keyElementId, uint8* resultPtr, uint32* resultLengthPtr);
This function shall dispatch the get key ele ment function to the configured crypto driver object.
تقوم الدالة المتزامنة CryIf_KeyElementGet بإعادة توجيه الاستعلام عن عنصر مفتاح إلى Crypto Driver Object المكوّن [SWS_CryIf_91006]. تم الإعلان عنها عبر ملف الرأس CryIf.h وحُددت بأنها قابلة لإعادة الدخول [SWS_CryIf_91006].
الاستخدام والمعلمات
عند الاستدعاء، يحدد cryIfKeyId المفتاح المعني، ويحدد keyElementId عنصر المفتاح المراد استرداده [SWS_CryIf_91006]. يتم تخزين بيانات الحمولة في المخزن المؤقت resultPtr [SWS_CryIf_91006]. يعمل المؤشر resultLengthPtr كمعلمة إدخال وإخراج مشتركة للتحكم في الطول [SWS_CryIf_91006]:
- قبل التنفيذ، يمرر المُستدعي فيه حجم المخزن المؤقت المتاح الخاص بـ
resultPtr[SWS_CryIf_91006]. - إذا كان عنصر المفتاح يسمح بالوصول الجزئي، فإن القيمة تحدد بدلاً من ذلك كمية البيانات المراد استردادها، والتي لا يلزم أن تتطابق مع حجم المخزن المؤقت [SWS_CryIf_91006].
- بعد انتهاء العملية، تخزن الدالة كمية البيانات المكتوبة فعليًا في موقع الذاكرة هذا [SWS_CryIf_91006].
معالجة الأخطاء وقيم الإرجاع
تشير قيمة الإرجاع من النوع Std_ReturnType إلى حالة النجاح أو الخطأ [SWS_CryIf_91006]:
E_OK: اكتمل الطلب بنجاح [SWS_CryIf_91006].E_NOT_OK: فشل التنفيذ [SWS_CryIf_91006].CRYPTO_E_BUSY: كائن Crypto Driver Object مشغول [SWS_CryIf_91006].CRYPTO_E_KEY_NOT_AVAILABLE: عنصر المفتاح المطلوب غير متوفر [SWS_CryIf_91006].CRYPTO_E_KEY_READ_FAIL: تم رفض وصول القراءة إلى عنصر المفتاح [SWS_CryIf_91006].CRYPTO_E_KEY_EMPTY: عنصر المفتاح المصدر غير مهيأ [SWS_CryIf_91006].
تم توليد ملاحظة الاستخدام هذه تلقائيًا على أساس مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة CryIf_KeyElementCopy [SWS_CryIf_91015] 📄 PDF
Std_ReturnType CryIf_KeyElementCopy (uint32 cryIfKeyId, uint32 keyElementId, uint32 targetCryIfKeyId, uint32 targetKeyElementId);
Service CryIf_KeyElementCopy.
تُستخدم الدالة المتزامنة CryIf_KeyElementCopy لنسخ عنصر مفتاح من مفتاح مصدر إلى مفتاح هدف وفقاً لـ [SWS_CryIf_91015]. تتوفر الخدمة عبر ملف الترويسة CryIf.h.
لإجراء الاستدعاء، يتم تمرير المفتاح المصدر (cryIfKeyId)، وعنصر المصدر المراد نسخه (keyElementId)، بالإضافة إلى المفتاح الهدف (targetCryIfKeyId) وعنصر الهدف (targetKeyElementId) عبر معلمات الإدخال [SWS_CryIf_91015]. صُممت الدالة لتكون قابلة لإعادة الدخول، ولكن ليس بشكل صريح للـ cryIfKeyId نفسها [SWS_CryIf_91015]. وكتفسير، قد يكون من البديهي أنه لتجنب تعارضات البيانات، ينبغي أيضاً على الجهة المستدعية مزامنة عمليات الوصول المتزامنة للكتابة على المفتاح الهدف نفسه (targetCryIfKeyId). سؤال Q-cba3554c537dd498 (مفتوح)
تشير القيمة المرجعة من النوع Std_ReturnType إلى نتيجة العملية [SWS_CryIf_91015]:
E_OK: تمت عملية النسخ بنجاح.E_NOT_OK: فشل الطلب.CRYPTO_E_BUSY: كائن برنامج تشغيل التشفير المرتبط (Crypto Driver Object) مشغول.CRYPTO_E_KEY_NOT_AVAILABLE: عنصر المفتاح المطلوب غير متاح.CRYPTO_E_KEY_READ_FAIL: قراءة عنصر المفتاح المصدر غير مسموح بها.CRYPTO_E_KEY_WRITE_FAIL: لا يُسمح بكتابة عنصر المفتاح الهدف.CRYPTO_E_KEY_SIZE_MISMATCH: أحجام عناصر المفاتيح المعنية غير متوافقة.CRYPTO_E_KEY_EMPTY: عنصر المفتاح المصدر غير مهيأ.
تم إنشاء ملاحظة الاستخدام هذه آليًا استنادًا إلى AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة CryIf_KeyElementCopyPartial [SWS_CryIf_91018] 📄 PDF
Std_ReturnType CryIf_KeyElementCopyPartial (uint32 cryIfKeyId, uint32 keyElementId, uint32 keyElementSourceOffset, uint32 keyElementTargetOffset, uint32 keyElementCopyLength, uint32 targetCryIfKeyId, uint32 targetKeyElementId);
Service CryIf_KeyElementCopyPartial.
تقوم الدالة المتزامنة CryIf_KeyElementCopyPartial، المتوفرة عبر ملف الرأس CryIf.h، بنسخ نطاقات جزئية من عنصر مفتاح إلى عنصر مفتاح آخر [SWS_CryIf_91018]. يتم تحديد المفاتيح المصدر والهدف بالإضافة إلى العناصر المعنية عبر المعلمات cryIfKeyId وkeyElementId وtargetCryIfKeyId وtargetKeyElementId [SWS_CryIf_91018]. يتم تحديد مواضع البدء داخل كلا العنصرين بواسطة keyElementSourceOffset وkeyElementTargetOffset، بينما يحدد keyElementCopyLength العدد الدقيق للبايتات المراد نقلها [SWS_CryIf_91018].
فيما يتعلق بالتزامن، تم تصميم الروتين ليكون قابلاً لإعادة الدخول، ولكن صراحةً ليس لنفس المفتاح المصدر (cryIfKeyId) [SWS_CryIf_91018]. لذلك، يجب على المُستدعي مزامنة الاستدعاءات المتوازية ذات معرّف المفتاح المصدر المتطابق أو تجنبها.
تُبلغ قيمة الإرجاع عن حالة التنفيذ التفصيلية للطلب المتزامن [SWS_CryIf_91018]:
E_OK: تم إجراء عملية النسخ بنجاح.E_NOT_OK: فشل الطلب.CRYPTO_E_BUSY: كائن Crypto Driver Object المسؤول مثقل.CRYPTO_E_KEY_NOT_AVAILABLE: عنصر المفتاح المصدر أو الهدف المطلوب غير متاح.CRYPTO_E_KEY_READ_FAIL: قراءة عنصر المفتاح المصدر غير مسموح بها.CRYPTO_E_KEY_WRITE_FAIL: الكتابة إلى عنصر المفتاح الهدف غير مسموح بها.CRYPTO_E_KEY_SIZE_MISMATCH: أحجام العناصر أو بيانات الإزاحة والطول غير متوافقة.CRYPTO_E_KEY_EMPTY: عنصر المفتاح المصدر غير مهيأ.
تم توليد ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة CryIf_KeyCopy [SWS_CryIf_91016] 📄 PDF
Std_ReturnType CryIf_KeyCopy (uint32 cryIfKeyId, uint32 targetCryIfKeyId);
This function shall co py all key elements from the source key to a target key.
الاستخدام
تقوم الدالة المتزامنة CryIf_KeyCopy بنسخ جميع عناصر المفتاح من مفتاح مصدر إلى مفتاح هدف محدد ([SWS_CryIf_91016]). يتم توفيرها عبر ملف الرأس CryIf.h وتملك معرف الخدمة Service-ID 0x10 ([SWS_CryIf_91016]).
تتوقع الدالة معلمتي إدخال ([SWS_CryIf_91016]):
cryIfKeyId: معرّف المفتاح الذي تعمل عناصر المفتاح الخاصة به كمصدر.targetCryIfKeyId: معرّف المفتاح الذي يستقبل عناصر المفتاح كهدف.
التزامن والقيود
تم تحديد الواجهة على أنها قابلة لإعادة الدخول، ولكن لا يجوز استدعاؤها في الوقت نفسه لنفس معرّف المفتاح المصدر (cryIfKeyId) ([SWS_CryIf_91016]).
معالجة الأخطاء
تشير قيمة الإرجاع من النوع Std_ReturnType إلى نتيجة العملية ([SWS_CryIf_91016]):
E_OK: اكتملت عملية النسخ بنجاح.E_NOT_OK: فشل الطلب.CRYPTO_E_BUSY: فشلت لأن كائن Crypto-Driver الأساسي مشغول.CRYPTO_E_KEY_NOT_AVAILABLE: عنصر المفتاح المطلوب غير متاح.CRYPTO_E_KEY_READ_FAIL: قراءة عنصر المفتاح غير مسموح بها.CRYPTO_E_KEY_WRITE_FAIL: كتابة عنصر المفتاح الهدف غير مسموح بها.CRYPTO_E_KEY_SIZE_MISMATCH: أحجام عناصر المفتاح غير متوافقة مع بعضها البعض.CRYPTO_E_KEY_EMPTY: عنصر المفتاح المصدر غير مهيأ.
تم توليد ملاحظة الاستخدام هذه تلقائياً بناءً على المواصفة.
دالة CryIf_RandomSeed [SWS_CryIf_91007] 📄 PDF
Std_ReturnType CryIf_RandomSeed (uint32 cryIfKeyId, const uint8* seedPtr, uint32 seedLength);
This function shall dispatch the random seed function to the configured crypto driver object.
تُستخدم الدالة CryIf_RandomSeed لإعادة توجيه توليد أو تغذية بذرة عشوائية (Random Seed) إلى كائن مشغل التشفير المهيأ [SWS_CryIf_91007]. وهي متاحة عبر ملف الرأس CryIf.h وتمتلك معرّف الخدمة 0x07 [SWS_CryIf_91007].
تتوقع الواجهة ثلاث معلمات إدخال [SWS_CryIf_91007]:
cryIfKeyId: معرّف المفتاح الذي سيتم توليد بذرة جديدة له.seedPtr: مؤشر إلى منطقة الذاكرة التي تحتوي على البيانات لتغذية البذرة.seedLength: طول البذرة بالبايت.
سلوك التنفيذ (متزامن أو غير متزامن) غير محدد بشكل ثابت، بل يعتمد على التهيئة المعنية [SWS_CryIf_91007]. وفيما يتعلق بالتزامن، حُددت الدالة بأنها قابلة لإعادة الدخول [SWS_CryIf_91007].
كقيمة إرجاع، تُرجع الدالة Std_ReturnType بقيم الحالة التالية [SWS_CryIf_91007]:
E_OK: كان الطلب ناجحًا.E_NOT_OK: فشل الطلب.CRYPTO_E_KEY_NOT_VALID: فشل الطلب لأن حالة المفتاح للمفتاح هي "invalid".
تفسير: عند إرجاع CRYPTO_E_KEY_NOT_VALID، يُرجح أن الفحص يشير إلى المفتاح الممرر cryIfKeyId، على الرغم من أن نص المواصفة يتحدث على نحو مخالف عن cryptoKeyId [SWS_CryIf_91007]. سؤال Q-22b20256f21f131b (مفتوح)
تم توليد هذا النص بواسطة ذكاء اصطناعي ويستند إلى مواصفة AUTOSAR CP R20-11.
دالة CryIf_KeyGenerate [SWS_CryIf_91008] 📄 PDF
Std_ReturnType CryIf_KeyGenerate (uint32 cryIfKeyId);
This function shall dispatch the key generate function to the configured crypto driver object.
الاستخدام
تقوم الدالة CryIf_KeyGenerate بإعادة توجيه استدعاء الدالة لتوليد المفتاح إلى كائن Crypto-Driver المكوّن [SWS_CryIf_91008]. عبر معلمة الإدخال cryIfKeyId، يتم تمرير المعرّف الفريد للمفتاح الذي يجب تحديثه بقيمة المفتاح المولدة حديثًا [SWS_CryIf_91008]. يتم توفير إعلان هذه الواجهة عبر ملف الرأس CryIf.h [SWS_CryIf_91008].
سلوك المزامنة والتزامن
يتم التنفيذ اعتمادًا على التكوين الأساسي إما بشكل متزامن أو غير متزامن [SWS_CryIf_91008]. فيما يتعلق بسياق الاستدعاء والتزامن، تم تحديد الدالة على أنها قابلة لإعادة الدخول [SWS_CryIf_91008].
قيم الإرجاع ومعالجة الأخطاء
يُرجع الاستدعاء قيمة حالة من النوع Std_ReturnType [SWS_CryIf_91008]:
E_OK: تم تنفيذ طلب توليد المفتاح بنجاح [SWS_CryIf_91008].E_NOT_OK: فشل الطلب [SWS_CryIf_91008].CRYPTO_E_BUSY: فشل الطلب لأن كائن Crypto-Driver المعني مشغول حاليًا [SWS_CryIf_91008].CRYPTO_E_KEY_EMPTY: فشل الطلب لأن عنصر المفتاح المصدر المطلوب غير مهيأ [SWS_CryIf_91008].CRYPTO_E_KEY_NOT_VALID: فشل الطلب لأن حالة المفتاح المُشار إليه بواسطة معرّف المفتاح غير صالحة [SWS_CryIf_91008].
تم إنشاء إشعار الاستخدام هذا آليًا بناءً على مواصفات إطلاق AUTOSAR R20-11.
دالة CryIf_KeyDerive [SWS_CryIf_91009] 📄 PDF
Std_ReturnType CryIf_KeyDerive (uint32 cryIfKeyId, uint32 targetCryIfKeyId);
This function shall dispatch th e key derive function to the configured crypto driver object.
الاستخدام
تُستخدم الدالة CryIf_KeyDerive لتوجيه طلب لاشتقاق المفتاح بشكل متزامن إلى كائن برنامج تشغيل التشفير المكوّن [SWS_CryIf_91009]. وقد تم الإعلان عن الواجهة عبر ملف الرأس CryIf.h برقم معرّف الخدمة 0x09 [SWS_CryIf_91009].
عند الاستدعاء، يتم تمرير مُعرّفي مفتاحين [SWS_CryIf_91009]:
cryIfKeyId: مُعرّف المفتاح الذي يُستخدم كأساس للاشتقاق.targetCryIfKeyId: مُعرّف المفتاح الذي يتم حفظ المفتاح المشتق فيه.
معالجة الأخطاء وقيم الإرجاع
يتم إرسال نتيجة العملية عبر نوع الإرجاع Std_ReturnType [SWS_CryIf_91009]:
E_OK: تم تنفيذ الطلب بنجاح [SWS_CryIf_91009].E_NOT_OK: فشل التنفيذ [SWS_CryIf_91009].CRYPTO_E_KEY_EMPTY: عنصر المفتاح المصدر غير مهيأ [SWS_CryIf_91009].CRYPTO_E_KEY_NOT_VALID: حالة المفتاح للمفتاح المشار إليه غير صالحة [SWS_CryIf_91009].CRYPTO_E_BUSY: أبلغ كائن برنامج تشغيل التشفير الأساسي عنCRYPTO_E_BUSY[SWS_CryIf_91009].
التزامن والشروط الحدية
تم تحديد الواجهة على أنها قابلة لإعادة الدخول [SWS_CryIf_91009]. ونظرًا لأن العملية تتم بشكل متزامن، يُرجح أن يتعين على المستدعين مراعاة وقت تنفيذ برنامج التشغيل في سياق الاستدعاء المعني. سؤال Q-2b2fd50249878177 (مفتوح)
تم إنشاء ملاحظة الاستخدام هذه آلياً بناءً على مواصفة AUTOSAR R20-11.
دالة CryIf_KeyExchangeCalcPubVal [SWS_CryIf_91010] 📄 PDF
Std_ReturnType CryIf_KeyExchangeCalcPubVal (uint32 cryIfKeyId, uint8* publicValuePtr, uint32* publicValueLengthPtr);
This function shall dispatch the key exchange public value calculation function to the configured crypto driver object. Available
تقوم الدالة المتزامنة والقابلة لإعادة الدخول CryIf_KeyExchangeCalcPubVal بإعادة توجيه حساب قيمة تبادل المفاتيح العامة إلى كائن Crypto-Driver المكوّن [SWS_CryIf_91010]. الخدمة متاحة عبر ملف الرأس CryIf.h [SWS_CryIf_91010].
عند استدعاء الدالة، تتم معالجة المعلمات التالية [SWS_CryIf_91010]:
cryIfKeyId: معرّف المفتاح المراد استخدامه لبروتوكول تبادل المفاتيح.publicValuePtr: مؤشر إلى منطقة الذاكرة التي سيتم تخزين القيمة العامة المحسوبة فيها.publicValueLengthPtr: مؤشر إلى معلومات الطول. عند الاستدعاء، يجب أن تحتوي هذه المعلمة على حجم المخزن المؤقت المقدم؛ وبعد الاكتمال، تخزن الطول الفعلي للقيمة المحسوبة.
تعيد الدالة حالة من النوع Std_ReturnType [SWS_CryIf_91010]:
E_OK: كان الطلب ناجحًا.E_NOT_OK: فشل الطلب.CRYPTO_E_BUSY: خطأ لأن كائن Crypto-Driver المسؤول مشغول.CRYPTO_E_KEY_EMPTY: خطأ بسبب عدم تهيئة عنصر المفتاح المصدر.CRYPTO_E_KEY_NOT_VALID: خطأ لأن المفتاح المعنون في حالة غير صالحة.
تم إنشاء هذا النص بواسطة نظام مدعوم بالذكاء الاصطناعي ويستند حصريًا إلى بيانات المواصفات من AUTOSAR R20-11.
دالة CryIf_KeyExchangeCalcSecret [SWS_CryIf_91011] 📄 PDF
Std_ReturnType CryIf_KeyExchangeCalcSecret (uint32 cryIfKeyId, const uint8* partnerPublicValuePtr, uint32 partnerPublicValueLength);
This function shall dispatch the key exchange common shared secret calculation function to the configured crypto driver object.
تقوم الدالة المتزامنة CryIf_KeyExchangeCalcSecret بإعادة توجيه حساب السر المشترك أثناء تبادل المفاتيح إلى كائن Crypto-Driver المكوّن [SWS_CryIf_91011]. يتم تمرير معرّف المفتاح (cryIfKeyId)، ومؤشر إلى قيمة المفتاح العامة للطرف المقابل في الاتصال (partnerPublicValuePtr)، بالإضافة إلى طولها بالبايت (partnerPublicValueLength) إلى الخدمة [SWS_CryIf_91011].
معالجة الأخطاء: تُرجع الدالة النتيجة عبر Std_ReturnType [SWS_CryIf_91011]:
E_OK: تم إجراء الحساب بنجاح [SWS_CryIf_91011].CRYPTO_E_BUSY: كائن Crypto-Driver مثقل [SWS_CryIf_91011].CRYPTO_E_KEY_EMPTY: عنصر المفتاح المصدر غير مهيأ [SWS_CryIf_91011].CRYPTO_E_KEY_NOT_VALID: حالة المفتاح المحدد غير صالحة [SWS_CryIf_91011].E_NOT_OK: فشل الطلب [SWS_CryIf_91011].
التزامن: تم تحديد الواجهة على أنها قابلة لإعادة الدخول [SWS_CryIf_91011]. ونظرًا لأن العملية تُنفذ بشكل متزامن، يُرجح أن يتم الاستدعاء عادةً في سياق المهمة Task. سؤال Q-b3bca3645b0ef468 (مفتوح) يتم توفير الخدمة عبر ملف الرأس CryIf.h [SWS_CryIf_91011].
تم إنشاء ملاحظة الاستخدام هذه آليًا استنادًا إلى مواصفات AUTOSAR R20-11.
دالة CryIf_CallbackNotification [SWS_CryIf_91013] 📄 PDF
void CryIf_CallbackNotification (Crypto_JobType* job, Crypto_ResultType result);
Notifies the CRYIF about the completion of the request with the result of the cryptographic operation.
تُستخدم الدالة CryIf_CallbackNotification وفقاً لـ [SWS_CryIf_91013] لإبلاغ Crypto Interface (CryIf) باكتِمال عملية تشفيرية وكذلك بنتيجتها. يتوفر التصريح عبر ملف الترويسة CryIf.h وله رمز الخدمة المعرّف (Service-ID) 0x0d [SWS_CryIf_91013].
يتم الاستدعاء بشكل متزامن ويعالج معلمتي إدخال إلزاميتين [SWS_CryIf_91013]:
job(إدخال،Crypto_JobType*): يشير إلى بنية معلومات المهمة المكتملة ويحتوي على معرّف رد اتصال (Callback-ID) لربط المهمة المنتهية [SWS_CryIf_91013].result(إدخال،Crypto_ResultType): ينقل نتيجة العملية التشفيرية المنفذة [SWS_CryIf_91013].
لم يتم تعريف رموز أخطاء أو رسائل خطأ محددة (DET/DEM) لهذه الخدمة؛ ويتم فحص الأخطاء الوظيفية عبر المعلمة result، والتي تعكس حالة نجاح العملية أو فشلها [SWS_CryIf_91013].
فيما يتعلق بالتزامن، حُددت الدالة وفقاً لـ [SWS_CryIf_91013] بأنها غير قابلة لإعادة الدخول (Non Reentrant) وليس لها قيمة معادة (void). لذلك يجب على الجهات المستدعية التأكد من تشغيل الاستدعاءات بالتسلسل وعدم حدوث أي تنفيذات متداخلة أو متوازية. تفسير: يُرجح عادةً أن يتم استدعاء هذا الإشعار بواسطة برامج تشغيل التشفير التابعة لإرجاع نتيجة مهام التشفير المعالجة بشكل غير متزامن إلى Crypto Interface. سؤال Q-ae17af188a970e00 (مفتوح)
تم توليد ملاحظة الاستخدام هذه تلقائيًا على أساس مواصفة AUTOSAR R20-11.
نوع CryIf_ConfigType [SWS_CryIf_91118] 📄 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_CryIf- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_CryIf@rel:R20-11#5a568892- Content hash
5a568892- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CryptoInterface.pdf#nameddest=SWS_CryIf_91000
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني