DEENESPTFRRUARHIKOZHNL

Crypto Driver (Crypto)

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

دليل الوحدةمولَّد بالذكاء الاصطناعي

يوفر أوليات تشفيرية وإدارة المفاتيح لحزمة تشفير AUTOSAR Classic القريبة من العتاد.
مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 79b1b64c6bf7 المصدر أسئلة مفتوحة (2)
المرساة السببية: R20-11 صالح اعتبارًا من R20-11 مُركَّب حديثًا لهذا الإصدار من المواصفة.
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

يوفر أوليات تشفيرية وإدارة المفاتيح لحزمة تشفير AUTOSAR Classic القريبة من العتاد.

يوفر Crypto Driver كوحدة MCAL حسابات تشفيرية قريبة من العتاد بالإضافة إلى إدارة المفاتيح لحزمة تشفير AUTOSAR Classic (EXP_UtilizationOfCryptoServices ص. 8). ويغلف وحدات أمان العتاد (HSM) أو مكتبات البرمجيات في Driver Objects ويعالج المهام المتزامنة وغير المتزامنة عبر الواجهة المركزية Crypto_ProcessJob ([SWS_Crypto_91003]). تخضع عمليات الوصول إلى المفاتيح لحقوق قابلة للتكوين، ولا يتم تشغيل التخزين الدائم في NVM إلا عند نجاح التحقق من صحة المفتاح (SWS_CryptoDriver ص. 37).

يشكل Crypto Driver (الوحدة Crypto) كمشغل MCAL الأساس الأدنى لحزمة تشفير AUTOSAR Classic ويربط وحدات أمان العتاد (HSM)، ومسرعات التشفير، وإجراءات البرمجيات مباشرة بواجهة التشفير (CryIf) (EXP_UtilizationOfCryptoServices ص. 8، SWS_CryptoDriver ص. 15). في عمليات التنفيذ المتعددة، تتم تسمية المثيلات وفقًا للجهة المصنعة باستخدام المخطط Crypto_<vi>_<ai> ([SWS_Crypto_00012]). تتم التهيئة بشكل متزامن عبر [SWS_Crypto_91000] مع مؤشر فارغ إلزامي لـ [SWS_Crypto_91016] ([SWS_Crypto_00215]). داخليًا، تغلف الوحدة وحدات حسابية مستقلة في Crypto Driver Objects، حيث يمكن لكل منها تنفيذ مهمة واحدة فقط في نفس الوقت ([SWS_Crypto_00014])، بينما تتيح كائنات عددها n إجراء حسابات متوازية ([SWS_Crypto_00117]). ويعمل Driver Object 0 في هذا السياق كمولد أرقام عشوائية مركزي للاحتياجات الداخلية لجميع كائنات المشغل الأخرى لنفس المثيل ([SWS_Crypto_00224]، [SWS_Crypto_00225]).

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

مخطط السياق: تضمين Crypto Driver في حزمة تشفير AUTOSAR مع Driver Objects والواجهات إلى NvM وDET. المصادر: SWS_CryptoDriver ص. 15، SWS_Crypto_00012، SWS_Crypto_91017

تتم معالجة المهام التشفيرية عبر [SWS_Crypto_91003] (Crypto_ProcessJob)، حيث يوحد حقل بتات الوضع (START، UPDATE، FINISH) بين التدفق والاستدعاءات الشاملة (SWS_CryptoDriver ص. 25، [SWS_Crypto_00017]). تُحسب المهام غير المتزامنة عبر الدالة الدورية [SWS_Crypto_91012] (Crypto_MainFunction) وتُبلّغ إلى CryIf بعد الاكتمال عبر CRYIF_CallbackNotification ([SWS_Crypto_00027]، [SWS_Crypto_00028]). يمكن إلغاء المهام قيد التشغيل بشكل متزامن بواسطة [SWS_Crypto_00122] ([SWS_Crypto_00183]، [SWS_Crypto_00214])، بينما تقلل عمليات إعادة التوجيه المباشر للمخازن المؤقتة إلى عناصر المفاتيح من عمليات النسخ ([SWS_Crypto_00203]، [SWS_Crypto_00221]).

معالجة غير متزامنة للأمر عبر Crypto DriverCryIfCrypto DriverDriver ObjectSchM / OSCrypto_ProcessJob(objectId, job)فحص المعلمات ومقابض المفاتيحE_OK (Auftrag angenommen)Crypto_MainFunction()بدء الحساب (START/UPDATE/FINISH)تنفيذ الحساب التشفيريErgebnis bereitstellenCRYIF_CallbackNotification(job, result)العودة

مخطط تسلسلي: مسار المعالجة غير المتزامنة عبر Crypto_ProcessJob، والدورة في Crypto_MainFunction، والإخطار عبر CRYIF_CallbackNotification. المصادر: SWS_Crypto_91003، SWS_Crypto_00027، SWS_Crypto_00028، SWS_Crypto_91012

تتضمن إدارة المفاتيح تعيين ([SWS_Crypto_91004])، وقراءة ([SWS_Crypto_91006])، ونسخ ([SWS_Crypto_00155]، [SWS_Crypto_91015])، وإنشاء ([SWS_Crypto_91007])، واشتقاق ([SWS_Crypto_91008]) عناصر المفاتيح تحت رقابة صارمة على حقوق الوصول ([SWS_Crypto_00219]، [SWS_Crypto_00220]). ولأسباب تتعلق بالاتساق، لا يتم أبدًا بدء الحفظ الدائم في Non-Volatile RAM Manager (NvM) عند الكتابة الفردية، بل حصرًا عند التحقق من صحة المفتاح عبر [SWS_Crypto_91014] (Crypto_KeySetValid) (SWS_CryptoDriver ص. 37، [SWS_Crypto_91025]). في بيئات المعالجات متعددة الأنوية، تعمل الوحدة بشكل معزول في كل قسم ([SWS_Crypto_CONSTR_00001])، مع عدم جواز تخصيص كائنات HSM لأكثر من قسم واحد كحد أقصى ([SWS_Crypto_CONSTR_00003]).

دور Crypto Driver وحدود نظامه في حزمة تشفير Classic

يقع Crypto Driver (اختصار الوحدة Crypto) في أدنى طبقة من برمجيات AUTOSAR Classic الأساسية ضمن Microcontroller Abstraction Layer (MCAL) (EXP_UtilizationOfCryptoServices ص. 8). وهو موجود مباشرة أسفل واجهة التشفير (Crypto Interface، CryIf) ويخدم عبرها Crypto Service Manager (CSM) (SWS_CryptoDriver ص. 15). وتتمثل مهمته الرئيسية في تغليف وحدات الحساب التشفيرية الفعلية – سواء كانت وحدات أمان عتادية (Hardware Security Modules، HSM) أو مسرعات تشفير مخصصة مثل محركات AES أو مكتبات برمجية بحتة (SWS_CryptoDriver ص. 15). وإلى جانب الحساب الفعلي للبدائيات التشفيرية، يشتمل نطاق الوظائف على تخزين المفاتيح التشفيرية وتهيئتها وإدارتها (SWS_CryptoDriver ص. 24).

يمكن أن تتواجد عدة نسخ من برامج التشغيل لمصنعين مختلفين على نحو متوازٍ في وحدة تحكم إلكترونية واحدة؛ وفي هذه الحالة، يتم تمييز معرفات الملفات وواجهات برمجة التطبيقات (API) والتكوين بشكل فريد بواسطة ملحق خاص بالمصنع وفق المخطط Crypto_<vi>_<ai> ([SWS_Crypto_00012]). وتتم تهيئة الوحدة عبر الدالة [SWS_Crypto_91000] (Crypto_Init). وكميزة خاصة بالنسبة لمؤشر التكوين من النوع [SWS_Crypto_91016] (Crypto_ConfigType)، يجب دائمًا تمريره كمؤشر فارغ (Null pointer) ([SWS_Crypto_00215]). كما يمكن الاستعلام عن معلومات الإصدار على نحو متزامن عبر [SWS_Crypto_91001] (Crypto_GetVersionInfo)، حيث يؤدي تمرير مؤشر فارغ عند تفعيل اكتشاف أخطاء التطوير إلى الإبلاغ بالخطأ CRYPTO_E_PARAM_POINTER إلى DET (SWS_CryptoDriver ص. 56).

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

مخطط السياق: تضمين Crypto Driver في حزمة تشفير AUTOSAR مع Driver Objects والواجهات إلى NvM وDET. المصادر: SWS_CryptoDriver ص. 15، SWS_Crypto_00012، SWS_Crypto_91017

إدارة Crypto Driver Objects وتجريد العتاد

