وحدة ara::crypto — Cryptography
دليل الوحدةمولَّد بالذكاء الاصطناعي
يوفر عمليات تشفير معزولة وإدارة المفاتيح وخدمات شهادات X.509 للتطبيقات.
يوفر عمليات تشفير معزولة وإدارة المفاتيح وخدمات شهادات X.509 للتطبيقات.
توفر المجموعة الوظيفية Cryptography خدمات أمان موحدة للتشفير المتماثل وغير المتماثل والتحقق من التوقيع بالإضافة إلى الإدارة الآمنة للمفاتيح والشهادات (PlatformDesign ص. 71). ويتم الوصول إلى العمليات التشفيرية ومواضع المفاتيح الدائمة بشكل معزول تماماً عبر مزودين خاصين بالمنصة ومحددات مثيلات مثبتة تصريحياً في البيان (SWS Cryptography ص. 39). ويمنع فرض قيود الاستخدام في الوقت نفسه المساس بمادة المفاتيح الحساسة ([SWS_CRYPT_50092]).
توفر المجموعة الوظيفية Cryptography (ara::crypto) بنية أمان شاملة لـ AUTOSAR Adaptive Platform (PlatformDesign ص. 71). وللحماية من تطبيقات المستخدم المعرضة للاختراق، يتم عادةً تغليف حفظ المفاتيح والتنفيذ التشفيري في عفريت منصة معزول أو وحدة أمان أجهزة (HSM) (AUTOSAR AP EXP SWArchitecture ص. 97، SWS Cryptography ص. 87). وتنقسم الوظائف الكلية إلى CryptoProvider متخصصة للبدائيات الحسابية، ومنطقة تخزين المفاتيح لمواضع المفاتيح الدائمة (KeySlots)، بالإضافة إلى X509Provider على مستوى الجهاز لإدارة شهادات PKI (SWS Cryptography ص. 39).
مخطط السياق: علاقات البنية والمكونات للمجموعة الوظيفية Cryptography بين التطبيق والعفريت والمزودين. المصادر: SWS Cryptography ص. 39، PlatformDesign ص. 71، AUTOSAR AP EXP SWArchitecture ص. 97.
تنشئ التطبيقات سياقات تشفيرية مثل الشيفرات المتماثلة ([SWS_CRYPT_20742])، والشيفرات الموثقة ([SWS_CRYPT_20745])، ودوال التجزئة ([SWS_CRYPT_20747])، أو مثيلات التوقيع والتحقق ([SWS_CRYPT_20756]، [SWS_CRYPT_20757]) عبر المزود الخاص بها (AUTOSAR AP EXP SWArchitecture ص. 99). وتتبع المعالجة دورة حياة حتمية: فبعد ربط المفتاح (SetKey)، تبدأ عملية التحويل عبر Start()، ويتم دفقها عبر Update() وتكتمل مع Finish() (AUTOSAR AP TR SystemTests ص. 206، EXP SWArchitecture ص. 104). وتمنع AllowedUsageFlags غير القابلة للتغيير الاستخدام غير المصرح به للمفاتيح بفعالية ([SWS_CRYPT_50092]، AUTOSAR AP TR SystemTests ص. 177).
مخطط الحالة: دورة حياة سياقات التحويل التشفيري من التخصيص حتى إعادة التعيين. المصادر: [SWS_CRYPT_20742]، [SWS_CRYPT_23911]، [SWS_CRYPT_23625]، [SWS_CRYPT_50046]، [SWS_CRYPT_50212].
تتم إدارة الشهادات وطلبات CSR عبر X509Provider ([SWS_CRYPT_40099]، [SWS_CRYPT_40640])، بينما تتحقق سياقات التحقق من صحة سلاسل الشهادات مع مراعاة قوائم إبطال الشهادات CRL ([SWS_CRYPT_50183]) واستجابات OCSP ([SWS_CRYPT_50124]) (AUTOSAR AP TR SystemTests ص. 194). ويتم تخصيص مواضع KeySlots والشهادات للتطبيقات بصورة قائمة على النموذج في البيان عبر InstanceSpecifier (AUTOSAR AP TPS ManifestSpecification ص. 245، AUTOSAR AP TPS ManifestSpecification ص. 649). وتعمل جميع الواجهات بقيم إرجاع ara::core::Result خالية من الاستثناءات، وتشير إلى الأخطاء عبر CryptoErrorDomain ([SWS_CRYPT_19902]، SWS Cryptography ص. 208).
البنية، ونطاقات الأمان، وعزل العفريت
تشكل المجموعة الوظيفية Cryptography (ara::crypto) قاعدة الأمان المركزية لـ AUTOSAR Adaptive Platform، وتوفر الآليات التشفيرية الأساسية وإدارة المفاتيح وخدمات الشهادات (PlatformDesign ص. 71). ووفقاً لنموذج الثقة الخاص بالمنصة، تُعد المجموعات الوظيفية للمنصة جزءاً من الأساس الموثوق به، في حين يتم تشغيل Adaptive Applications في مساحة المستخدم غير المميزة (SWS Cryptography ص. 37). ولحماية مادة المفاتيح والعمليات التشفيرية بفعالية حتى في حالة حدوث اختراق محتمل لأحد التطبيقات، تم تصميم البنية عادةً لتكون قائمة على العفريت؛ حيث يظل التنفيذ الفعلي وحفظ المفاتيح ضمن عملية منصة معزولة أو في بيئة تنفيذ آمنة (AUTOSAR AP EXP SWArchitecture ص. 97، SWS Cryptography ص. 87).
تقسم البنية الوظائف التشفيرية إلى ثلاثة نطاقات أساسية: CryptoProvider للبدائيات الحسابية وتحويلات المفاتيح، ومنطقة تخزين المفاتيح (ara::crypto::keys) لحفظ الكائنات الدائم، بالإضافة إلى X509Provider (ara::crypto::x509) لإدارة الشهادات (SWS Cryptography ص. 39، SWS Cryptography ص. 87). ويمكن أن تتواجد عدة مثيلات متخصصة من CryptoProvider بالتوازي على وحدة تحكم إلكترونية واحدة، على سبيل المثال لربط وحدات أمان أجهزة مختلفة (HSM، TPM) أو برامج تشغيل برمجية (SWS Cryptography ص. 39). ومع ذلك، لا يوجد عمدياً أي توافق تشغيلي بين المزودين المختلفين: إذ ينتمي الكائن التشفيري أو المفتاح تحديداً إلى مزود واحد ولا يمكن معالجته بواسطة مزود آخر (SWS Cryptography ص. 39). ويُعزى هذا التغليف الصارم في المقام الأول إلى أن نطاقات أمان الأجهزة تفرض حدود مفاتيحها مادياً، ولا تكون مقابض المفاتيح صالحة عبر النطاقات المختلفة. سؤال Q-63efe107cf111983 (مفتوح)
مخطط السياق: علاقات البنية والمكونات للمجموعة الوظيفية Cryptography بين التطبيق والعفريت والمزودين. المصادر: SWS Cryptography ص. 39، PlatformDesign ص. 71، AUTOSAR AP EXP SWArchitecture ص. 97.
نقاط الدخول وتهيئة مزودي التشفير
تتم نقطة الدخول إلى الوحدة عبر دوال دخول عامة تعمل كمصانع لواجهات التجريد المركزية (SWArchitecture ص. 71). وتقوم التطبيقات بإنشاء أو تحميل مثيل من CryptoProvider عبر الدالة [SWS_CRYPT_20099] مع تحديد ara::core::InstanceSpecifier تمت نمذجته. وبالنسبة لإدارة الشهادات، يوجد مزود شهادات عام واحد بالضبط في النظام بأكمله، ويتم تحميله عبر [SWS_CRYPT_40099] (SWS Cryptography ص. 39). بالإضافة إلى ذلك، تتوفر خدمات مساعدة عامة، بما في ذلك التوليد المباشر للبيانات العشوائية عبر [SWS_CRYPT_30098] والاستعلام عن عداد أمان مدعوم بالأجهزة عبر [SWS_CRYPT_20098] (SWArchitecture ص. 71).
لا يتم إنشاء موارد المفاتيح الدائمة مباشرة، بل يتم تحميلها عبر مواضع مفاتيح منطقية (KeySlots). ولهذا الغرض، توفر بيئة التشغيل الدالتين [SWS_CRYPT_50004] لعمليات الوصول المقتصرة على القراءة و[SWS_CRYPT_50005] لمواضع المفاتيح القابلة للكتابة، واللتين تتحققان من صحة معرّف المثيل الممرر مقابل تكوين الأذونات (SWS Cryptography ص. 87، AUTOSAR AP TPS ManifestSpecification ص. 649). وعبر مثيل KeySlot الذي تم الحصول عليه، يمكن الاستعلام عن مثيل المزود المرتبط باستخدام [SWS_CRYPT_30403]، مما يضمن الحفاظ على الارتباط الوثيق بين موقع التخزين وبيئة التنفيذ (SWS Cryptography ص. 39).
بمجرد أن يصبح مثيل CryptoProvider متاحاً، فإنه يعمل كمصنع مركزي لإنشاء سياقات عمل تشفيرية محددة (AUTOSAR AP EXP SWArchitecture ص. 99). وتشمل السياقات القابلة للإنشاء، من بين أمور أخرى، سياقات لمولدات الأرقام العشوائية ([SWS_CRYPT_20741])، وشيفرات الكتل والتدفق المتماثلة ([SWS_CRYPT_20742])، والتشفير الموثق ([SWS_CRYPT_20745])، ورموز مصادقة الرسائل ([SWS_CRYPT_20746])، ودوال التجزئة التشفيرية ([SWS_CRYPT_20747])، والتشفير أو فك التشفير غير المتماثل ([SWS_CRYPT_20750]، [SWS_CRYPT_20751])، بالإضافة إلى سياقات التوقيع والتحقق ([SWS_CRYPT_20756]، [SWS_CRYPT_20757]) (EXP SWArchitecture ص. 99).
سياقات التحويل التشفيري ومعالجة البيانات
تتبع معالجة البيانات التشفيرية في ara::crypto دورة حياة صارمة قائمة على الحالة، والتي تضمن فك الارتباط بين تكوين الخوارزميات، وربط المفاتيح، ومعالجة الدفق (AUTOSAR AP TR SystemTests ص. 211). وبعد تخصيص السياق عبر المزود، يكون السياق في البداية في حالة غير مهيأ. ولا ينتقل السياق إلى الحالة الجاهزة إلا من خلال تمرير مفتاح متوافق عبر التحميلات الزائدة الخاصة بالنوع لـ SetKey() – على سبيل المثال للمفاتيح المتماثلة ([SWS_CRYPT_23911])، أو المفاتيح الخاصة ([SWS_CRYPT_23515])، أو مباشرة من KeySlot ([SWS_CRYPT_50043]) (AUTOSAR AP TR SystemTests ص. 206).
بالنسبة لعمليات المعالجة بالتدفق، يتم بدء التحويل عبر Start()، اختياريًا مع تمرير متجه تهيئة أو سياق ([SWS_CRYPT_22110]، [SWS_CRYPT_23625]، [SWS_CRYPT_50020]). بعد ذلك، يمكن تغذية كتل البيانات تدريجيًا عبر Update() ([SWS_CRYPT_21113]، [SWS_CRYPT_22113]، [SWS_CRYPT_50139]). في التشفير الموثق (AEAD)، تفصل الواجهة بشكل صارم بين البيانات المقترنة، التي تتم معالجتها عبر [SWS_CRYPT_20313]، وحمولة البيانات السرية عبر [SWS_CRYPT_50074] (EXP SWArchitecture ص. 104). يتم إتمام التحويل عبر Finish() أو FinishEncrypt() ([SWS_CRYPT_21115]، [SWS_CRYPT_23618]، [SWS_CRYPT_50075])، وبناءً على ذلك يمكن قراءة وسوم التوثيق أو مجاميع التحقق عبر GetDigest() ([SWS_CRYPT_21116]، [SWS_CRYPT_22116]).
إلى جانب وضع التدفق، تدعم فئات السياق مثل الشفرات المتماثلة والشفرات الموثقة الاستدعاءات الفردية المدمجة عبر [SWS_CRYPT_50047] أو [SWS_CRYPT_50078]، مما يتيح تشفير أو فك تشفير الحمولات القصيرة بكفاءة دون استدعاء بروتوكولي متعدد المراحل (SWS Cryptography ص. 58). وإذا تطلب الأمر إلغاء عملية قيد التشغيل، فإن استدعاء Cancel() ([SWS_CRYPT_50023]، [SWS_CRYPT_50046]) أو Reset() ([SWS_CRYPT_50212]) يعيد السياق بصورة حتمية إلى الحالة الأولية المطهرة (EXP SWArchitecture ص. 100).
مخطط الحالة: دورة حياة سياقات التحويل التشفيري من التخصيص حتى إعادة التعيين. المصادر: [SWS_CRYPT_20742]، [SWS_CRYPT_23911]، [SWS_CRYPT_23625]، [SWS_CRYPT_50046]، [SWS_CRYPT_50212].
إدارة المفاتيح، والتغليف، وإنفاذ الصلاحيات
يتم تصنيف المفاتيح التشفيرية في نموذج الكائنات كـ CryptoObject أو RestrictedUseObject (AUTOSAR AP EXP SWArchitecture ص. 111، EXP SWArchitecture ص. 111). يميز معيار المنصة بين المفاتيح المتماثلة (SymmetricKey)، والمفاتيح اللامتماثلة الخاصة (PrivateKey)، والمفاتيح العامة (PublicKey) (SWS Cryptography ص. 291). يمكن إنشاء مادة المفاتيح مباشرة عبر CryptoProvider ([SWS_CRYPT_20721]، [SWS_CRYPT_20722]) أو اشتقاقها من مادة مفاتيح موجودة عن طريق تهيئة KeyDerivationFunctionCtx ([SWS_CRYPT_20748]) بمفتاح أساسي وتنفيذه عبر [SWS_CRYPT_21515] (EXP SWArchitecture ص. 108).
لإنفاذ مبدأ الحد الأدنى من الامتيازات، يحمل كل كائن مفتاح قيود استخدام غير قابلة للتغيير (AllowedUsageFlags)، والتي يمكن الاستعلام عنها عبر [SWS_CRYPT_50092] (AUTOSAR AP TR SystemTests ص. 177). تتحقق حزمة التشفير عند كل محاولة ربط (SetKey) مما إذا كانت عملية السياق الهدف (مثل التشفير، أو التوقيع، أو الاشتقاق، أو التصدير) مصرحًا بها بواسطة أعلام المفتاح، وترفض الاستخدامات غير المسموح بها بشكل صارم (AUTOSAR AP TR SystemTests ص. 177، SWArchitecture ص. 95). يمكن تحديد التعيين الافتراضي لخوارزمية ما عبر [SWS_CRYPT_20955].
للتبادل الآمن للمفاتيح، تنفذ الوحدة عدة إجراءات قياسية: في الاتفاق اللامتماثل على المفاتيح (Diffie-Hellman / ECDH)، يتم عبر [SWS_CRYPT_20758] إنشاء KeyAgreementPrivateCtx يُربط به المفتاح الخاص ([SWS_CRYPT_21313])؛ ثم تحسب الدالة [SWS_CRYPT_21312] المفتاح المتماثل الهدف المشترك مع مراعاة المفتاح العام للطرف المقابل (AUTOSAR AP TR SystemTests ص. 179). في آلية تغليف المفاتيح (KEM)، يقوم KeyEncapsulatorPublicCtx ([SWS_CRYPT_20752]) بتغليف مفتاح متماثل بواسطة [SWS_CRYPT_21813]، بينما يجري الطرف المقابل فك التغليف عبر KeyDecapsulatorPrivateCtx ([SWS_CRYPT_20753]) بواسطة [SWS_CRYPT_21412] (AUTOSAR AP TR SystemTests ص. 173، AUTOSAR TR AdaptivePlatformSystemTests ص. 188). وللنقل المحمي للمفاتيح، يتوفر تغليف المفاتيح ([SWS_CRYPT_24014]، [SWS_CRYPT_24016]) والتصدير الآمن ([SWS_CRYPT_20728]) (AUTOSAR AP TR SystemTests ص. 174، AUTOSAR AP TR SystemTests ص. 182).
مخطط تسلسلي: الاتفاق اللامتماثل على المفاتيح عبر Diffie-Hellman واشتقاق مفاتيح الاستخدام المتماثلة. المصادر: [SWS_CRYPT_20758]، [SWS_CRYPT_21313]، [SWS_CRYPT_21312]، AUTOSAR AP TR SystemTests ص. 179.
تتم معالجة التوقيعات اللامتماثلة عبر سياقات منفصلة: يتم التوقيع عبر SignerPrivateCtx ([SWS_CRYPT_20756]) والدالة [SWS_CRYPT_23512]، بينما يتم التحقق عبر VerifierPublicCtx ([SWS_CRYPT_20757]) والدالة [SWS_CRYPT_24112] (AUTOSAR AP TR SystemTests ص. 164، SWArchitecture ص. 84). وإذا تم تحديث KeySlot في الخلفية بواسطة خدمات إدارة ذات امتيازات (مثل تجديد المفاتيح عبر OTA)، فيمكن إخطار المكتبات المستهلكة عبر مراقب تحديث بواسطة [SWS_CRYPT_30404] لإعادة تحميل مادة المفاتيح الخاصة بها بشكل متزامن (AUTOSAR AP SWS Cryptography ص. 36).
مخطط تسلسلي: مسار إنشاء التوقيع والتحقق منه باستخدام سياقات خاصة وعامة منفصلة. المصادر: [SWS_CRYPT_20756]، [SWS_CRYPT_23515]، [SWS_CRYPT_23512]، [SWS_CRYPT_20757]، [SWS_CRYPT_24115]، [SWS_CRYPT_24112]، AUTOSAR AP TR SystemTests ص. 164.
إدارة شهادات X.509، والتحقق من صحتها، ومجموعاتها
يوفر النظام الفرعي ara::crypto::x509 وظائف قياسية للبنى التحتية للمفاتيح العامة (PKI) (EXP SWArchitecture ص. 116). يدعم X509Provider المركزي ([SWS_CRYPT_40099]) كلاً من ذاكرة الجلسة المؤقتة ومستودعات التخزين الدائمة (SWS Cryptography ص. 39). يتم تحليل الشهادات وسلاسل الشهادات من مخازن البايتات المؤقتة عبر [SWS_CRYPT_40614] أو [SWS_CRYPT_40616]. لطلب شهادات هوية جديدة، يمكن للتطبيقات عبر [SWS_CRYPT_40640] إنشاء طلبات توقيع شهادات (CSR) موقعة تشفيريًا، حيث يتم تمرير سياق الموقع والاسم المميز (DN) عبر [SWS_CRYPT_50186] (AUTOSAR AP TR SystemTests ص. 189).
للتحقق من المطابقة والصلاحية، ينشئ التطبيق عبر [SWS_CRYPT_50125] نسخة من CertificateValidationCtx. تُضاف مراسي الثقة (Trust Anchors) إلى هذا السياق عبر [SWS_CRYPT_50117]، وتُحدد خيارات التحقق عبر [SWS_CRYPT_50120]، وتُودع الطوابع الزمنية المرجعية عبر [SWS_CRYPT_50121]. يتم فحص السلسلة الهرمي مقابل سلسلة الثقة عبر [SWS_CRYPT_50122] أو [SWS_CRYPT_50123] (AUTOSAR AP TR SystemTests ص. 194). لتسجيل إلغاءات الشهادات، يمكن استيراد قوائم إلغاء الشهادات (CRL) ([SWS_CRYPT_50183]) أو دمج استعلامات حالة الشهادات عبر الإنترنت (OCSP وفقًا للمعيار RFC 6960) في حالة التحقق عبر [SWS_CRYPT_40626] و[SWS_CRYPT_50185] و[SWS_CRYPT_50124] (AUTOSAR AP TR SystemTests ص. 194).
لفصل مستهلكي الشهادات عن مثيلات الشهادات الفردية عند تغيير المفاتيح، يدعم البيان مفهوم CryptoCertificateGroup (AUTOSAR AP TPS ManifestSpecification ص. 657). تحمّل التطبيقات المستهلكة عبر [SWS_CRYPT_50126] كامل مجموعة الشهادات المرتبطة منطقيًا، بينما يمكن لخدمات الإدارة ذات الامتيازات استبدال الشهادات أو تطهيرها ديناميكيًا عبر [SWS_CRYPT_50127] و[SWS_CRYPT_50128] (AUTOSAR AP TPS ManifestSpecification ص. 657).
مخطط تسلسلي: التحقق من صحة شهادة X.509 مع سلسلة الشهادات واستيراد CRL وفحص حالة OCSP عبر الإنترنت. المصادر: [SWS_CRYPT_40099]، [SWS_CRYPT_50125]، [SWS_CRYPT_50122]، [SWS_CRYPT_50183]، [SWS_CRYPT_50124]، AUTOSAR AP TR SystemTests ص. 194.
نمذجة البيان، وواجهات المنافذ، والنشر
يتم دمج الموارد التشفيرية في بنية المركبة الكلية بشكل تعريفي عبر النموذج التعريفي لـ AUTOSAR في بيان ARXML (AUTOSAR AP TPS ManifestSpecification ص. 244). تنمذج مكونات البرمجيات متطلباتها الأمنية على مستوى التصميم عبر منافذ (RPortPrototype)، والتي يتم تصنيفها بواسطة تخصصات من CryptoInterface: CryptoKeySlotInterface لمواضع المفاتيح، وCryptoCertificateInterface لموارد الشهادات، وCryptoProviderInterface للوصول إلى موفري التنفيذ (TPS ManifestSpecification ص. 167، AUTOSAR AP TPS ManifestSpecification ص. 245). تحدد سمات الواجهات بشكل غير قابل للتغيير ما إذا كانت حقوق القراءة أو الكتابة ممنوحة (writeAccess) وما هي أنواع الكائنات المسموح بها (TPS ManifestSpecification ص. 168، TPS ManifestSpecification ص. 438).
في بيان النشر، يربط تكوين الهدف (Target Configuration) نماذج المنافذ الأولية المجردة بموارد المنصة المادية الفعلية (AUTOSAR AP TPS ManifestSpecification ص. 649). يعيّن عنصر النموذج التعريفي CryptoKeySlotToPortPrototypeMapping منفذ إحدى العمليات إلى CryptoKeySlot مصرّح به في CryptoModuleInstantiation الخاص بالجهاز (TPS ManifestSpecification ص. 614، TPS ManifestSpecification ص. 646). وبطريقة مماثلة، يخصص CryptoCertificateToPortPrototypeMapping الشهادات (TPS ManifestSpecification ص. 655). في وقت التشغيل، يمثل مسار المنفذ في البيان ara::core::InstanceSpecifier، الذي يمرره كود التطبيق إلى دوال التحميل مثل [SWS_CRYPT_50004] (ManifestSpecification ص. 154).
لتفاعلات المنصة بين المجموعات الوظيفية – على سبيل المثال بين Communication Management (SecOC، وIPsec، وTLS) وحزمة التشفير – لا توجد نماذج منافذ أولية تقليدية (TPS ManifestSpecification ص. 861). هنا يتم بدلاً من ذلك تكوين InstanceSpecifier بواسطة عناصر مشتقة من FunctionalClusterInteractsWithFunctionalClusterMapping، على سبيل المثال ComKeyToCryptoKeySlotMapping أو SecOcJobMapping (TPS ManifestSpecification ص. 861، TPS ManifestSpecification ص. 864، ManifestSpecification ص. 411). كذلك يدمج تأمين الدوام (Persistency Deployment) ومجاميع تحقق مجموعات البرمجيات مفاتيحها وموفريها عبر تعيينات البيان القياسية هذه (TPS ManifestSpecification ص. 867، TPS ManifestSpecification ص. 896).
التصرف في حالة الخطأ
يتبع مفهوم معالجة الأخطاء في وحدة التشفير الإرشادات الصارمة لـ Adaptive Platform الخاصة بالكود الآمن من الأخطاء والخالي من الاستثناءات (noexcept) (SWS Cryptography ص. 145). ترجع جميع العمليات المتزامنة حالات الأخطاء عبر نوع النتيجة العام ara::core::Result<T, ara::core::ErrorCode> (SWS Cryptography ص. 208). رموز الأخطاء متجذرة في نطاق أخطاء خاص، والذي يتم تمثيله عبر [SWS_CRYPT_19902]؛ ويمكن الاستعلام عن اسمه عبر [SWS_CRYPT_19950] وعن الوصف النصي للخطأ عبر [SWS_CRYPT_19953]. بالنسبة للتطبيقات التي تستخدم معالجة الاستثناءات صراحة، توفر الحزمة نوع الاستثناء CryptoException ([SWS_CRYPT_19906]) والدالة المساعدة [SWS_CRYPT_19954].
تتضمن رموز الأخطاء الوظيفية النموذجية انتهاكات السياق مثل CryptoErrc::kUninitializedContext، عند بدء عمليات تشفيرية قبل استدعاء SetKey()، أو CryptoErrc::kInvalidInputSize، إذا كانت المخازن المؤقتة لبيانات الإدخال الممررة لا تتطابق مع شبكة الكتل المطلوبة (SWS Cryptography ص. 208). في عمليات التسلسل والتحويل، يشير CryptoErrc::kUnknownIdentifier إلى قيم وسائط غير مدعومة وCryptoErrc::kIncompatibleArguments إلى مجموعات معلمات غير متوافقة (SWS Cryptography ص. 145). عند الوصول إلى موارد المفاتيح، تمنع الحزمة عمليات الوصول غير المصرح بها عن طريق إرجاع kAccessViolation (SWS Cryptography ص. 87). وعند تحليل امتدادات شهادات X.509 المخصصة المعيبة، يتوقف المحلل مع CryptoErrc::kRuntimeFault (SWS Cryptography ص. 280، SWS Cryptography ص. 356).
لاستعادة حالة محددة في السياق بعد حدوث خطأ، وتجنب تسرب الذاكرة أو بقاء مخازن التدفق المؤقتة معلقة في الخفي (daemon)، يجب على المتصل تطهير السياق. يتم ذلك إما بشكل محدد عبر استدعاء Cancel() ([SWS_CRYPT_50046]، [SWS_CRYPT_50089])، مما يؤدي إلى تجاهل التحويلات غير المكتملة، أو عبر Reset() ([SWS_CRYPT_50212])، وهو ما يعيد السياق بالكامل إلى الحالة التي كان عليها قبل ربط المفتاح (EXP SWArchitecture ص. 100).
أدلة تفصيلية إضافية
تستند مواصفات وحدة Cryptography إلى مجموعة من المتطلبات المركزية ووثائق البنية، التي يتم تصنيفها فيما يلي:
- نقاط الدخول العامة والمصانع: تحدد المواصفات [SWS_CRYPT_20099] (
LoadCryptoProvider) و[SWS_CRYPT_40099] (LoadX509Provider) الوصول المعياري إلى نطاقي الموفّرين الأساسيين (SWArchitecture ص. 71، SWS Cryptography ص. 39). - حفظ المفاتيح وربط المنافذ: تنفذ الدوال [SWS_CRYPT_50004] (
LoadKeySlot) و[SWS_CRYPT_50005] (LoadWriteableKeySlot) التفاعل بين نمذجة المنافذ في البيان والوصول المعزول إلى الذاكرة المادية في KSP بشكل ملزم (SWS Cryptography ص. 87، AUTOSAR AP TPS ManifestSpecification ص. 649). - مصانع الأوليات والسياقات: تحدد مجموعة الواجهات المحيطة بـ [SWS_CRYPT_20745] (
CreateAuthCipherCtx)، و[SWS_CRYPT_20756] (CreateSignerPrivateCtx)، و[SWS_CRYPT_20757] (CreateVerifierPublicCtx) الإنشاء الديناميكي لآلات الحالة القياسية لمهام التشفير (AUTOSAR AP EXP SWArchitecture ص. 99، AUTOSAR AP TR SystemTests ص. 164). - التحقق من صحة X.509 وفحص الإلغاء: يتم وضع معايير سلسلة فحص PKI كاملة وملائمة للسيارات مع [SWS_CRYPT_50125] (
CreateCertificateValidationCtx)، و[SWS_CRYPT_50122] (ValidateCertificate)، و[SWS_CRYPT_50183] (ImportCrl)، و[SWS_CRYPT_50124] (AddOcspResponse) (AUTOSAR AP TR SystemTests ص. 194، EXP SWArchitecture ص. 116).
تم إنشاء دليل الوحدة هذا بواسطة مساعد إشراف يعمل بالذكاء الاصطناعي بناءً على مواصفة AUTOSAR Adaptive الإصدار R25-11.
function: 261 type alias: 43 variable: 43 class: 34 enumeration: 5 struct: 1
الفئات
AuthCipherCtxCertificateCertificateValidationCtxCertificateValidationResultCertSignRequestCryptoContextCryptoErrorDomainCryptoExceptionCryptoObjectCryptoProviderDecryptorPrivateCtxEncryptorPublicCtxFormatterHashFunctionCtxKeyAgreementPrivateCtxKeyDecapsulatorPrivateCtxKeyDerivationFunctionCtxKeyEncapsulatorPublicCtxKeySlotMessageAuthnCodeCtxOcspResponsePrivateKeyProtectedKeyImportCtxPublicKeyRandomGeneratorCtxSecureCounterSerializableSignerPrivateCtxSymmetricCipherCtxSymmetricKeySymmetricKeyWrapperCtxVerifierPublicCtxWriteableKeySlotX509DNX509Providerالدوال
GetCryptoErrorDomainLoadCryptoProvider (ara::crypto)LoadFormatterLoadKeySlotLoadWriteableKeySlotLoadX509ProviderMakeErrorCodeالأنواع
AlgIdAlgIdStringAllowedUsageFlagsCertificateValidationOptionsFormatIdLoadCryptoProviderReadOnlyMemRegionReadWriteMemRegionTimestampX509ExtendedKeyUsageX509KeyUsageالتعدادات
CertificateValidationStatusCryptoErrcCryptoObjectTypeCryptoTransformOcspResponseStatusالثوابت
kAllowDataDecryptionkAllowDataEncryptionkAllowDerivedPlaintextExportkAllowHashCalculationkAllowKeyAgreementkAllowKeyDerivationkAllowKeyUnwrappingkAllowKeyWrappingkAllowMackAllowPersistkAllowPlaintextExportkAllowRngInitkAllowSecuredExportkAllowSigGenerationkAllowSigVerificationkClientAuthkCodeSigningkConstrCrlSignkConstrDataEnciphermentkConstrDecipherOnlykConstrDigitalSignaturekConstrEncipherOnlykConstrKeyAgreementkConstrKeyCertSignkConstrKeyEnciphermentkConstrNonRepudiationkEmailProtectionkFormatDerEncodedkFormatPemEncodedkFormatRawValueOnlykIgnoreCrlkIgnoreNotAfterkIgnoreNotBeforekIgnoreUnknownCriticalExtensionskOcspOffkOcspResponseCompleteChainkOcspResponseTargetOnlykOCSPSigningkProprietaryFormatkServerAuthkTimeStampingخريطة المواضيع
ara::crypto
42ara::crypto::cryp
23ara::crypto::x509
34لا توجد بيانات عناصر لهذا الإصدار
ara::crypto
Crypto Error Domain class that provides interfaces as defined by ara::core::ErrorDomain such as a name of the Crypto Error Domain or message
يرث من ara::core::ErrorDomain
Exception type thrown for CRYPTO errors.
يرث من ara::core::Exception
Formatter object interface.
128 bit secure counter made up of two uint64_t’s representing the most significant and least significant bits
Serializable object interface.
Return a reference to the global CryptoErrorDomain.
constexpr const ara::core::ErrorDomain & GetCryptoErrorDomain () noexcept;This factory method shall create or return the existing instance of a specific Crypto Provider.
ara::core::Result< cryp::CryptoProvider::Sptr > LoadCryptoProvider (const ara::core::InstanceSpecifier &iSpecify) noexcept;Factory that creates a Formatter.
ara::core::Result< Formatter::Sptr > LoadFormatter () noexcept;Load a read-only key slot. This factory method shall load the information associated with the specified KeySlot into a KeySlot object.
ara::core::Result< cryp::KeySlot::Sptr > LoadKeySlot (const ara::core::InstanceSpecifier &iSpecify) noexcept;Load a writeable key slot. This factory method shall load the information associated with the specified KeySlot into a WriteableKeySlot object.
ara::core::Result< cryp::WriteableKeySlot::Sptr > LoadWriteableKeySlot (const ara::core::InstanceSpecifier &iSpecify) noexcept;This factory method shall create or return the existing instance of the singleton X.509 Provider.
ara::core::Result< x509::X509Provider::Sptr > LoadX509Provider () noexcept;Makes Error Code instances from the Crypto Error Domain. The returned ErrorCode instance always references to CryptoErrorDomain.
constexpr ara::core::ErrorCode MakeErrorCode (CryptoErrorDomain::Errc code, ara::core::ErrorDomain::SupportDataType data) noexcept;Defines the error codes for the ara::crypto::CryptoErrorDomain
enum class CryptoErrc : ara::core::ErrorDomain::CodeType {...};Enumeration of all types of crypto objects, i.e. types of content that can be stored to a key slot.
enum class CryptoObjectType : std::uint8_t {...};Enumeration of cryptographic transformation directions.
enum class CryptoTransform : std::uint8_t {...};Type for holding StringView of algorithm according to standardized format described in the chapter ’Naming Convention’.
using AlgId = ara::core::StringView;Type for holding String of algorithm according to standardized format described in the chapter ’Naming Convention’.
using AlgIdString = ara::core::String;Type for holding bit-flags of allowed usages of a key.
using AllowedUsageFlags = std::uint32_t;A container type for the encoding format identifiers.
using FormatId = std::uint32_t;Type for holding StringView of algorithm according to standardized format described in the chapter ’Naming Convention’.
using AlgId = ara::core::StringView;Read-Only Memory Region (intended for [in] arguments)
using ReadOnlyMemRegion = ara::core::Span<const std::uint8_t>;Read-Write Memory Region (intended for [out] or [in/out] arguments)
using ReadWriteMemRegion = ara::core::Span<std::uint8_t>;Type for timestamps.
using Timestamp = std::chrono::time_point<std::chrono::system_clock, std::chrono::seconds>;The key can be used for data decryption.
constexpr AllowedUsageFlags kAllowDataDecryption {0x0002};The following constants define 1-bit values representing allowed usages. The key can be used for data encryption
constexpr AllowedUsageFlags kAllowDataEncryption {0x0001};The derived key can be exported in plaintext.
constexpr AllowedUsageFlags kAllowDerivedPlaintextExport {0x4000};The key can be used as input to a HashFunctionCtx.
constexpr AllowedUsageFlags kAllowHashCalculation {0x1000};The key can be used as private or public input to key agreement.
constexpr AllowedUsageFlags kAllowKeyAgreement {0x0020};The key can be used for key derivation.
constexpr AllowedUsageFlags kAllowKeyDerivation {0x0040};The key can be used as a key encryption key for key unwrapping or key decapsulation.
constexpr AllowedUsageFlags kAllowKeyUnwrapping {0x0100};The key can be used as a key encryption key for key wrapping or key encapsulation.
constexpr AllowedUsageFlags kAllowKeyWrapping {0x0080};The key can be used for MAC generation and verification.
constexpr AllowedUsageFlags kAllowMac {0x0004};The key can persisted.
constexpr AllowedUsageFlags kAllowPersist {0x0200};The key can be exported in plaintext.
constexpr AllowedUsageFlags kAllowPlaintextExport {0x2000};The symmetric key can be used for seeding of a RandomGeneratorCtx.
constexpr AllowedUsageFlags kAllowRngInit {0x0800};The key can be securely exported (protected export)
constexpr AllowedUsageFlags kAllowSecuredExport {0x0400};The key can be used for signature generation.
constexpr AllowedUsageFlags kAllowSigGeneration {0x0008};The key can be used for signature verification.
constexpr AllowedUsageFlags kAllowSigVerification {0x0010};Export DER-encoded value of an object.
constexpr FormatId kFormatDerEncoded {2};Export PEM-encoded value of an object.
constexpr FormatId kFormatPemEncoded {3};Export only raw value of an object, i.e., a plain byte array for symmetric keys and ISO/IEC 7816-8 / IEEE P1363 encoding for combined values.
constexpr FormatId kFormatRawValueOnly {1};Proprietary format that is only valid in the context of a CryptoProvider.
constexpr FormatId kProprietaryFormat {0};ara::crypto::cryp
Authenticated Cipher Context interface.
يرث من CryptoContext
A common interface of a mutable cryptographic context, i.e
أساس لـ AuthCipherCtx, DecryptorPrivateCtx, EncryptorPublicCtx, HashFunctionCtx, KeyAgreementPrivateCtx, KeyDecapsulatorPrivateCtx, KeyDerivationFunctionCtx, KeyEncapsulatorPublicCtx, MessageAuthnCodeCtx, ProtectedKeyImportCtx, RandomGeneratorCtx, SignerPrivateCtx, SymmetricCipherCtx, SymmetricKeyWrapperCtx, VerifierPublicCtx
A common interface for all cryptographic objects recognizable by the Crypto Provider.
يرث من ara::crypto::Serializable
أساس لـ PrivateKey, PublicKey, SymmetricKey
CryptoProviderInterface representing one implementation of a set of cryptographic primitives with a key storage.
Interface for asymmetric decryption.
يرث من CryptoContext
Interface for asymmetric encryption.
يرث من CryptoContext
Hash function interface.
يرث من CryptoContext
Key Agreement Private key Context interface.
يرث من CryptoContext
Asymmetric Key Encapsulation Mechanism (KEM) Private key Context interface.
يرث من CryptoContext
Key Derivation Function interface.
يرث من CryptoContext
Asymmetric Key Encapsulation Mechanism (KEM) Public key Context interface.
يرث من CryptoContext
KeySlot interface representing a storage location for a key in a CryptoProvider.
أساس لـ WriteableKeySlot
Keyed Message Authentication Code Context interface definition.
يرث من CryptoContext
Generalized Asymmetric Private Key interface.
يرث من CryptoObject
A contexts for importing secured data such as secret key-material.
يرث من CryptoContext
General Asymmetric Public Key interface.
يرث من CryptoObject
Interface of Random Number Generator Context.
يرث من CryptoContext
Signature Private key Context interface.
يرث من CryptoContext
Interface for Symmetric Cipher Operations.
يرث من CryptoContext
Symmetric Key interface.
يرث من CryptoObject
Context of a symmetric key wrap algorithm.
يرث من CryptoContext
Signature Verification Public key Context interface.
يرث من CryptoContext
WriteableKeySlot interface representing a writeable storage location for a key in a Crypto Provider.
يرث من KeySlot
ara::crypto::x509
X.509 Certificate interface.
يرث من ara::crypto::Serializable
Certificate Validation Context.
X.509 Certificate Validation Result.
Certificate Signing Request (CSR) object interface.
يرث من ara::crypto::Serializable
Interface of OcspResponse.
Interface of X.509 Distinguished Name (DN).
يرث من ara::crypto::Serializable
X.509 Provider interface.
Certificate Validation Status.
enum class CertificateValidationStatus : std::uint8_t {...};On-line Certificate Status Protocol (OCSP) Response Status.
enum class OcspResponseStatus : std::uint8_t {...};Type for holding bit-flags of certificate validation options.
using CertificateValidationOptions = std::uint32_t;X.509 v3 Extended Key Usage type definition.
using X509ExtendedKeyUsage = std::uint32_t;X.509 v3 Key Usage type definition.
using X509KeyUsage = std::uint32_t;TLS WWW client authentication.
constexpr X509ExtendedKeyUsage kClientAuth {0x4000};Signing of downloadable executable code.
constexpr X509ExtendedKeyUsage kCodeSigning {0x2000};The key can be used for Certificates Revokation Lists (CRL) signing.
constexpr X509KeyUsage kConstrCrlSign {0x0200};The key can be used for data encipherment.
constexpr X509KeyUsage kConstrDataEncipherment {0x1000};The enciphermet key can be used for deciphering only.
constexpr X509KeyUsage kConstrDecipherOnly {0x0080};The key can be used for digital signature production.
constexpr X509KeyUsage kConstrDigitalSignature {0x8000};The enciphermet key can be used for enciphering only.
constexpr X509KeyUsage kConstrEncipherOnly {0x0100};The key can be used for a key agreement protocol execution.
constexpr X509KeyUsage kConstrKeyAgreement {0x0800};The key can be used for certificates signing.
constexpr X509KeyUsage kConstrKeyCertSign {0x0400};The key can be used for key encipherment.
constexpr X509KeyUsage kConstrKeyEncipherment {0x2000};The key can be used in cases requiring the "non-repudiation" guarantee.
constexpr X509KeyUsage kConstrNonRepudiation {0x4000};Email protection.
constexpr X509ExtendedKeyUsage kEmailProtection {0x1000};ignore previously imported CRLs
constexpr CertificateValidationOptions kIgnoreCrl {0x0008};ignore the NotAfter field
constexpr CertificateValidationOptions kIgnoreNotAfter {0x0002};ignore the NotBefore field
constexpr CertificateValidationOptions kIgnoreNotBefore {0x0001};ignore all unknown critical extensions
constexpr CertificateValidationOptions kIgnoreUnknownCritical Extensions {0x0004};do not require OCSP response during certificate validation. This is the default behavior.
constexpr CertificateValidationOptions kOcspOff {0x0040};require OCSP response for all certificates of chain
constexpr CertificateValidationOptions kOcspResponseCompleteChain {0x0010};require OCSP response only for target certificate
constexpr CertificateValidationOptions kOcspResponseTargetOnly {0x0020};Signing OCSP responses.
constexpr X509ExtendedKeyUsage kOCSPSigning {0x0400};TLS WWW server authentication.
constexpr X509ExtendedKeyUsage kServerAuth {0x8000};Binding the hash of an object to a time.
constexpr X509ExtendedKeyUsage kTimeStamping {0x0800};نطاقات الأسماء
- ara::crypto 5 Klassen, 7 freie Funktionen
- ara::crypto::cryp 23 Klassen, 0 freie Funktionen
- ara::crypto::x509 7 Klassen, 0 freie Funktionen
مخطط الفئات UML للوحدة
Abgerundete Rahmen = Namespaces; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = modulfremde bzw. externe Basisklassen. Klicken öffnet die Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني