DEENESPTFRRUARHIKOZHNL

मॉड्यूल ara::crypto — Cryptography

Spezifikation: AUTOSAR_AP_SWS_Cryptography.pdf (R25-11) · 387 API-Records

मॉड्यूल गाइडएआई जनित

एप्लिकेशनों के लिए पृथक क्रिप्टोग्राफ़िक संचालन, कुंजी प्रबंधन और X.509 प्रमाणपत्र सेवाएं प्रदान करता है।
एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: b84ff51de547 उद्गम खुले प्रश्न (1)
कारणात्मक एंकर: R25-11 R25-11 से मान्य इस विनिर्देश संस्करण के लिए नए सिरे से संश्लेषित।
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

एप्लिकेशनों के लिए पृथक क्रिप्टोग्राफ़िक संचालन, कुंजी प्रबंधन और 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) के लिए कुंजी-संग्रहण क्षेत्र, और PKI प्रमाणपत्र प्रबंधन के लिए एक मशीन-व्यापी X509Provider में विभाजित है (SWS Cryptography पृ. 39)।

diag_crypto_arch App Adaptive Application Daemon Cryptography Daemon (ara::crypto) App->Daemon IPC / C++ API CryptoProvider CryptoProvider (HSM / Driver / Software) Daemon->CryptoProvider Primitive Execution KeyStorage Key Storage Provider (KeySlots) Daemon->KeyStorage Key Lifecycle X509Prov X.509 Provider (Certificates / CRL) Daemon->X509Prov PKI Services KeyStorage->CryptoProvider Key Deployment

संदर्भ आरेख: एप्लिकेशन, डेमॉन और प्रदाताओं के बीच कार्यात्मक क्लस्टर Cryptography के वास्तुकला और घटक संबंध। स्रोत: SWS Cryptography पृ. 39, PlatformDesign पृ. 71, AUTOSAR AP EXP SWArchitecture पृ. 97।

अनुप्रयोग अपने प्रदाता (AUTOSAR AP EXP SWArchitecture पृ. 99) के माध्यम से सममित सिफ़र ([SWS_CRYPT_20742]), प्रमाणित सिफ़र ([SWS_CRYPT_20745]), हैश फ़ंक्शन ([SWS_CRYPT_20747]) या हस्ताक्षरकर्ता और सत्यापनकर्ता इंस्टेंस ([SWS_CRYPT_20756], [SWS_CRYPT_20757]) जैसे क्रिप्टोग्राफ़िक संदर्भ बनाते हैं। प्रसंस्करण एक नियतात्मक जीवनचक्र का पालन करता है: कुंजी बाइंडिंग (SetKey) के बाद, परिवर्तन Start() के माध्यम से शुरू किया जाता है, Update() के माध्यम से स्ट्रीम किया जाता है और Finish() के साथ पूरा किया जाता है (AUTOSAR AP TR SystemTests पृ. 206, EXP SWArchitecture पृ. 104)। अपरिवर्तनीय AllowedUsageFlags अनधिकृत कुंजी उपयोग को प्रभावी ढंग से रोकते हैं ([SWS_CRYPT_50092], AUTOSAR AP TR SystemTests पृ. 177)।

diag_context_state Uninit Uninitialized Ready Ready (Key Deployed) Uninit->Ready SetKey() Ready->Uninit Reset() Streaming Processing (Started / Update) Ready->Streaming Start() Streaming->Uninit Cancel() / Reset() Streaming->Streaming Update() / UpdateConfidentialData() Finished Finished / Digest Available Streaming->Finished Finish() / FinishEncrypt() Finished->Uninit Reset() Finished->Ready Start() (Re-use)

स्थिति आरेख: आवंटन से लेकर रीसेट तक क्रिप्टोग्राफ़िक परिवर्तन संदर्भों का जीवनचक्र। स्रोत: [SWS_CRYPT_20742], [SWS_CRYPT_23911], [SWS_CRYPT_23625], [SWS_CRYPT_50046], [SWS_CRYPT_50212]।

प्रमाणपत्र और CSRs 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 (खुला)

diag_crypto_arch App Adaptive Application Daemon Cryptography Daemon (ara::crypto) App->Daemon IPC / C++ API CryptoProvider CryptoProvider (HSM / Driver / Software) Daemon->CryptoProvider Primitive Execution KeyStorage Key Storage Provider (KeySlots) Daemon->KeyStorage Key Lifecycle X509Prov X.509 Provider (Certificates / CRL) Daemon->X509Prov PKI Services KeyStorage->CryptoProvider Key Deployment

संदर्भ आरेख: एप्लिकेशन, डेमॉन और प्रदाताओं के बीच कार्यात्मक क्लस्टर Cryptography के वास्तुकला और घटक संबंध। स्रोत: SWS Cryptography पृ. 39, PlatformDesign पृ. 71, AUTOSAR AP EXP SWArchitecture पृ. 97।

प्रवेश बिंदु और क्रिप्टोग्राफ़िक प्रदाताओं का आरंभीकरण

मॉड्यूल में प्रवेश वैश्विक प्रवेश फ़ंक्शनों के माध्यम से होता है, जो केंद्रीय अमूर्तता इंटरफ़ेस के लिए कारखानों (फ़ैक्टरियों) के रूप में कार्य करते हैं (SWArchitecture पृ. 71)। अनुप्रयोग एक मॉडल किए गए ara::core::InstanceSpecifier को निर्दिष्ट करके फ़ंक्शन [SWS_CRYPT_20099] के माध्यम से एक CryptoProvider का एक इंस्टेंस बनाते या लोड करते हैं। प्रमाणपत्र प्रबंधन के लिए संपूर्ण सिस्टम में ठीक एक वैश्विक प्रमाणपत्र प्रदाता मौजूद है, जिसे [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) के मामले में इंटरफ़ेस संबद्ध डेटा (associated data), जिसे [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])।

स्ट्रीमिंग मोड के अलावा, सिमेट्रिक सिफर और प्रमाणीकृत सिफर जैसी संदर्भ कक्षाएं (context classes) [SWS_CRYPT_50047] या [SWS_CRYPT_50078] के माध्यम से कॉम्पैक्ट सिंगल-कॉल का समर्थन करती हैं, जिससे छोटे पेलोड को बहु-स्तरीय प्रोटोकॉल कॉल के बिना कुशलतापूर्वक एन्क्रिप्ट या डिक्रिप्ट किया जा सकता है (SWS Cryptography पृ. 58)। यदि किसी चल रहे ऑपरेशन को निरस्त करना हो, तो Cancel() ([SWS_CRYPT_50023], [SWS_CRYPT_50046]) या Reset() ([SWS_CRYPT_50212]) का एक कॉल संदर्भ को नियतात्मक (deterministic) रूप से उसकी रीसेट की गई प्रारंभिक स्थिति में वापस लौटा देता है (EXP SWArchitecture पृ. 100)।

diag_context_state Uninit Uninitialized Ready Ready (Key Deployed) Uninit->Ready SetKey() Ready->Uninit Reset() Streaming Processing (Started / Update) Ready->Streaming Start() Streaming->Uninit Cancel() / Reset() Streaming->Streaming Update() / UpdateConfidentialData() Finished Finished / Digest Available Streaming->Finished Finish() / FinishEncrypt() Finished->Uninit Reset() Finished->Ready Start() (Re-use)

स्थिति आरेख: आवंटन से लेकर रीसेट तक क्रिप्टोग्राफ़िक परिवर्तन संदर्भों का जीवनचक्र। स्रोत: [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]) या मौजूदा कुंजी सामग्री से व्युत्पन्न (derive) की जा सकती है, जिसके लिए एक 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)। Key Encapsulation Mechanism (KEM) में, एक KeyEncapsulatorPublicCtx ([SWS_CRYPT_20752]) [SWS_CRYPT_21813] का उपयोग करके एक सिमेट्रिक कुंजी को इनकैप्सुलेट करता है, जबकि दूसरा पक्ष KeyDecapsulatorPrivateCtx ([SWS_CRYPT_20753]) के माध्यम से [SWS_CRYPT_21412] द्वारा डीकैप्सुलेशन निष्पादित करता है (AUTOSAR AP TR SystemTests पृ. 173, AUTOSAR TR AdaptivePlatformSystemTests पृ. 188)। सुरक्षित कुंजी परिवहन के लिए Key Wrapping ([SWS_CRYPT_24014], [SWS_CRYPT_24016]) और सुरक्षित निर्यात ([SWS_CRYPT_20728]) उपलब्ध हैं (AUTOSAR AP TR SystemTests पृ. 174, AUTOSAR AP TR SystemTests पृ. 182)।

असममितीय कुंजी समझौता (ECDH) और सममितीय व्युत्पत्तिApp (CRYPTOApp01)CryptoProviderKeyAgreementPrivateCtxSymmetricKeyCreateKeyAgreementPrivateCtx(algId)Result<KeyAgreementPrivateCtx::Sptr>SetKey(privKey)Result<void>AgreeKey(otherSidePublicKey, targetAlgId, allowedUsage)सममितीय कुंजी ऑब्जेक्ट बनाएँResult<SymmetricKey::Sptr>

अनुक्रम आरेख: 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-Key-Rollover) द्वारा अपडेट किया जाता है, तो उपभोक्ता लाइब्रेरीज़ को अपनी कुंजी सामग्री को समकालिक रूप से पुनः लोड करने के लिए [SWS_CRYPT_30404] के माध्यम से एक अपडेट-ऑब्जर्वर द्वारा सूचित किया जा सकता है (AUTOSAR AP SWS Cryptography पृ. 36)।

SignerPrivateCtx और VerifierPublicCtx के माध्यम से हस्ताक्षर निर्माण और सत्यापनApplikationCryptoProviderSignerPrivateCtxVerifierPublicCtxCreateSignerPrivateCtx(algId)Result<SignerPrivateCtx::Sptr>SetKey(privKey)Result<void>Sign(message, signatureBuffer, format)Result<std::size_t> (हस्ताक्षर का आकार)Use Case: हस्ताक्षर का सत्यापनCreateVerifierPublicCtx(algId)Result<VerifierPublicCtx::Sptr>SetKey(pubKey)Result<void>Verify(message, signature, format)Result<bool> (मान्य / अमान्य)

अनुक्रम आरेख: अलग-अलग निजी और सार्वजनिक संदर्भों का उपयोग करते हुए हस्ताक्षर निर्माण और सत्यापन का प्रवाह। स्रोत: [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 Public-Key-Infrastrukturen (PKI) के लिए मानकीकृत फ़ंक्शन प्रदान करता है (EXP SWArchitecture पृ. 116)। केंद्रीय X509Provider ([SWS_CRYPT_40099]) अल्पकालिक सत्र मेमोरी और स्थायी भंडारण दोनों का समर्थन करता है (SWS Cryptography पृ. 39)। प्रमाणपत्रों और श्रृंखलाओं को बाइट बफ़र्स से क्रमशः [SWS_CRYPT_40614] या [SWS_CRYPT_40616] के माध्यम से पार्स किया जाता है। नए पहचान प्रमाणपत्रों का अनुरोध करने के लिए, एप्लिकेशन [SWS_CRYPT_40640] के माध्यम से क्रिप्टोग्राफ़िक रूप से हस्ताक्षरित Certificate Signing Requests (CSR) उत्पन्न कर सकते हैं, जहां हस्ताक्षरकर्ता संदर्भ और Distinguished Name (DN) [SWS_CRYPT_50186] के माध्यम से पास किए जाते हैं (AUTOSAR AP TR SystemTests पृ. 189)।

अनुरूपता और वैधता परीक्षण के लिए, एप्लिकेशन [SWS_CRYPT_50125] के माध्यम से एक CertificateValidationCtx को इंस्टैंसिएट करता है। इस संदर्भ में [SWS_CRYPT_50117] के माध्यम से ट्रस्ट एंकर (Trust Anchors) जोड़े जाते हैं, [SWS_CRYPT_50120] के माध्यम से सत्यापन विकल्प परिभाषित किए जाते हैं और [SWS_CRYPT_50121] के माध्यम से संदर्भ टाइमस्टैम्प संग्रहीत किए जाते हैं। विश्वास श्रृंखला (chain of trust) के विरुद्ध पदानुक्रमित श्रृंखला परीक्षण [SWS_CRYPT_50122] या [SWS_CRYPT_50123] (AUTOSAR AP TR SystemTests पृ. 194) के माध्यम से होता है। प्रमाणपत्र निरसन (certificate revocations) का पता लगाने के लिए, Certificate Revocation Lists (CRL) को आयात किया जा सकता है ([SWS_CRYPT_50183]) या ऑनलाइन प्रमाणपत्र स्थिति क्वेरीज़ (RFC 6960 के अनुसार OCSP) को [SWS_CRYPT_40626], [SWS_CRYPT_50185] और [SWS_CRYPT_50124] के माध्यम से सत्यापन स्थिति में एकीकृत किया जा सकता है (AUTOSAR AP TR SystemTests पृ. 194)।

कुंजी परिवर्तनों के दौरान प्रमाणपत्र उपभोक्ताओं को अलग-अलग प्रमाणपत्र इंस्टैंसेस से अलग (decouple) करने के लिए, मैनिफ़ेस्ट CryptoCertificateGroup की अवधारणा का समर्थन करता है (AUTOSAR AP TPS ManifestSpecification पृ. 657)। उपभोक्ता एप्लिकेशन [SWS_CRYPT_50126] के माध्यम से तार्किक रूप से जुड़े प्रमाणपत्रों के पूरे समूह को लोड करते हैं, जबकि विशेषाधिकार प्राप्त व्यवस्थापक सेवाएँ [SWS_CRYPT_50127] और [SWS_CRYPT_50128] के माध्यम से प्रमाणपत्रों को गतिशील रूप से बदल सकती हैं या साफ़ कर सकती हैं (AUTOSAR AP TPS ManifestSpecification पृ. 657)।

सर्टिफिकेट चेन, CRL और OCSP के साथ X.509 सर्टिफिकेट सत्यापनApplikationX509ProviderValidationCtxCreateCertificateValidationCtx()Result<CertificateValidationCtx::Sptr>AddTrustedCertificate(rootCert)Result<void>ImportCrl(instanceSpecifier, crlBytes, format)Result<CertificateValidationStatus>AddOcspResponse(ocspResponse, issuerCert)Result<CertificateValidationStatus>ValidateCertificate(targetCert)Result<CertificateValidationResult::Sptrc>

अनुक्रम आरेख: प्रमाणपत्र श्रृंखला, CRL आयात और ऑनलाइन OCSP स्थिति परीक्षण के साथ X.509 प्रमाणपत्र सत्यापन। स्रोत: [SWS_CRYPT_40099], [SWS_CRYPT_50125], [SWS_CRYPT_50122], [SWS_CRYPT_50183], [SWS_CRYPT_50124], AUTOSAR AP TR SystemTests पृ. 194।

मैनिफ़ेस्ट मॉडलिंग, पोर्ट इंटरफ़ेस और परिनियोजन (Deployment)

समग्र वाहन आर्किटेक्चर में क्रिप्टोग्राफ़िक संसाधनों का एकीकरण ARXML मैनिफ़ेस्ट (AUTOSAR AP TPS ManifestSpecification पृ. 244) में AUTOSAR मेटा-मॉडल के माध्यम से घोषणात्मक रूप से किया जाता है। सॉफ़्टवेयर घटक डिज़ाइन स्तर पर पोर्ट्स (RPortPrototype) के माध्यम से अपनी सुरक्षा आवश्यकताओं को मॉडल करते हैं, जिन्हें CryptoInterface के विशेषज्ञताओं द्वारा टाइप किया जाता है: कुंजी स्लॉट के लिए CryptoKeySlotInterface, प्रमाणपत्र संसाधनों के लिए CryptoCertificateInterface और निष्पादन प्रदाताओं (execution providers) तक पहुंच के लिए CryptoProviderInterface (TPS ManifestSpecification पृ. 167, AUTOSAR AP TPS ManifestSpecification पृ. 245)। इंटरफ़ेस की विशेषताएँ अपरिवर्तनीय रूप से निर्धारित करती हैं कि क्या पढ़ने या लिखने की अनुमतियाँ दी गई हैं (writeAccess) और कौन से ऑब्जेक्ट प्रकार अनुमत हैं (TPS ManifestSpecification पृ. 168, TPS ManifestSpecification पृ. 438)।

परिनियोजन मैनिफ़ेस्ट में, लक्ष्य कॉन्फ़िगरेशन (Target Configuration) अमूर्त पोर्ट प्रोटोटाइप को ठोस भौतिक प्लेटफ़ॉर्म संसाधनों से जोड़ता है (AUTOSAR AP TPS ManifestSpecification पृ. 649)। मेटा-मॉडल तत्व CryptoKeySlotToPortPrototypeMapping किसी प्रक्रिया के पोर्ट को मशीन के CryptoModuleInstantiation में घोषित CryptoKeySlot पर मैप करता है (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)।

त्रुटि होने के बाद संदर्भ में एक परिभाषित स्थिति को पुनर्स्थापित करने और डेमॉन में मेमोरी लीक या हैंगिंग स्ट्रीमिंग बफ़र्स से बचने के लिए, कॉलर को संदर्भ को साफ़ करना होगा। यह या तो Cancel() ([SWS_CRYPT_50046], [SWS_CRYPT_50089]) को लक्षित कॉल करके किया जाता है, जिससे अपूर्ण रूपांतरणों को छोड़ दिया जाता है, या Reset() ([SWS_CRYPT_50212]) द्वारा किया जाता है, जो संदर्भ को पूरी तरह से कुंजी बाइंडिंग से पहले की स्थिति में रीसेट कर देता है (EXP SWArchitecture पृ. 100)।

आगे विस्तृत साक्ष्य

Cryptography मॉड्यूल का विनिर्देश कई केंद्रीय आवश्यकताओं और आर्किटेक्चर दस्तावेज़ों पर आधारित है, जिन्हें नीचे वर्गीकृत किया गया है:

यह मॉड्यूल गाइड AUTOSAR Adaptive विनिर्देश R25-11 के आधार पर एक AI-क्यूरेशन सहायक द्वारा तैयार किया गया था।

function: 261 type alias: 43 variable: 43 class: 34 enumeration: 5 struct: 1

विषय मानचित्र

विवरण दृश्य

रूपरेखा में कोई प्रविष्टि चुनें।

ara::crypto

CryptoErrorDomain क्लास

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

CryptoException क्लास

Exception type thrown for CRYPTO errors.

से इनहेरिट करता है ara::core::Exception

Formatter क्लास

Formatter object interface.

SecureCounter क्लास

128 bit secure counter made up of two uint64_t’s representing the most significant and least significant bits

Serializable क्लास

Serializable object interface.

GetCryptoErrorDomain फ़ंक्शन

Return a reference to the global CryptoErrorDomain.

constexpr const ara::core::ErrorDomain & GetCryptoErrorDomain () noexcept;
LoadCryptoProvider (ara::crypto) फ़ंक्शन

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;
LoadFormatter फ़ंक्शन

Factory that creates a Formatter.

ara::core::Result< Formatter::Sptr > LoadFormatter () noexcept;
LoadKeySlot फ़ंक्शन

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;
LoadWriteableKeySlot फ़ंक्शन

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;
LoadX509Provider फ़ंक्शन

This factory method shall create or return the existing instance of the singleton X.509 Provider.

ara::core::Result< x509::X509Provider::Sptr > LoadX509Provider () noexcept;
MakeErrorCode फ़ंक्शन

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;
CryptoErrc एन्यूमरेशन

Defines the error codes for the ara::crypto::CryptoErrorDomain

enum class CryptoErrc : ara::core::ErrorDomain::CodeType {...};
CryptoObjectType एन्यूमरेशन

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 {...};
CryptoTransform एन्यूमरेशन

Enumeration of cryptographic transformation directions.

enum class CryptoTransform : std::uint8_t {...};
AlgId टाइप उपनाम

Type for holding StringView of algorithm according to standardized format described in the chapter ’Naming Convention’.

using AlgId = ara::core::StringView;
AlgIdString टाइप उपनाम

Type for holding String of algorithm according to standardized format described in the chapter ’Naming Convention’.

using AlgIdString = ara::core::String;
AllowedUsageFlags टाइप उपनाम

Type for holding bit-flags of allowed usages of a key.

using AllowedUsageFlags = std::uint32_t;
FormatId टाइप उपनाम

A container type for the encoding format identifiers.

using FormatId = std::uint32_t;
LoadCryptoProvider टाइप उपनाम

Type for holding StringView of algorithm according to standardized format described in the chapter ’Naming Convention’.

ReadOnlyMemRegion टाइप उपनाम

Read-Only Memory Region (intended for [in] arguments)

using ReadOnlyMemRegion = ara::core::Span<const std::uint8_t>;
ReadWriteMemRegion टाइप उपनाम

Read-Write Memory Region (intended for [out] or [in/out] arguments)

using ReadWriteMemRegion = ara::core::Span<std::uint8_t>;
Timestamp टाइप उपनाम

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};
kAllowMac चर

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

AuthCipherCtx क्लास

Authenticated Cipher Context interface.

से इनहेरिट करता है CryptoContext

CryptoObject क्लास

A common interface for all cryptographic objects recognizable by the Crypto Provider.

से इनहेरिट करता है ara::crypto::Serializable

का आधार PrivateKey, PublicKey, SymmetricKey

CryptoProvider क्लास

CryptoProviderInterface representing one implementation of a set of cryptographic primitives with a key storage.

DecryptorPrivateCtx क्लास

Interface for asymmetric decryption.

से इनहेरिट करता है CryptoContext

EncryptorPublicCtx क्लास

Interface for asymmetric encryption.

से इनहेरिट करता है CryptoContext

HashFunctionCtx क्लास

Hash function interface.

से इनहेरिट करता है CryptoContext

KeyAgreementPrivateCtx क्लास

Key Agreement Private key Context interface.

से इनहेरिट करता है CryptoContext

Asymmetric Key Encapsulation Mechanism (KEM) Private key Context interface.

से इनहेरिट करता है CryptoContext

KeyDerivationFunctionCtx क्लास

Key Derivation Function interface.

से इनहेरिट करता है CryptoContext

KeyEncapsulatorPublicCtx क्लास

Asymmetric Key Encapsulation Mechanism (KEM) Public key Context interface.

से इनहेरिट करता है CryptoContext

KeySlot क्लास

KeySlot interface representing a storage location for a key in a CryptoProvider.

का आधार WriteableKeySlot

MessageAuthnCodeCtx क्लास

Keyed Message Authentication Code Context interface definition.

से इनहेरिट करता है CryptoContext

PrivateKey क्लास

Generalized Asymmetric Private Key interface.

से इनहेरिट करता है CryptoObject

ProtectedKeyImportCtx क्लास

A contexts for importing secured data such as secret key-material.

से इनहेरिट करता है CryptoContext

PublicKey क्लास

General Asymmetric Public Key interface.

से इनहेरिट करता है CryptoObject

RandomGeneratorCtx क्लास

Interface of Random Number Generator Context.

से इनहेरिट करता है CryptoContext

SignerPrivateCtx क्लास

Signature Private key Context interface.

से इनहेरिट करता है CryptoContext

SymmetricCipherCtx क्लास

Interface for Symmetric Cipher Operations.

से इनहेरिट करता है CryptoContext

SymmetricKey क्लास

Symmetric Key interface.

से इनहेरिट करता है CryptoObject

SymmetricKeyWrapperCtx क्लास

Context of a symmetric key wrap algorithm.

से इनहेरिट करता है CryptoContext

VerifierPublicCtx क्लास

Signature Verification Public key Context interface.

से इनहेरिट करता है CryptoContext

WriteableKeySlot क्लास

WriteableKeySlot interface representing a writeable storage location for a key in a Crypto Provider.

से इनहेरिट करता है KeySlot

ara::crypto::x509

Certificate क्लास

X.509 Certificate interface.

से इनहेरिट करता है ara::crypto::Serializable

CertificateValidationCtx क्लास

Certificate Validation Context.

X.509 Certificate Validation Result.

CertSignRequest क्लास

Certificate Signing Request (CSR) object interface.

से इनहेरिट करता है ara::crypto::Serializable

OcspResponse क्लास

Interface of OcspResponse.

X509DN क्लास

Interface of X.509 Distinguished Name (DN).

से इनहेरिट करता है ara::crypto::Serializable

X509Provider क्लास

X.509 Provider interface.

CertificateValidationStatus एन्यूमरेशन

Certificate Validation Status.

enum class CertificateValidationStatus : std::uint8_t {...};
OcspResponseStatus एन्यूमरेशन

On-line Certificate Status Protocol (OCSP) Response Status.

enum class OcspResponseStatus : std::uint8_t {...};
CertificateValidationOptions टाइप उपनाम

Type for holding bit-flags of certificate validation options.

using CertificateValidationOptions = std::uint32_t;
X509ExtendedKeyUsage टाइप उपनाम

X.509 v3 Extended Key Usage type definition.

using X509ExtendedKeyUsage = std::uint32_t;
X509KeyUsage टाइप उपनाम

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};
kIgnoreCrl चर

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};
kOcspOff चर

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};

नेमस्पेस

मॉड्यूल का UML क्लास आरेख

Abgerundete Rahmen = Namespaces; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = modulfremde bzw. externe Basisklassen. Klicken öffnet die Klassenseite.

G cluster_1 ara::crypto cluster_2 ara::crypto::cryp cluster_3 ara::crypto::x509 nara__crypto__Serializable855 Serializable nara__crypto__CryptoErrorDomain690 CryptoErrorDomain nara__core__ErrorDomain335 ara::core::ErrorDomain nara__crypto__CryptoErrorDomain690->nara__core__ErrorDomain335 nara__crypto__CryptoException764 CryptoException nara__core__Exception792 ara::core::Exception nara__crypto__CryptoException764->nara__core__Exception792 nara__crypto__Formatter631 Formatter nara__crypto__SecureCounter126 «struct» SecureCounter nara__crypto__cryp__AuthCipherCtx142 AuthCipherCtx nara__crypto__cryp__CryptoContext85 CryptoContext nara__crypto__cryp__AuthCipherCtx142->nara__crypto__cryp__CryptoContext85 nara__crypto__cryp__CryptoObject679 CryptoObject nara__crypto__cryp__CryptoObject679->nara__crypto__Serializable855 nara__crypto__cryp__DecryptorPrivateCtx616 DecryptorPrivateCtx nara__crypto__cryp__DecryptorPrivateCtx616->nara__crypto__cryp__CryptoContext85 nara__crypto__cryp__EncryptorPublicCtx829 EncryptorPublicCtx nara__crypto__cryp__EncryptorPublicCtx829->nara__crypto__cryp__CryptoContext85 nara__crypto__cryp__HashFunctionCtx412 HashFunctionCtx nara__crypto__cryp__HashFunctionCtx412->nara__crypto__cryp__CryptoContext85 nara__crypto__cryp__KeyAgreementPrivateCtx203 KeyAgreementPrivateCtx nara__crypto__cryp__KeyAgreementPrivateCtx203->nara__crypto__cryp__CryptoContext85 nara__crypto__cryp__KeyDecapsulatorPrivateCtx748 KeyDecapsulatorPrivateCtx nara__crypto__cryp__KeyDecapsulatorPrivateCtx748->nara__crypto__cryp__CryptoContext85 nara__crypto__cryp__KeyDerivationFunctionCtx485 KeyDerivationFunctionCtx nara__crypto__cryp__KeyDerivationFunctionCtx485->nara__crypto__cryp__CryptoContext85 nara__crypto__cryp__KeyEncapsulatorPublicCtx699 KeyEncapsulatorPublicCtx nara__crypto__cryp__KeyEncapsulatorPublicCtx699->nara__crypto__cryp__CryptoContext85 nara__crypto__cryp__KeySlot637 KeySlot nara__crypto__cryp__MessageAuthnCodeCtx845 MessageAuthnCodeCtx nara__crypto__cryp__MessageAuthnCodeCtx845->nara__crypto__cryp__CryptoContext85 nara__crypto__cryp__PrivateKey762 PrivateKey nara__crypto__cryp__PrivateKey762->nara__crypto__cryp__CryptoObject679 nara__crypto__cryp__ProtectedKeyImportCtx279 ProtectedKeyImportCtx nara__crypto__cryp__ProtectedKeyImportCtx279->nara__crypto__cryp__CryptoContext85 nara__crypto__cryp__PublicKey940 PublicKey nara__crypto__cryp__PublicKey940->nara__crypto__cryp__CryptoObject679 nara__crypto__cryp__RandomGeneratorCtx512 RandomGeneratorCtx nara__crypto__cryp__RandomGeneratorCtx512->nara__crypto__cryp__CryptoContext85 nara__crypto__cryp__SignerPrivateCtx943 SignerPrivateCtx nara__crypto__cryp__SignerPrivateCtx943->nara__crypto__cryp__CryptoContext85 nara__crypto__cryp__SymmetricCipherCtx167 SymmetricCipherCtx nara__crypto__cryp__SymmetricCipherCtx167->nara__crypto__cryp__CryptoContext85 nara__crypto__cryp__SymmetricKey111 SymmetricKey nara__crypto__cryp__SymmetricKey111->nara__crypto__cryp__CryptoObject679 nara__crypto__cryp__SymmetricKeyWrapperCtx465 SymmetricKeyWrapperCtx nara__crypto__cryp__SymmetricKeyWrapperCtx465->nara__crypto__cryp__CryptoContext85 nara__crypto__cryp__VerifierPublicCtx35 VerifierPublicCtx nara__crypto__cryp__VerifierPublicCtx35->nara__crypto__cryp__CryptoContext85 nara__crypto__cryp__WriteableKeySlot529 WriteableKeySlot nara__crypto__cryp__WriteableKeySlot529->nara__crypto__cryp__KeySlot637 nara__crypto__cryp__CryptoProvider844 CryptoProvider nara__crypto__x509__Certificate240 Certificate nara__crypto__x509__Certificate240->nara__crypto__Serializable855 nara__crypto__x509__CertSignRequest934 CertSignRequest nara__crypto__x509__CertSignRequest934->nara__crypto__Serializable855 nara__crypto__x509__X509DN930 X509DN nara__crypto__x509__X509DN930->nara__crypto__Serializable855 nara__crypto__x509__CertificateValidationCtx565 CertificateValidationCtx nara__crypto__x509__CertificateValidationResult372 CertificateValidationResult nara__crypto__x509__OcspResponse358 OcspResponse nara__crypto__x509__X509Provider937 X509Provider