تنقسم كل نسخة من Crypto Driver داخليًا إلى كائن أو أكثر من كائنات برنامج التشغيل المنطقية (Crypto Driver Objects) (SWS_CryptoDriver ص. 15). ويشكل Crypto Driver Object الطرف الوظيفي لقناة تشفير ويمثل وحدة حساب عتادية مستقلة أو تنفيذًا برمجيًا (SWS_CryptoDriver ص. 15). ومن حيث المبدأ، لا يمكن لكائن تشغيل فردي سوى تنفيذ مهمة (Job) واحدة فقط بنشاط في أي وقت معين ([SWS_Crypto_00014]). وبناءً على ذلك، يمتلك Crypto Driver المزود بعدد n من Driver Objects القدرة على حساب n من مهام التشفير بالتوازي ([SWS_Crypto_00117]). وتحدد كفاءة الكائن المخصص البدائيات الرياضية والأمنية المدعومة ([SWS_Crypto_00013]).

إذا احتاج كائن برنامج تشغيل إلى أرقام عشوائية داخلية (على سبيل المثال لحساب القيم العامة في إطار تبادل المفاتيح عبر [SWS_Crypto_91009]) ولم يكن لديه مولد أرقام عشوائية خاص به، فإنه يلجأ إلزاميًا إلى Crypto Driver Object 0 لنفس برنامج التشغيل ([SWS_Crypto_00224]، [SWS_Crypto_00225]). ولا يُسمح لكائنات برنامج التشغيل تحت أي ظرف من الظروف بمخاطبة مولدات الأرقام العشوائية لنسخ برامج تشغيل تشفير خارجية ([SWS_Crypto_00226]). Interpretation: بالتالي يعمل Driver Object 0 كمولد أرقام عشوائية مرجعي داخلي مركزي لكافة كائنات برنامج التشغيل الأخرى في القسم نفسه. سؤال Q-4e8e30714cbc9c80 (مفتوح)

معالجة المهام بين الاستدعاء المباشر المتزامن والدفق غير المتزامن

يتم تمرير المعالجات التشفيرية إلى الوحدة كهياكل مهام من النوع Crypto_JobType عبر الواجهة المركزية [SWS_Crypto_91003] (Crypto_ProcessJob) ([SWS_Crypto_00042]، AUTOSAR_CP_SWS_CryptoServiceManager ص. 21). وتجمع الواجهة بين الاستدعاءات الكاملة القائمة على الكتل والدفق المستمر للبيانات عبر حقل بت خاص بالوضع: يمكن تمرير العمليات START وUPDATE وFINISH بشكل فردي أو مدمج (SWS_CryptoDriver ص. 25). ويشير تعيين العلامة START إلى مهمة جديدة ويؤدي إلى إلغاء كافة النسخ السابقة لنفس المهمة ([SWS_Crypto_00017]). وعند التمرير المدمج، يتم دائمًا تنفيذ الخطوات بالترتيب الثابت START ثم UPDATE وأخيرًا FINISH (SWS_CryptoDriver ص. 25).

إن مسألة معالجة المهمة على نحو متزامن أو غير متزامن هي جزء من تكوين البيانات الوصفية في Crypto_JobType (SWS_CryptoDriver ص. 26). وفي الوضع غير المتزامن، تستقبل [SWS_Crypto_91003] بيانات المهمة فقط؛ بينما يتم إطلاق التنفيذ الفعلي أو إنجازه بواسطة الدالة الرئيسية الدورية [SWS_Crypto_91012] (Crypto_MainFunction) ([SWS_Crypto_00027]، [SWS_Crypto_91012]). وبعد اكتمال الحساب غير المتزامن، يقوم Crypto Driver بإخطار الطبقة الأعلى CryIf إلزاميًا عبر استدعاء دالة الرد (Callback) CRYIF_CallbackNotification مع إرجاع الحالة ومؤشرات النتائج ([SWS_Crypto_00028]). Interpretation: في المقابل، تنفذ الاستدعاءات المتزامنة عملية التشفير بشكل حاصر (blocking) في سياق المستدعي، دون فصلها عبر الدالة الرئيسية. سؤال Q-0447ed9db11aa30b (مفتوح)

معالجة غير متزامنة للأمر عبر Crypto DriverCryIfCrypto DriverDriver ObjectSchM / OSCrypto_ProcessJob(objectId, job)فحص المعلمات ومقابض المفاتيحE_OK (Auftrag angenommen)Crypto_MainFunction()بدء الحساب (START/UPDATE/FINISH)تنفيذ الحساب التشفيريErgebnis bereitstellenCRYIF_CallbackNotification(job, result)العودة

مخطط تسلسلي: مسار المعالجة غير المتزامنة عبر Crypto_ProcessJob، والدورة في Crypto_MainFunction، والإخطار عبر CRYIF_CallbackNotification. المصادر: SWS_Crypto_91003، SWS_Crypto_00027، SWS_Crypto_00028، SWS_Crypto_91012

يمكن إلغاء مهام التشفير الجارية أو المعلقة عبر الدالة [SWS_Crypto_00122] (Crypto_CancelJob). وإذا لم تكن المهمة المطلوبة قيد المعالجة النشطة بواسطة كائن برنامج التشغيل، فإنه تتم إزالتها على الفور ويعيد الاستدعاء E_OK ([SWS_Crypto_00214]). ومع ذلك، إذا لم يتمكن العتاد من مقاطعة عملية الحساب النشطة على الفور، فإن واجهة برمجة التطبيقات (API) تقر المحاولة بالقيمة CRYPTO_E_JOB_CANCELED، ويتم إتمام الإلغاء في الخطوة التالية التي يمكن الوصول إليها ([SWS_Crypto_00183]).

إلغاء المهمة عبر Crypto_CancelJobCryIfCrypto DriverDriver ObjectCrypto_CancelJob(objectId, job)altالمهمة ليست قيد المعالجة النشطةإزالة المهمة من قائمة انتظار المشغّلE_OK (Job sofort entfernt)المهمة نشطة والأجهزة لا يمكنها الإلغاء فورًاHardware-Abbruch anfordernCRYPTO_E_JOB_CANCELED

مخطط تسلسلي: الإلغاء المتزامن لمهام التشفير عبر Crypto_CancelJob مع تفريع الحالات أثناء التنفيذ العتادي النشط. المصادر: SWS_Crypto_00122، SWS_Crypto_00183، SWS_Crypto_00214

لتجنب عمليات النسخ غير الضرورية بين ذاكرة التطبيق وذاكرة العتاد، يدعم Crypto Driver إعادة توجيه مباشرة للمخزن المؤقت (Job Redirection): يمكن إسناد بيانات الإدخال والإخراج مباشرة إلى عناصر مفاتيح داخلية عبر jobRedirectionInfoRef ([SWS_Crypto_00203]، [SWS_Crypto_00204]). ولمنع تسرب البيانات، تطبق هنا عمليات تحقق صارمة من الصلاحيات: في عمليات إعادة توجيه الإدخال لخدمات التشفير وفك التشفير، يجب أن يمتلك عنصر المفتاح الصلاحية CRYPTO_RA_ENCRYPTED على الأقل، بينما يُطلب لعمليات إعادة توجيه القراءة البحتة الصلاحية CRYPTO_RA_INTERNAL_COPY على الأقل ([SWS_Crypto_00221]).

إدارة المفاتيح، وصلاحيات الوصول، وعمليات المفاتيح التشفيرية

يتكون المفتاح المنطقي (Key) في Crypto Driver من عنصر مفتاح واحد أو أكثر (Key Elements) تستوعب مادة المفتاح الفعلية، أو متجهات التهيئة (IV)، أو بذور الأرقام العشوائية (Seeds)، أو براهين SHE (Proof) (SWS_CryptoDriver ص. 28). ويتم تنظيم الوصول إلى كل عنصر على حدة بشكل صارم: حيث تتم مراقبة عمليات الوصول للقراءة والكتابة استنادًا إلى تسلسلات هرمية مهيأة للصلاحيات (مثل CRYPTO_RA_ALLOWED، CRYPTO_RA_ENCRYPTED، CRYPTO_RA_INTERNAL_COPY)، حيث تمثل القيمة التعدادية الأصغر صلاحية وصول أعلى (SWS_CryptoDriver ص. 28، [SWS_Crypto_00219]). ولا يُسمح بعمليات القراءة المباشرة إلا مع CRYPTO_RA_ALLOWED أو CRYPTO_RA_ENCRYPTED ([SWS_Crypto_00222])؛ بينما تتطلب عمليات الكتابة CRYPTO_WA_ALLOWED أو CRYPTO_WA_ENCRYPTED على الأقل ([SWS_Crypto_00223]). وعند النسخ، يجب أن يمتلك عنصر المصدر CRYPTO_RA_INTERNAL_COPY على الأقل، وألا تكون صلاحياته أقل من صلاحيات عنصر الوجهة ([SWS_Crypto_00220]).

للتعديل المباشر على المفاتيح وعناصرها، يوفر Crypto Driver مجموعة من واجهات برمجة التطبيقات (APIs) المتزامنة: يتم تعيين البيانات وقراءتها عبر [SWS_Crypto_91004] (Crypto_KeyElementSet) أو [SWS_Crypto_91006] (Crypto_KeyElementGet). ويمكن تحديد معرفات العناصر الموجودة لمفتاح ما عبر [SWS_Crypto_00160] (Crypto_KeyElementIdsGet). ويتم نسخ المفاتيح الكاملة أو العناصر الفردية باستخدام [SWS_Crypto_00155] (Crypto_KeyCopy) أو [SWS_Crypto_00148] (Crypto_KeyElementCopy). وبالنسبة لعمليات النسخ الجزئي، تتوفر الدالة [SWS_Crypto_91015] (Crypto_KeyElementCopyPartial)، والتي تفرض عمليات تحقق دقيقة من الطول والإزاحة على مخازن المصدر والوجهة المؤقتة ([SWS_Crypto_00207]، [SWS_Crypto_00208]، [SWS_Crypto_00209]) وتضبط طول الوجهة ديناميكيًا ([SWS_Crypto_00210]، [SWS_Crypto_00211]).

علاوة على ذلك، تدعم الوحدة عمليات المفاتيح المعقدة: يتم توليد المفاتيح عبر [SWS_Crypto_91007] (Crypto_KeyGenerate) استنادًا إلى بيانات الإنتروبيا التي تمت تهيئتها مسبقًا باستخدام [SWS_Crypto_91013] (Crypto_RandomSeed). وتتولى [SWS_Crypto_91008] (Crypto_KeyDerive) اشتقاق مواد مفاتيح جديدة. وبالنسبة لبروتوكولات تبادل مفاتيح ديفي-هيلمان، تتوفر الدالتان [SWS_Crypto_91009] (Crypto_KeyExchangeCalcPubVal) لتوليد القيمة العامة و[SWS_Crypto_91010] (Crypto_KeyExchangeCalcSecret) لتحديد السر المشترك (SWS_CryptoServiceManager ص. 70).

يحتفظ كل مفتاح منطقي بحالة يمكن الاستعلام عنها عبر [SWS_Crypto_91019] (Crypto_KeyGetStatus). وتكون المفاتيح المكتوبة حديثًا في البداية في الحالة invalid ولا يتم تحريرها لتصبح valid إلا بعد التحقق الناجح من الصحة باستخدام [SWS_Crypto_91014] (Crypto_KeySetValid)، بينما تقفل [SWS_Crypto_91020] (Crypto_KeySetInvalid) المفتاح صراحة. وفيما يتعلق بتنسيقات البيانات، يعالج برنامج التشغيل المفاتيح غير المتماثلة وفقًا للمعيار RFC 5958 بترميز ASN.1-PKCS#8 ([SWS_Crypto_00184])، وهياكل مفاتيح RSA وفقًا للمعيار RFC 8017 مع OID خوارزمية ثابت 1.2.840.113549.1.1.1 ([SWS_Crypto_00185]، [SWS_Crypto_00186]، [SWS_Crypto_00187]، [SWS_Crypto_00188])، بالإضافة إلى بيانات منحنيات ECC (NIST، Brainpool، ED25519) بإحداثيات نقاط بتنسيق Little-Endian ([SWS_Crypto_00189]، [SWS_Crypto_00190]، [SWS_Crypto_00191]، [SWS_Crypto_00192]، [SWS_Crypto_00193]). وتُمرر مفاتيح SHE القريبة من العتاد بالتنسيق M1M2M3؛ ويكون إثبات التحقق الخاص بها M4M5 قابلاً للقراءة مؤقتًا في عنصر المفتاح 2 بعد التحقق من الصحة مباشرة ([SWS_Crypto_00255]).

diag_schluessel_lebenszyklus UNINITIALIZED UNINITIALIZED INVALID INVALID UNINITIALIZED->INVALID Crypto_Init / NVM-Ladefehler INVALID->INVALID Crypto_KeyElementSet / Crypto_KeyGenerate VALID VALID INVALID->VALID Crypto_KeySetValid (الفحص OK) VALID->INVALID Crypto_KeySetInvalid VALID->VALID Crypto_KeyElementSet (Re-Validierung ausstehend) NVM_SYNC NVM_SYNC VALID->NVM_SYNC NVM-Schreibanforderung NVM_SYNC->VALID Persistierung erfolgreich

مخطط الحالة: انتقالات حالة المفتاح من التعبئة مرورًا بالتحقق من الصحة وصولاً إلى الاستدامة ومعالجة الأخطاء. المصادر: SWS_Crypto_00198، SWS_Crypto_00242، SWS_Crypto_91014، SWS_Crypto_91019، SWS_Crypto_91020

استدامة عناصر المفاتيح عبر Non-Volatile RAM Manager

إذا كان مطلوبًا الحفاظ على المفاتيح غير متطايرة عبر دورات الجهد، يتم ربط Crypto Driver بـ Non-Volatile RAM Manager (NvM) (SWS_CryptoDriver ص. 35، AUTOSAR_CP_SWS_CryptoDriver ص. 37). وينص مبدأ معماري مركزي على أن عمليات الكتابة إلى NvM لا يتم إطلاقها أبدًا بشكل مباشر عند تعبئة عنصر فردي عبر Crypto_KeyElementSet (SWS_CryptoDriver ص. 37). وبدلاً من ذلك، لا تبدأ الاستدامة إلا حصريًا من خلال التحقق من صحة الحالة KEYSETVALID عبر [SWS_Crypto_91014] (Crypto_KeySetValid) أو مهمة تشفير مكافئة (SWS_CryptoDriver ص. 37). ويضمن ذلك فحص عناصر المفاتيح المعتمدة على بعضها البعض بشكل متسق وتخزينها في وصول كتابة واحد إلى NvM، مما يحافظ على دورات الذاكرة الوميضية (Flash) (SWS_CryptoDriver ص. 37).

يتم التفاعل مع NvM عبر واجهات رد اتصال (Callbacks) مخصصة: أثناء بدء تشغيل وحدة التحكم الإلكترونية، يوفر NvM كتلة التهيئة عبر [SWS_Crypto_91023] (Crypto_<vi>_<ai>_NvBlock_Init_<NvBlock>). ويتم تحميل البيانات المستدامة من مرآة RAM لـ NvM عبر [SWS_Crypto_91024] (Crypto_<vi>_<ai>_NvBlock_ReadFrom_<NvBlock>). وقبل الكتابة، يستدعي NvM الدالة [SWS_Crypto_91025] (Crypto_<vi>_<ai>_NvBlock_WriteTo_<NvBlock>) حتى ينسخ برنامج تشغيل التشفير بيانات مفاتيحه الداخلية إلى مخزن NvM المؤقت؛ ويتم الإبلاغ عن اكتمال النقل غير المتزامن للكتلة عبر [SWS_Crypto_91026] (Crypto_<vi>_<ai>_NvBlock_Callback_<NvBlock>). ولأغراض التحكم، يستخدم برنامج التشغيل خدمات NvM NvM_SetRamBlockStatus وNvM_WriteBlock ([SWS_Crypto_91017]). وإذا فشل تحميل مفتاح مستدام عند بدء التشغيل، يحدد برنامج التشغيل هذا المفتاح إلزاميًا على أنه invalid ([SWS_Crypto_00198]).

حفظ المفاتيح بشكل دائم في NVM عند التحقق من الصلاحيةCryIf / ApplikationCrypto DriverNvMCrypto_KeySetValid(cryptoKeyId)فحص اتساق العناصر وتبعياتهاNvM_WriteBlock(BlockId, NvM_Buffer)Crypto_<vi>_<ai>_NvBlock_WriteTo_<NvBlock>(NvmBuffer)نقل بيانات المفتاح إلى مرآة NvM-RAME_OKCrypto_<vi>_<ai>_NvBlock_Callback_<NvBlock>(BlockRequest, JobResult)تعيين حالة المفتاح إلى VALIDE_OKE_OK

مخطط تسلسلي: استدامة عناصر المفاتيح في NVM عند التحقق من الصحة عبر NvM_WriteBlock وردود الاتصال الخاصة ببرنامج التشغيل. المصادر: SWS_Crypto_00242، SWS_Crypto_91017، SWS_Crypto_91025، SWS_Crypto_91026

التقسيم وقواعد التشغيل متعدد النوى

لتوزيع عمليات التشفير بكفاءة على الأنظمة متعددة النوى، يمكن توزيع حزمة التشفير على أقسام برمجية متعددة (BSWDistributionGuide ص. 59). وتعمل الوحدة Crypto في كل قسم كنسخة مستقلة تمامًا: حيث يعالج كل استدعاء لواجهة برمجة التطبيقات (API) البيانات حصريًا داخل القسم الذي صدر منه ([SWS_Crypto_CONSTR_00001]). ويخضع تقسيم كائنات برنامج التشغيل لقواعد تكوين ثابتة: يجب إلزاميًا أن تشكل الأقسام المشار إليها بواسطة CryptoDriverObjectEcucPartitionRef مجموعة فرعية فعلية من الأقسام المخصصة للوحدة (CryptoEcucPartitionRef) ([SWS_Crypto_CONSTR_00002]). وإذا كان Crypto Driver Object مقترنًا بوحدة أمان عتادية (HSM)، فلا يجوز تعيينه إلا إلى 0 أو 1 من الأقسام فقط لأسباب تتعلق بعزل العتاد ([SWS_Crypto_CONSTR_00003]).

التصرف في حالة الخطأ

ينفذ Crypto Driver مراقبة أخطاء من مستويين تتكون من اكتشاف أخطاء التطوير (Development Errors) وأخطاء وقت التشغيل (Runtime Errors). وعند تفعيل وضع أمان التطوير (DET)، يتم إرسال انتهاكات الواجهة الشكلية إلى Det_ReportError ([SWS_Crypto_91017]). ويشمل ذلك الاستدعاءات قبل تهيئة برنامج التشغيل (CRYPTO_E_UNINIT، 0x00) ([SWS_Crypto_00040]، [SWS_Crypto_00196]، [SWS_Crypto_00205])، وبيانات التهيئة غير الصالحة (CRYPTO_E_INIT_FAILED، 0x01)، بالإضافة إلى المؤشرات الفارغة غير المسموح بها (CRYPTO_E_PARAM_POINTER، 0x02) ([SWS_Crypto_00040]). وإذا كانت معرفات المفاتيح أو مقابض المفاتيح المستهدفة خارج نطاق القيم المسموح به، يقطع برنامج التشغيل الاستدعاء بالقيمة E_NOT_OK ويبلغ عن CRYPTO_E_PARAM_HANDLE (0x04) ([SWS_Crypto_00040]، [SWS_Crypto_00180]، [SWS_Crypto_00197]، [SWS_Crypto_00202]، [SWS_Crypto_00217]).

إذا كانت المخازن المؤقتة الممررة للإدخال أو الإخراج غير كافية لإجراء عملية ما، يتم رفض التنفيذ ويتم الإبلاغ عن الخطأ CRYPTO_E_SMALL_BUFFER عند تفعيل DET ([SWS_Crypto_00195]، SWS_CryptoDriver ص. 49). وينطبق استثناء معياري على الخدمتين CRYPTO_HASH وCRYPTO_MACGENERATE: إذا كان مخزن الإخراج المؤقت هنا أصغر من الطول الأصلي للتجزئة (Hash) أو MAC، فلا يتم تجاهل النتيجة، بل تُكتب مبتورة في شكل البتات الأكثر أهمية (MSB) في المخزن المؤقت ([SWS_Crypto_00065]). وفي التشغيل الفعلي، يبلغ برنامج التشغيل عن أخطاء وقت تشغيل محددة عبر القيمة المرجعة: حيث تقر [SWS_Crypto_91003] نفاد إنتروبيا العشوائية برمز الإرجاع CRYPTO_E_ENTROPY_EXHAUSTED وتبلغ عن خطأ وقت التشغيل CRYPTO_E_RE_ENTROPY_EXHAUSTED (0x03) ([SWS_Crypto_00141]، [SWS_Crypto_00194]، [SWS_Crypto_91018]). وإذا فشلت عمليات القراءة أو الكتابة إلى NVM، تتم الإشارة إلى CRYPTO_E_RE_NVM_ACCESS_FAILED (0x04) ([SWS_Crypto_00194]). وتتمثل قيم الإرجاع القياسية الأخرى لواجهة برمجة التطبيقات (API) في CRYPTO_E_BUSY وCRYPTO_E_KEY_READ_FAIL وCRYPTO_E_KEY_WRITE_FAIL وCRYPTO_E_KEY_NOT_AVAILABLE وCRYPTO_E_KEY_NOT_VALID وCRYPTO_E_KEY_SIZE_MISMATCH وCRYPTO_E_KEY_EMPTY ([SWS_Crypto_00155]، [SWS_Crypto_00207]، [SWS_Crypto_91018]).

أدلة تفصيلية إضافية

تستند الخصائص الأساسية لـ Crypto Driver إلى متطلبات المواصفات الوظيفية والمواقع المعمارية التالية:

المجال الموضوعيعناصر المواصفات الأساسيةمرجع الوثيقة
إطار الوحدة وإنشاء النسخ[SWS_Crypto_00012], [SWS_Crypto_91000], [SWS_Crypto_91016], [SWS_Crypto_00215]SWS_CryptoDriver S. 15
معالجة المهام والإلغاء[SWS_Crypto_91003], [SWS_Crypto_00017], [SWS_Crypto_00027], [SWS_Crypto_00122], [SWS_Crypto_00183]SWS_CryptoDriver S. 25
إدارة المفاتيح والصلاحيات[SWS_Crypto_91004], [SWS_Crypto_91006], [SWS_Crypto_00219], [SWS_Crypto_00220], [SWS_Crypto_91014]SWS_CryptoDriver S. 28
عمليات التشفير والتبادل[SWS_Crypto_91007], [SWS_Crypto_91008], [SWS_Crypto_91009], [SWS_Crypto_91010]SWS_CryptoServiceManager S. 70
استدامة NvM وردود الاتصال[SWS_Crypto_91023], [SWS_Crypto_91024], [SWS_Crypto_91025], [SWS_Crypto_91026]SWS_CryptoDriver S. 37
تعدد النوى والتقسيم[SWS_Crypto_CONSTR_00001], [SWS_Crypto_CONSTR_00002], [SWS_Crypto_CONSTR_00003]BSWDistributionGuide S. 59

يستند هذا الدليل حصريًا إلى التحديدات المعيارية لمواصفة AUTOSAR Classic R20-11.

Crypto Driver (Crypto)

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

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

دالة Crypto_Init [SWS_Crypto_91000] 📄 PDF

void Crypto_Init (const Crypto_ConfigType* configPtr);

Initializes the Crypto Driver.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 4040b6dde00b المصدر أسئلة مفتوحة (2)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تُستخدم الدالة Crypto_Init لتهيئة Crypto Driver وفقًا لـ [SWS_Crypto_91000]. تم التصريح عن الواجهة في ملف الرأس Crypto.h ولها معرّف الخدمة 0x00 [SWS_Crypto_91000].

تم تحديد الخصائص التالية للاستدعاء ومعلمات الواجهة:

  • مؤشر التكوين: عبر معلمة الإدخال configPtr من النوع const Crypto_ConfigType*، يُمرَّر مؤشر إلى بنية التكوين المحددة [SWS_Crypto_91000].
  • قيمة الإرجاع: ليس للدالة قيمة إرجاع (void)؛ ولا توجد معلمات إدخال/إخراج ولا معلمات إخراج منفصلة [SWS_Crypto_91000].
  • سلوك التنفيذ: يتم تنفيذ روتين التهيئة بشكل متزامن (Synchronous) [SWS_Crypto_91000].
  • إمكانية إعادة الدخول: تم تعريف الدالة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_Crypto_91000]. الاستدعاءات المتوازية أو المتداخلة غير مسموح بها.

نظرًا للتصنيف على أنها غير قابلة لإعادة الدخول ولأن المواصفات لا تُرجع رموز خطأ محددة، فمن المرجح أن يتم الاستدعاء عادةً بشكل مركزي خلال مرحلة بدء تشغيل وحدة التحكم الإلكترونية قبل جميع عمليات الوصول الأخرى إلى المشغّل (تفسير). سؤال Q-008bb5a45b823891 (مفتوح) ومن المرجح أيضًا أن تكون الجهة المستدعية مسؤولة عن بقاء بنية التكوين المشار إليها صالحة بشكل دائم في الذاكرة (تفسير). سؤال Q-6271a86fad440121 (مفتوح)

تم توليد ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR CP R20-11.

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة Crypto_ProcessJob [SWS_Crypto_91003] 📄 PDF

Std_ReturnType Crypto_ProcessJob (uint32 objectId, Crypto_JobType* job);

