nl:: बुनें:: प्रोफाइल:: सुरक्षा:: मामला:: WeaveCASEAuthDelegate

यह एक अमूर्त वर्ग है।

#include <src/lib/profiles/security/WeaveCASE.h>

सार इंटरफ़ेस जो करने के लिए प्रमाणीकरण कार्रवाई के दौरान दिए गए हैं मामला सत्र स्थापना।

सारांश

विरासत

प्रत्यक्ष ज्ञात उपवर्गों: nl :: Weave :: DeviceManager :: WeaveDeviceManager

सार्वजनिक समारोह

BeginValidation (const BeginSessionContext & msgCtx, ValidationContext & validCtx, WeaveCertificateSet & certSet)=0
virtual WEAVE_ERROR
प्रमाणपत्र सत्यापन की शुरुआत में बुलाया गया।
EncodeNodeCertInfo (const BeginSessionContext & msgCtx,TLVWriter & writer)=0
virtual WEAVE_ERROR
एनकोड मामला स्थानीय नोड के लिए प्रमाणपत्र जानकारी।
EncodeNodePayload (const BeginSessionContext & msgCtx, uint8_t *payloadBuf, uint16_t payloadBufSize, uint16_t & payloadLen)
virtual WEAVE_ERROR
एक एप्लिकेशन-विशिष्ट पेलोड सांकेतिक शब्दों में बदलना में शामिल किया जाना मामला सहकर्मी को संदेश।
EndValidation (const BeginSessionContext & msgCtx, ValidationContext & validCtx, WeaveCertificateSet & certSet)=0
virtual void
प्रमाणपत्र सत्यापन के अंत में बुलाया गया।
GenerateNodeSignature (const BeginSessionContext & msgCtx, const uint8_t *msgHash, uint8_t msgHashLen,TLVWriter & writer, uint64_t tag)=0
virtual WEAVE_ERROR
स्थानीय नोड की निजी कुंजी का उपयोग करके एक हस्ताक्षर उत्पन्न करें।
HandleValidationResult (const BeginSessionContext & msgCtx, ValidationContext & validCtx, WeaveCertificateSet & certSet, WEAVE_ERROR & validRes)=0
virtual WEAVE_ERROR
प्रमाणपत्र सत्यापन के परिणाम के साथ बुलाया गया।
OnPeerCertsLoaded (const BeginSessionContext & msgCtx, WeaveDN & subjectDN, CertificateKeyId & subjectKeyId, ValidationContext & validCtx, WeaveCertificateSet & certSet)
virtual WEAVE_ERROR
सहकर्मी के प्रमाणपत्र लोड होने के बाद कॉल किया गया।

सार्वजनिक समारोह

शुरुआत सत्यापन

virtual WEAVE_ERROR BeginValidation(
  const BeginSessionContext & msgCtx,
  ValidationContext & validCtx,
  WeaveCertificateSet & certSet
)=0

प्रमाणपत्र सत्यापन की शुरुआत में बुलाया गया।

क्रियान्वयन की आपूर्ति प्रारंभ करना चाहिए WeaveCertificateSet आगामी प्रमाण पत्र सत्यापन के लिए पर्याप्त संसाधनों के साथ वस्तु। इस समय क्रियान्वयन प्रमाण पत्र सेट में विश्वसनीय रूट या CA प्रमाणपत्र लोड करते हैं, या जब तक प्रतीक्षा कर सकते हैं OnPeerCertsLoaded () कहा जाता है।

प्रमाणपत्र सेट में लोड किए गए प्रत्येक प्रमाणपत्र को लोड फ़ंक्शन द्वारा एक डिफ़ॉल्ट प्रमाणपत्र प्रकार असाइन किया जाएगा। क्रियान्वयन के लिए आवश्यक के रूप में इन प्रकार समायोजित सत्यापन के दौरान प्रमाण पत्र का सही इलाज है, और के लिए WeaveAuthMode का सही काम सुनिश्चित करने के लिए करना चाहिए मामला बातचीत।

आपूर्ति किए गए सत्यापन संदर्भ को डिफ़ॉल्ट सत्यापन मानदंड के एक सेट के साथ प्रारंभ किया जाएगा, जिसे कार्यान्वयन आवश्यकतानुसार बदल सकता है। कार्यान्वयन को या तो प्रभावी समय फ़ील्ड सेट करना होगा, या प्रमाणपत्र आजीवन सत्यापन को दबाने के लिए उपयुक्त सत्यापन फ़्लैग सेट करना होगा।

यदि विस्तृत सत्यापन परिणाम वांछित हैं, तो कार्यान्वयन CertValidationResults और CertValidationLen फ़ील्ड प्रारंभ कर सकता है।

क्रियान्वयन किसी भी संसाधन के दौरान आवंटित बनाए रखने के लिए आवश्यक हैं BeginValidation () इसी तक EndValidation () कहा जाता है किया जाता है है। क्रियान्वयन की गारंटी है कि EndValidation () वास्तव में करने के लिए प्रत्येक सफल कॉल के लिए एक बार बुलाया जाएगा BeginValidation ()

EncodeNodeCertInfo

virtual WEAVE_ERROR EncodeNodeCertInfo(
  const BeginSessionContext & msgCtx,
  TLVWriter & writer
)=0

एनकोड मामला स्थानीय नोड के लिए प्रमाणपत्र जानकारी।

क्रियान्वयन की डिफ़ॉल्ट एन्कोडिंग ओवरराइड करने के लिए इस कॉल का उपयोग कर सकते मामला स्थानीय नोड के लिए CertificateInformation संरचना। जब कॉल किया जाता है, तो कार्यान्वयन को एक प्रमाणपत्र सूचना संरचना लिखनी चाहिए, जिसमें कम से कम, स्थानीय नोड का इकाई प्रमाणपत्र हो। कार्यान्वयन में वैकल्पिक रूप से संबंधित प्रमाणपत्रों और/या ट्रस्ट एंकरों का एक सेट शामिल हो सकता है।

एनकोडनोडपेलोड

virtual WEAVE_ERROR EncodeNodePayload(
  const BeginSessionContext & msgCtx,
  uint8_t *payloadBuf,
  uint16_t payloadBufSize,
  uint16_t & payloadLen
)

एक एप्लिकेशन-विशिष्ट पेलोड सांकेतिक शब्दों में बदलना में शामिल किया जाना मामला सहकर्मी को संदेश।

इस पद्धति को लागू करना वैकल्पिक है। डिफ़ॉल्ट कार्यान्वयन शून्य-लंबाई वाला पेलोड देता है।

अंतिम सत्यापन

virtual void EndValidation(
  const BeginSessionContext & msgCtx,
  ValidationContext & validCtx,
  WeaveCertificateSet & certSet
)=0

प्रमाणपत्र सत्यापन के अंत में बुलाया गया।

प्रमाणीकरण सत्यापन पूर्ण होने के बाद कार्यान्वयन इस कॉल का उपयोग क्लीनअप करने के लिए कर सकते हैं। क्रियान्वयन की गारंटी है कि EndValidation () वास्तव में करने के लिए प्रत्येक सफल कॉल के लिए एक बार बुलाया जाएगा BeginValidation ()

जेनरेट नोड सिग्नेचर

virtual WEAVE_ERROR GenerateNodeSignature(
  const BeginSessionContext & msgCtx,
  const uint8_t *msgHash,
  uint8_t msgHashLen,
  TLVWriter & writer,
  uint64_t tag
)=0

स्थानीय नोड की निजी कुंजी का उपयोग करके एक हस्ताक्षर उत्पन्न करें।

जब लागू किया जाता है, तो कार्यान्वयन को नोड की निजी कुंजी का उपयोग करके दिए गए हैश मान पर हस्ताक्षर की गणना करनी चाहिए। उत्पन्न हस्ताक्षर फिर एक के रूप में लिखा जाना चाहिए मामला आपूर्ति करने के लिए ECDSASignature संरचना TLV निर्दिष्ट टैग का उपयोग कर लेखन।

ऐसे मामलों में जहां नोड के निजी कुंजी एक स्थानीय बफर में आयोजित किया जाता है में, GenerateAndEncodeWeaveECDSASignature () उपयोगिता समारोह इस पद्धति को लागू करने के लिए उपयोगी हो सकता है।

हैंडल सत्यापन परिणाम

virtual WEAVE_ERROR HandleValidationResult(
  const BeginSessionContext & msgCtx,
  ValidationContext & validCtx,
  WeaveCertificateSet & certSet,
  WEAVE_ERROR & validRes
)=0

प्रमाणपत्र सत्यापन के परिणाम के साथ बुलाया गया।

कार्यान्वयन इस कॉल का उपयोग सहकर्मी के प्रमाण पत्र के सत्यापन के परिणाम का निरीक्षण करने और संभवतः बदलने के लिए कर सकते हैं। यदि सत्यापन सफल रहा, तो मान्यRes को WEAVE_NO_ERROR पर सेट किया जाएगा। इस मामले में, सत्यापन संदर्भ में परिणाम के बारे में विवरण होगा। विशेष रूप से, TrustAnchor फ़ील्ड को ट्रस्ट एंकर प्रमाणपत्र पर सेट किया जाएगा।

कार्यान्वयन के भीतर CertValidationResults और CertValidationLen क्षेत्रों प्रारंभ तो ValidationContext दौरान संरचना BeginValidation () कहा जाता है, तो इन क्षेत्रों प्रमाण पत्र सेट में प्रत्येक प्रमाण पत्र के लिए विस्तृत सत्यापन परिणाम निहित होगा।

वैलिडरेस को एरर वैल्यू पर सेट करके इम्प्लीमेंटेशन इसे ओवरराइड कर सकता है, जिससे वेलिडेशन फेल हो जाता है।

यदि सत्यापन विफल हो जाता है, तोValidRes विफलता का कारण दर्शाएगा। कार्यान्वयन परिणाम को एक भिन्न त्रुटि मान पर ओवरराइड कर सकता है, लेकिन परिणाम को WEAVE_NO_ERROR पर सेट नहीं करना चाहिए।

OnPeerCertsLoaded

virtual WEAVE_ERROR OnPeerCertsLoaded(
  const BeginSessionContext & msgCtx,
  WeaveDN & subjectDN,
  CertificateKeyId & subjectKeyId,
  ValidationContext & validCtx,
  WeaveCertificateSet & certSet
)

सहकर्मी के प्रमाणपत्र लोड होने के बाद कॉल किया गया।

कार्यान्वयन इस कॉल का उपयोग इनपुट प्रमाणपत्रों और सत्यापन मानदंडों को अंतिम रूप देने के लिए कर सकते हैं जिनका उपयोग सहकर्मी के प्रमाणपत्र के सत्यापन के लिए किया जाएगा। कॉल के समय, सहकर्मी द्वारा प्रदान किए गए प्रमाणपत्रों को प्रमाणपत्र सेट में लोड किया जाएगा (यदि मौजूद हो तो अपने स्वयं के प्रमाणपत्र सहित)। साथ ही, सब्जेक्टडीएन और सब्जेक्टकेआईड तर्कों को उन मानों के लिए इनिशियलाइज़ किया जाएगा जिनका उपयोग प्रमाणपत्र सेट से पीयर के प्रमाणपत्र को हल करने के लिए किया जाएगा। यदि सहकर्मी ने अपना प्रमाणपत्र (प्रमाणपत्र संदर्भ के बजाय) प्रदान किया है, तो EntityCert फ़ील्ड में मान्यCtx तर्क में उस प्रमाणपत्र के लिए एक सूचक होगा।

इस कॉल के दौरान, कार्यान्वयन नए प्रमाणपत्र जोड़ने सहित प्रमाणपत्र सेट की सामग्री को संशोधित कर सकता है। वे आवश्यकतानुसार विषय डीएन, विषयकीआईड या वैधसीटीएक्स तर्कों को भी बदल सकते हैं। सबसे महत्वपूर्ण बात यह है कि सत्यापन और बाद में अभिगम नियंत्रण जांच के दौरान प्रमाणपत्रों का सही उपचार सुनिश्चित करने के लिए कार्यान्वयन को प्रमाणपत्र प्रकार फ़ील्ड को प्रमाणपत्र सेट के साथ समायोजित करना चाहिए।

नोट: यदि सहकर्मी पूर्ण प्रमाणपत्र के बजाय स्वयं के लिए एक प्रमाणपत्र संदर्भ प्रदान करता है, तो सत्यापन संदर्भ में EntityCert फ़ील्ड में एक NULL होगा। यदि कोई कार्यान्वयन प्रमाणपत्र संदर्भों का समर्थन करना चाहता है, तो उसे लौटने से पहले सेट किए गए प्रमाणपत्र में सहकर्मी के विषय डीएन और कुंजी आईडी से मेल खाने वाला प्रमाणपत्र जोड़ना होगा।

इस पद्धति को लागू करना वैकल्पिक है। डिफ़ॉल्ट कार्यान्वयन से कुछ भी नहीं होता है।