Service Crypto_ProcessJob.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 58fc9052e1fa المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تنفذ الدالة Crypto_ProcessJob الأصل التشفيري المُكوّن في المعلمة job على كائن Crypto Driver Object المشار إليه بواسطة objectId [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] بالإضافة إلى
  • CRYPTO_E_ENTROPY_EXHAUSTED في حالة عدم كفاية الاعتلاج لمولد أرقام عشوائية؛ وفي هذه الحالة تُبلّغ الدالة بالإضافة إلى ذلك عن خطأ وقت التشغيل CRYPTO_E_RE_ENTROPY_EXHAUSTED [SWS_Crypto_00141]، [SWS_Crypto_91003].

أُنشئ هذا النص بواسطة ذكاء اصطناعي بناءً على بيانات مواصفات AUTOSAR R20-11.

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة Crypto_CancelJob [SWS_Crypto_00122] 📄 PDF

Std_ReturnType Crypto_CancelJob (uint32 objectId, Crypto_JobType* job);

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

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 53c6dc327c97 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

الاستخدام

تزيل الدالة المتزامنة Crypto_CancelJob وظيفةً مُمرَّرة من قائمة الانتظار وتُلغي معالجتها قدر الإمكان [SWS_Crypto_00122]. عند الاستدعاء، يُمرَّر معرّف كائن Crypto Driver Object (objectId) بالإضافة إلى مؤشر إلى تكوين الوظيفة (job) [SWS_Crypto_00122].

تشير قيم الإرجاع إلى نتيجة محاولة الإلغاء:

  • E_OK: كان الطلب ناجحًا وتمت إزالة الوظيفة [SWS_Crypto_00122]. إذا لم يكن هناك خطأ في المشغّل ولم تكن الوظيفة قيد المعالجة حاليًا، تُرجع الخدمة بالمثل E_OK دون إجراءات أخرى [SWS_Crypto_00214].
  • E_NOT_OK: فشل الطلب، نظراً لتعذر إزالة المهمة [SWS_Crypto_00122].
  • CRYPTO_E_JOB_CANCELED: تم إلغاء الوظيفة، لكنها تستمر في التنفيذ؛ ولا يتم إرجاع أي نتائج إلى التطبيق [SWS_Crypto_00122]. ينطبق هذا إذا كان المشغّل يعمل بدون أخطاء، ولكنه لا يستطيع إلغاء الوظيفة (بسبب قيود العتاد مثلًا) [SWS_Crypto_00183].

التزامن والقيود

الواجهة قابلة لإعادة الدخول لمثيلات مختلفة، ولكن لا يجوز استدعاؤها في الوقت نفسه لكائن Crypto Driver Object نفسه [SWS_Crypto_00122].

تم إنشاء ملاحظة الاستخدام هذه تلقائيًا وتستند حصريًا إلى بيانات مواصفات AUTOSAR R20-11.

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة Crypto_KeyElementSet [SWS_Crypto_91004] 📄 PDF

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

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

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: c644721999af المصدر أسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تُستخدم الدالة المتزامنة Crypto_KeyElementSet لتعيين البيانات الأولية لعنصر مفتاح معين لمفتاح مُحدَّد عبر cryptoKeyId في مشغّل التشفير [SWS_Crypto_91004].

المعلمات وقيم الإرجاع

عبر keyElementId يتم عنونة عنصر المفتاح الهدف، بينما يشير keyPtr إلى المخزن المؤقت للبيانات وkeyLength إلى حجمه بالبايت [SWS_Crypto_91004]. عند نجاح التعيين، تُرجع الواجهة E_OK [SWS_Crypto_91004].

معالجة الأخطاء

إذا حدث خطأ أثناء المعالجة، تُرجع الدالة قيم إرجاع محددة [SWS_Crypto_91004]:

  • CRYPTO_E_BUSY: كائن مشغّل التشفير المقترن مشغول.
  • CRYPTO_E_KEY_WRITE_FAIL: تم رفض وصول الكتابة إلى عنصر المفتاح.
  • CRYPTO_E_KEY_NOT_AVAILABLE: عنصر المفتاح المطلوب أو المفتاح غير متاح.
  • CRYPTO_E_KEY_SIZE_MISMATCH: طول البيانات المُمرَّرة لا يتطابق مع حجم عنصر المفتاح.
  • E_NOT_OK: فشل الطلب لأسباب أخرى.

التزامن

تم تحديد الدالة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_Crypto_91004]. تفسير: من المرجح أن تكون الجهات المستدعية مسؤولة عن مزامنة الاستدعاءات المتوازية فيما بينها لمنع عدم اتساق البيانات في المشغّل. سؤال Q-d7ef7a774052a212 (مفتوح)

تم إنشاء ملاحظة الاستخدام هذه آليًا استنادًا إلى المواصفة SWS_Crypto_91004 (R20-11).

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة Crypto_KeySetValid [SWS_Crypto_91014] 📄 PDF

Std_ReturnType Crypto_KeySetValid (uint32 cryptoKeyId);

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

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 234814436706 المصدر أسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تُستخدم الدالة المتزامنة Crypto_KeySetValid لضبط حالة مفتاح محدد بواسطة المعرّف cryptoKeyId إلى صالح ([SWS_Crypto_91014]). تتوفر الواجهة عبر ملف الرأس Crypto.h ولها معرّف الخدمة 0x05 ([SWS_Crypto_91014]).

عند الاستخدام، يتم تحديد المعلمات وقيم الإرجاع التالية ([SWS_Crypto_91014]):

  • معلمة الإدخال: عبر cryptoKeyId (النوع uint32) يتم تمرير معرّف المفتاح المراد ضبط حالته إلى صالح ([SWS_Crypto_91014]). لا توجد معلمات إدخال أو إخراج إضافية ([SWS_Crypto_91014]).
  • قيمة الإرجاع: يفيد رمز حالة من النوع Std_ReturnType بنتيجة الطلب ([SWS_Crypto_91014]):

فيما يتعلق بالتزامن، تم تحديد الدالة على أنها غير قابلة لإعادة الدخول («Non Reentrant») ([SWS_Crypto_91014]). تفسير: قد يضطر المتصلون إلى تنسيق الاستدعاءات المتوازية عبر المهام خارجيًا لتجنب التعارضات، وينبغي عليهم عند استلام CRYPTO_E_BUSY التخطيط لإعادة محاولة الاستدعاء في وقت لاحق. سؤال Q-32d775a9e61e5731 (مفتوح)

تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند إلى حالة المواصفة AUTOSAR R20-11.

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة Crypto_KeySetInvalid [SWS_Crypto_91020] 📄 PDF

Std_ReturnType Crypto_KeySetInvalid (uint32 cryptoKeyId);

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

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: f9c09a4552e9 المصدر
ℹ️ ملاحظة تحريرية: يجري حاليًا ترجمة هذا الدليل التقني. تُعرض أدناه النسخة المرجعية الأصلية.
مُولَّد بالذكاء الاصطناعيgemini-3.8-flash-medium · 2026-10-13

Verwendung und Semantik

Die synchrone Funktion Crypto_KeySetInvalid setzt den Status eines durch cryptoKeyId identifizierten Schlüssels auf ungültig [SWS_Crypto_91020]. Die Funktion ist in der Header-Datei Crypto.h definiert und wird über die Service-ID 0x15 angesprochen [SWS_Crypto_91020]. Als einziger Übergabeparameter dient der Eingabewert cryptoKeyId (Typ uint32), welcher den eindeutigen Bezeichner des Zielschlüssels enthält; Ein-/Ausgabe- sowie Ausgabeparameter sind nicht vorhanden [SWS_Crypto_91020].

Fehlerbehandlung und Rückgabewerte

Das Ergebnis der Funktionsausführung wird über den Rückgabewert vom Typ Std_ReturnType signalisiert [SWS_Crypto_91020]:

  • E_OK: Die Anforderung war erfolgreich und der Schlüsselstatus wurde auf ungültig gesetzt [SWS_Crypto_91020].
  • E_NOT_OK: Die Durchführung der Anforderung ist fehlgeschlagen [SWS_Crypto_91020].
  • CRYPTO_E_BUSY: Die Anforderung schlug fehl, da das zuständige Krypto-Treiberobjekt (Crypto Driver Object) derzeit belegt ist [SWS_Crypto_91020].

Nebenläufigkeit und Einschränkungen

Die Schnittstelle ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_Crypto_91020]. Ein nebenläufiger oder unterbrechender Aufruf ist daher unzulässig. Da die Funktion synchron ausgeführt wird, kehrt sie erst nach Abschluss der Statusänderung bzw. nach Feststellung des Fehlers zum Aufrufer zurück [SWS_Crypto_91020].

Dieser Nutzungshinweis wurde automatisch auf Basis der Spezifikation generiert.

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة Crypto_KeyElementGet [SWS_Crypto_91006] 📄 PDF

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

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

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: c68d666a4fd9 المصدر أسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تُستخدم الدالة المتزامنة والقابلة لإعادة الدخول Crypto_KeyElementGet لقراءة عنصر مفتاح مُحدَّد بواسطة keyElementId من المفتاح cryptoKeyId وتخزينه في منطقة الذاكرة resultPtr [SWS_Crypto_91006]. تُوفَّر الواجهة عبر ملف الرأس Crypto.h وتملك معرّف الخدمة 0x06 [SWS_Crypto_91006]. عند الاستدعاء، تُمرّر الجهة المستدعية حجم المخزن المؤقت عبر معلمة الإدخال/الإخراج resultLengthPtr أو حجم القراءة المطلوب في حالة تهيئة الوصول الجزئي؛ وبعد اكتمال التنفيذ، يُودع المشغّل كمية البيانات المنسوخة فعليًا هناك [SWS_Crypto_91006].

في حالة النجاح، تُرجع الدالة E_OK [SWS_Crypto_91006]. وإذا فشلت العملية، فإنها تشير إلى ذلك عبر رموز خطأ محددة: 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]. تفسير: نظراً لهذه التأخيرات المحتملة، من المرجح أن يكون الاستدعاء مجديًا في سياق المهمة (Task context) وليس داخل روتينات خدمة المقاطعة الحساسة للوقت. سؤال Q-ff4e2843b9aad46d (مفتوح)

تم إنشاء ملاحظة الاستخدام هذه آليًا وتستند إلى حالة مواصفات AUTOSAR Classic R20-11.

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة Crypto_KeyGetStatus [SWS_Crypto_91019] 📄 PDF

Std_ReturnType Crypto_KeyGetStatus (uint32 cryptoKeyId, Crypto_KeyStatusType* keyStatusPtr);

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

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 4f6e929a170d المصدر أسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تُستخدم الدالة المتزامنة Crypto_KeyGetStatus للاستعلام عن الحالة الحالية لمفتاح محدد داخل برنامج تشغيل التشفير [SWS_Crypto_91019]. ويتم توفيرها عبر ملف الترويسة Crypto.h وتحمل معرّف الخدمة Service-ID 0x14 [SWS_Crypto_91019].

الاستخدام والمعلمات

يتم الاستدعاء بشكل متزامن ويتوقع معامليْن [SWS_Crypto_91019]:

  • cryptoKeyId: معرّف المفتاح المراد تحديد حالته.
  • keyStatusPtr: مؤشر إلى منطقة الذاكرة من النوع Crypto_KeyStatusType التي تُعاد إليها الحالة.

كقيمة إرجاع، تُرجع واجهة التعامل Std_ReturnType. وعند التنفيذ الناجح، يتم الإبلاغ عن E_OK، بينما يتم إرجاع E_NOT_OK في حالة حدوث خطأ [SWS_Crypto_91019].

التزامن والقيود

تم التصريح عن الدالة بأنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_Crypto_91019]. ولذلك، يجب على جهات الاستدعاء التأكد من تجنب الاستدعاءات المتزامنة التفرعية من خلال آليات مزامنة ذات مستوى أعلى. ولا توجد رسائل خطأ DET محددة مدرجة؛ ومن المفترض أن الاستدعاء الخاطئ مثل تمرير مؤشر غير صالح أو معرّف ID غير صالح يؤدي مباشرةً إلى إرجاع E_NOT_OK [SWS_Crypto_91019]. سؤال Q-5703fab02905e91a (مفتوح)

تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند إلى مواصفة AUTOSAR R20-11.

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة Crypto_KeyElementCopy [SWS_Crypto_00148] 📄 PDF

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

Service Crypto_KeyElementCopy.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 0bf976054e55 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تُستخدم الدالة المتزامنة Crypto_KeyElementCopy لنسخ عنصر مفتاح إلى عنصر مفتاح آخر داخل مشغّل التشفير نفسه [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: كائن مشغّل التشفير مشغول [SWS_Crypto_00148].
  • CRYPTO_E_KEY_NOT_AVAILABLE: عنصر المفتاح المطلوب لمفتاح واحد على الأقل غير متاح [SWS_Crypto_00148].
  • CRYPTO_E_KEY_READ_FAIL أو CRYPTO_E_KEY_WRITE_FAIL: قراءة عنصر المصدر أو كتابة عنصر الهدف غير مسموح بها [SWS_Crypto_00148].
  • CRYPTO_E_KEY_SIZE_MISMATCH: أحجام عناصر المفاتيح غير متوافقة مع بعضها البعض [SWS_Crypto_00148].
  • CRYPTO_E_KEY_EMPTY: عنصر المفتاح المصدر غير مهيأ [SWS_Crypto_00148].
  • E_NOT_OK: فشل الطلب بشكل عام [SWS_Crypto_00148].

تم إنشاء ملاحظة الاستخدام هذه بصورة آلية بناءً على مواصفة AUTOSAR Classic R20-11.

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة Crypto_KeyElementCopyPartial [SWS_Crypto_91015] 📄 PDF

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

Service Crypto_KeyElementCopyPartial.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: a5ad7cce8b26 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تُستخدم الدالة المتزامنة Crypto_KeyElementCopyPartial للنسخ الجزئي للبيانات من عنصر مفتاح مصدر إلى عنصر مفتاح وجهة ضمن مشغل التشفير نفسه [SWS_Crypto_91015]. عبر المعلمتين keyElementSourceOffset وkeyElementCopyLength، يتم تحديد الجزء المراد نسخه من عنصر المصدر (cryptoKeyId، keyElementId)، بينما يحدد keyElementTargetOffset موضع البداية في عنصر الوجهة (targetCryptoKeyId، targetKeyElementId). في حال نجاح التحقق دون أخطاء، ينفذ المشغل عملية النسخ بشكل متزامن ويُرجع E_OK [SWS_Crypto_00209].

قبل التنفيذ، يتحقق المشغل من حالات المخزن المؤقت والمشغل:

  • إذا لم يكن مشغل التشفير مهيأً وكان فحص التطوير مفعلًا، تُبلغ الدالة CRYPTO_E_UNINIT إلى DET وتُرجع 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].

الدالة قابلة لإعادة الدخول، ولكن لا يجوز استدعاؤها في نفس الوقت لنفس معرف المفتاح cryptoKeyId [SWS_Crypto_91015]. إذا كان عنصر المفتاح مخزنًا مباشرة في ذاكرة Flash، فقد يؤدي التنفيذ المتزامن إلى تأخيرات زمنية ملحوظة [SWS_Crypto_91015].

تم إنشاء ملاحظة الاستخدام هذه بصورة آلية بناءً على مواصفة AUTOSAR R20-11.

دليل المنفِّذ قيد الإعداد (التعقيد I2)

دالة Crypto_KeyCopy [SWS_Crypto_00155] 📄 PDF

Std_ReturnType Crypto_KeyCopy (uint32 cryptoKeyId, uint32 targetCryptoKeyId);

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

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 4fed74be6625 المصدر
ℹ️ ملاحظة تحريرية: يجري حاليًا ترجمة هذا الدليل التقني. تُعرض أدناه النسخة المرجعية الأصلية.
مُولَّد بالذكاء الاصطناعيgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die synchrone Funktion Crypto_KeyCopy kopiert einen Schlüssel mitsamt all seiner Schlüsselelemente auf einen Zielschlüssel innerhalb desselben Crypto-Treibers [SWS_Crypto_00155]. Die Zuordnung erfolgt über die Eingangsparameter cryptoKeyId für den Quellschlüssel sowie targetCryptoKeyId für den Zielschlüssel [SWS_Crypto_00155]. Ein erfolgreicher Kopiervorgang wird mit E_OK bestätigt [SWS_Crypto_00155].

Nebenläufigkeit und Laufzeitverhalten

Die Schnittstelle ist reentrant ausgelegt, darf jedoch nicht zeitgleich für dieselbe cryptoKeyId ausgeführt werden [SWS_Crypto_00155]. Da die Ausführung synchron erfolgt, kann es bei Schlüsselelementen, die direkt im Flash-Speicher abgelegt sind, zu spürbaren Zeitverzögerungen während des Aufrufs kommen [SWS_Crypto_00155].

Fehlerbehandlung

Im Fehlerfall liefert die Funktion spezifische Rückgabewerte vom Typ Std_ReturnType [SWS_Crypto_00155]:

  • CRYPTO_E_BUSY: Das zugehörige Crypto Driver Object ist ausgelastet [SWS_Crypto_00155].
  • CRYPTO_E_KEY_NOT_AVAILABLE: Mindestens einer der angeforderten Schlüssel ist nicht verfügbar [SWS_Crypto_00155].
  • CRYPTO_E_KEY_READ_FAIL: Das Auslesen des Quellschlüsselelements ist nicht erlaubt [SWS_Crypto_00155].
  • CRYPTO_E_KEY_WRITE_FAIL: Das Beschreiben des Zielschlüsselelements ist nicht erlaubt [SWS_Crypto_00155].
  • CRYPTO_E_KEY_SIZE_MISMATCH: Die Größen der Schlüsselelemente sind nicht miteinander kompatibel [SWS_Crypto_00155].
  • CRYPTO_E_KEY_EMPTY: Das Schlüsselelement des Quellschlüssels ist nicht initialisiert [SWS_Crypto_00155].
  • E_NOT_OK: Die Durchführung der Anforderung ist fehlgeschlagen [SWS_Crypto_00155].

Dieser Verwendungshinweis wurde von einer KI auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.

دالة Crypto_KeyElementIdsGet [SWS_Crypto_00160] 📄 PDF

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

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

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 73fbfa8804b7 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تُستخدم الدالة المتزامنة Crypto_KeyElementIdsGet للاستعلام عن معلومات حول عناصر المفاتيح المتاحة في مفتاح معين [SWS_Crypto_00160]. عبر معلمة الإدخال cryptoKeyId، يتم تمرير معرّف المفتاح المراد تصدير معرّفات عناصره المتاحة [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.

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة Crypto_RandomSeed [SWS_Crypto_91013] 📄 PDF

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

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

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 7ee33749b38a المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تُستخدم الدالة المتزامنة Crypto_RandomSeed (معرّف الخدمة Service-ID 0x0d) وفقًا لـ [SWS_Crypto_91013] لإنشاء حالة البذرة (Seed) الداخلية لمفتاح وتحديثها باستخدام مصدر إنتروبيا مقدم. ويحتوي ملف الترويسة Crypto.h على تصريح الدالة.

الاستخدام ومعاملات الاستدعاء

إلى جانب التوليد الأولي، يمكن أيضًا استخدام الدالة وفقًا لـ [SWS_Crypto_91013] لتحديث حالة البذرة بإنتروبيا جديدة. ويتطلب الاستدعاء المتزامن في هذا الصدد ثلاثة معاملات إدخال:

  • cryptoKeyId: يمرر معرّف المفتاح الذي يُراد إنشاء بذرة جديدة له.
  • seedPtr: يحتوي على مؤشر إلى منطقة الذاكرة التي تضم البيانات المخصصة لتغذية البذرة.
  • seedLength: يحدد طول بيانات البذرة الممررة بالبايت.

قيم الإرجاع ومعالجة الأخطاء

كقيمة إرجاع، تبلّغ Crypto_RandomSeed عن حالة من النوع Std_ReturnType وفقًا لـ [SWS_Crypto_91013]:

  • E_OK: تم تنفيذ الطلب بنجاح.
  • E_NOT_OK: فشل الطلب.
  • CRYPTO_E_KEY_NOT_VALID: يفشل التنفيذ لأن حالة المفتاح المحدد بواسطة cryptoKeyId في الحالة «invalid».

التزامن والقيود

وفقًا لـ [SWS_Crypto_91013]، تم تحديد الدالة على أنها قابلة لإعادة الدخول (reentrant)، ولكن ليس من أجل cryptoKeyId نفسها بشكل صريح. ولذلك، يجب منع الاستدعاءات المتوازية للمفتاح نفسه من جانب جهة الاستدعاء.

تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند حصريًا إلى بيانات المواصفة الواردة في الحمولة (Payload).

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة Crypto_KeyGenerate [SWS_Crypto_91007] 📄 PDF

Std_ReturnType Crypto_KeyGenerate (uint32 cryptoKeyId);

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

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 9465afa4791c المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

الاستخدام

تولّد الدالة Crypto_KeyGenerate المُوفَّرة عبر ملف الرأس Crypto.h مادة مفتاح جديدة وتحدّث المفتاح الذي تتم عنونته عبر المعرّف cryptoKeyId [SWS_Crypto_91007]. تعمل الدالة بشكل متزامن تمامًا وهي معرّفة تحت معرّف الخدمة 0x07 [SWS_Crypto_91007]. لا توجد معلمات أخرى إلى جانب معرّف المفتاح [SWS_Crypto_91007].

التزامن والقيود

فيما يتعلق بالتزامن، تم تحديد Crypto_KeyGenerate على أنها قابلة لإعادة الدخول، ولكن مع القيد الصريح بأن هذا لا ينطبق على نفس cryptoKeyId [SWS_Crypto_91007]. إذا تم تقديم طلبات متعددة لنفس المفتاح، فيجب مزامنتها من جانب الجهة المستدعية لتجنب تعارضات المشغّل.

قيم الإرجاع ومعالجة الأخطاء

عبر قيمة الإرجاع من النوع الأساسي Std_ReturnType، تتلقى الجهة المستدعية إفادة تفصيلية حول النجاح أو أسباب الخطأ المحددة للعملية [SWS_Crypto_91007]:

  • E_OK: تم تنفيذ توليد المفتاح بنجاح [SWS_Crypto_91007].
  • CRYPTO_E_BUSY: فشل الطلب لأن كائن Crypto Driver Object المسؤول مشغول حاليًا [SWS_Crypto_91007].
  • CRYPTO_E_KEY_EMPTY: فشل التوليد لأن عنصر المفتاح المصدر المطلوب غير مهيأ [SWS_Crypto_91007].
  • CRYPTO_E_KEY_NOT_VALID: فشلت العملية لأن حالة المفتاح للمفتاح المشار إليه بواسطة cryptoKeyId تم تمييزها على أنها غير صالحة [SWS_Crypto_91007].
  • E_NOT_OK: فشل طلب توليد المفتاح لأسباب أخرى [SWS_Crypto_91007].

تم إنشاء ملاحظة الاستخدام هذه بصورة آلية بناءً على مواصفة AUTOSAR Classic R20-11.

دالة Crypto_KeyDerive [SWS_Crypto_91008] 📄 PDF

Std_ReturnType Crypto_KeyDerive (uint32 cryptoKeyId, uint32 targetCryptoKeyId);

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

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 5847568b736a المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تشتق الدالة المتزامنة Crypto_KeyDerive مفتاحًا تشفيريًا جديدًا من عناصر المفتاح لمفتاح مصدر (cryptoKeyId) وتخزنه في عنصر المفتاح ذي المعرّف 1 للمفتاح الهدف (targetCryptoKeyId) [SWS_Crypto_91008]. يجب أن يحتوي المفتاح المصدر على عناصر المفاتيح المطلوبة لكلمة المرور والملح (Salt)؛ ويتم تحديد عدد التكرارات عبر عنصر المفتاح CRYPTO_KE_KEYDERIVATION_ITERATIONS [SWS_Crypto_91008].

الاستدعاء والتزامن

تتميز واجهة التعامل بأنها قابلة لإعادة الدخول (reentrant)، ولكن لا يجوز استدعاؤها في الوقت نفسه من أجل cryptoKeyId نفسها [SWS_Crypto_91008]. ولذلك، يجب على جهات الاستدعاء التأكد من أن عمليات الاشتقاق المتوازية تعمل على مفاتيح مصدرية مختلفة.

قيم الإرجاع ومعالجة الأخطاء

تشير الدالة إلى النتيجة عبر قيم إرجاع محددة من النوع Std_ReturnType [SWS_Crypto_91008]:

  • E_OK: تم إجراء اشتقاق المفتاح بنجاح.
  • E_NOT_OK: فشل الاشتقاق. إذا كان المعامل targetCryptoKeyId خارج النطاق الصالح، تُبلّغ الدالة بالإضافة إلى ذلك CRYPTO_E_PARAM_HANDLE إلى DET [SWS_Crypto_00180] عند تفعيل ميزة كشف التطوير.
  • CRYPTO_E_BUSY: كائن برنامج تشغيل التشفير المعني (Crypto Driver Object) مشغول [SWS_Crypto_91008].
  • CRYPTO_E_KEY_EMPTY: أحد عناصر المفتاح المصدري المطلوبة غير مهيأ [SWS_Crypto_91008].
  • CRYPTO_E_KEY_NOT_VALID: حالة المفتاح المشار إليه بواسطة cryptoKeyId غير صالحة [SWS_Crypto_91008].

تم توليد ملاحظة الاستخدام هذه تلقائياً بناءً على المواصفة.

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة Crypto_KeyExchangeCalcPubVal [SWS_Crypto_91009] 📄 PDF

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

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

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: c27ddd0a9e75 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

الاستخدام

تحسب الدالة المتزامنة Crypto_KeyExchangeCalcPubVal القيمة العامة لبروتوكول تبادل المفاتيح وتخزنها في موضع التخزين الخاص بـ publicValuePtr ([SWS_Crypto_91009]). وتمرر جهة الاستدعاء عبر cryptoKeyId معرّف المفتاح الذي يُفترض استخدامه للبروتوكول. كما يجب عبر معامل الإدخال والإخراج publicValueLengthPtr تمرير حجم المخزن المؤقت للذاكرة المقدمة عند الاستدعاء؛ وبعد اكتمال التنفيذ، يُحفظ الطول الفعلي للقيمة العامة المحسوبة هناك ([SWS_Crypto_91009]).

معالجة الأخطاء وقيم الإرجاع

تُرجع الدالة E_OK عند التنفيذ الناجح. وفي حال حدوث خطأ، يتم إرجاع E_NOT_OK أو رمز خطأ محدد ([SWS_Crypto_91009]):

  • CRYPTO_E_BUSY: يفشل الطلب لأن Crypto Driver Object مشغول.
  • CRYPTO_E_KEY_EMPTY: يفشل الطلب لأن عنصر المفتاح المصدري غير مهيأ.
  • CRYPTO_E_KEY_NOT_VALID: يفشل الطلب لأن حالة المفتاح المشار إليه عبر cryptoKeyId غير صالحة.

التزامن وتكامل النظام

وفقًا لـ [SWS_Crypto_91009]، تعد الدالة قابلة لإعادة الدخول (reentrant)، ولكن ليس من أجل cryptoKeyId نفسها. وإذا كان برنامج تشغيل التشفير يحتاج لأغراض داخلية مثل Crypto_KeyExchangeCalcPubVal إلى خدمات مولد أرقام عشوائية (RNG)، فيجب تهيئة Crypto Driver Object الأول (رقم الكائن 0) لهذا الغرض ([SWS_Crypto_00224]).

تم إنشاء هذا النص بواسطة ذكاء اصطناعي. تستند جميع البيانات إلى مواصفة AUTOSAR Classic R20-11.

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة Crypto_KeyExchangeCalcSecret [SWS_Crypto_91010] 📄 PDF

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

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

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: c3912e0f8927 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تُستخدم الدالة المتزامنة Crypto_KeyExchangeCalcSecret لحساب سر مشترك (Shared Secret Key) لبروتوكول تبادل المفاتيح [SWS_Crypto_91010]. وتعالج مادة المفتاح للمفتاح المحدد عبر cryptoKeyId جنبًا إلى جنب مع القيمة العامة للطرف المقابل الممررة عبر partnerPublicValuePtr، والتي يُحدد عدد بايتاتها عبر partnerPublicValueLength [SWS_Crypto_91010]. ويتم تخزين السر المشترك المحسوب مباشرةً كعنصر مفتاح داخل المفتاح نفسه [SWS_Crypto_91010].

كقيمة إرجاع، تقدم الدالة الحالة عبر Std_ReturnType [SWS_Crypto_91010]:

  • E_OK: اكتمل حساب السر وحفظه بنجاح [SWS_Crypto_91010].
  • E_NOT_OK: فشل الطلب [SWS_Crypto_91010].
  • CRYPTO_E_BUSY: تعذر التنفيذ لأن Crypto Driver Object المسؤول مشغول [SWS_Crypto_91010].
  • CRYPTO_E_KEY_EMPTY: عنصر المفتاح المصدر غير مهيأ [SWS_Crypto_91010].
  • CRYPTO_E_KEY_NOT_VALID: حالة المفتاح المشار إليه بواسطة cryptoKeyId غير صالحة [SWS_Crypto_91010].

تم تنفيذ واجهة التعامل لتكون قابلة لإعادة الدخول (reentrant)، ولكن لا يجوز استدعاؤها على نحو متزامن تفرعي من أجل cryptoKeyId نفسها [SWS_Crypto_91010]. ولذلك، يجب على جهات الاستدعاء التأكد من تجنب الاستدعاءات المتزامنة ذات معرّف المفتاح ID المطابق، والتأكد من تهيئة مادة المفتاح المشار إليها مسبقًا وأنها في حالة صالحة لتفادي حالات الخطأ [SWS_Crypto_91010].

تم إنشاء ملاحظة الاستخدام هذه بصورة آلية بناءً على مواصفة SWS_Crypto_91010.

دالة Crypto_MainFunction [SWS_Crypto_91012] 📄 PDF

void Crypto_MainFunction (void);

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

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 0801a980dea9 المصدر أسئلة مفتوحة (3)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تُستخدم الدالة Crypto_MainFunction للمعالجة الدورية للمهام التشفيرية المدرجة في قوائم انتظار المهام الخاصة ببرنامج تشغيل التشفير [SWS_Crypto_91012]. والشرط الأساسي لاستخدامها هو أن تكون معالجة المهام غير المتزامنة مهيأة في الوحدة النمطية مع وجود قوائم انتظار مهام مطابقة [SWS_Crypto_91012].

الاستدعاء والدلالات

تمتلك الدالة التوقيع void Crypto_MainFunction(void) وهي محددة بمعرّف الخدمة Service-ID 0x0c [SWS_Crypto_91012]. وهي لا تقبل أي معاملات إدخال ولا تقدم أي قيمة إرجاع. ويتم توفير واجهة التعامل عبر ملف الترويسة SchM_Crypto.h [SWS_Crypto_91012]. يتيح ذلك تفسيرًا مفاده أن الاستدعاء الدوري يُطلق على نحو مخطط له بواسطة مجدول BSW (المسمى Schedule Manager) في سياق مهمة دورية تابعة لنظام التشغيل.

التزامن والقيود

يرتبط الاستدعاء ارتباطًا وثيقًا بتهيئة قوائم انتظار المهام غير المتزامنة [SWS_Crypto_91012]. وبما أن المواصفة لا تشير إلى قابلية إعادة الدخول (reentrancy) بالنسبة لـ Crypto_MainFunction، فمن المرجح وجوب معاملة الدالة على أنها غير قابلة لإعادة الدخول؛ ولذلك يجب تجنب الاستدعاءات المتوازية من عدة سلاسل عمليات (threads) أو مهام (tasks). سؤال Q-038d384305c8c5c3 (مفتوح)

معالجة الأخطاء

لا تتضمن المواصفة رموز أخطاء محددة أو مدخلات DET لهذه الدالة [SWS_Crypto_91012]. وبما أن الدالة لا توفر قيم إرجاع، فمن المفترض أن يتم تمرير أي أخطاء تحدث أثناء المعالجة غير المتزامنة إلى الطبقات العليا عبر استعلامات الحالة أو عبر قنوات الإبلاغ الخاصة بالمهام المعنية. سؤال (مفتوح)

تم توليد ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR CP R20-11.

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#8f44fa0b
Content hash
8f44fa0b
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CryptoDriver.pdf#nameddest=SWS_Crypto_91000

التهيئة والحالة

Returns the version information of this module.

void Crypto_GetVersionInfo (Std_VersionInfoType* versioninfo);
Crypto_Init دالة

Initializes the Crypto Driver.

void Crypto_Init (const Crypto_ConfigType* configPtr);

الخدمات · KeyElement…

Service Crypto_KeyElementCopy.

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

Service Crypto_KeyElementCopyPartial.

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

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

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

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

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

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

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

الخدمات · Key…

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

Std_ReturnType Crypto_KeyCopy (uint32 cryptoKeyId, uint32 targetCryptoKeyId);

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

Std_ReturnType Crypto_KeyDerive (uint32 cryptoKeyId, uint32 targetCryptoKeyId);

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

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

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

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

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

Std_ReturnType Crypto_KeyGenerate (uint32 cryptoKeyId);

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

Std_ReturnType Crypto_KeyGetStatus (uint32 cryptoKeyId, Crypto_KeyStatusType* keyStatusPtr);

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

Std_ReturnType Crypto_KeySetInvalid (uint32 cryptoKeyId);

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

Std_ReturnType Crypto_KeySetValid (uint32 cryptoKeyId);

الخدمات · أخرى

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

Std_ReturnType Crypto_CancelJob (uint32 objectId, Crypto_JobType* job);

Service Crypto_ProcessJob.

Std_ReturnType Crypto_ProcessJob (uint32 objectId, Crypto_JobType* job);

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

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

دورية

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

void Crypto_MainFunction (void);

الأنواع

Configuration data structure of Cry If module