nl::Weave::Profiles::Security::CASE::WeaveCASEAuthDelegate

यह एक ऐब्सट्रैक्ट क्लास है.

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

ऐब्स्ट्रैक्ट इंटरफ़ेस जिसमें CASE सेशन बनाने के दौरान, पुष्टि करने की कार्रवाइयां सौंपी गई थीं.

खास जानकारी

इनहेरिटेंस

पहले से मालूम सब-क्लास: 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
लोकल नोड के लिए CASE सर्टिफ़िकेट जानकारी को कोड में बदलें.
EncodeNodePayload(const BeginSessionContext & msgCtx, uint8_t *payloadBuf, uint16_t payloadBufSize, uint16_t & payloadLen)
virtual WEAVE_ERROR
ऐप्लिकेशन के हिसाब से पेलोड को कोड में बदलें, ताकि उसे मिलते-जुलते ऐप्लिकेशन के CASE मैसेज में शामिल किया जा सके.
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
मिलते-जुलते ऐप्लिकेशन के सर्टिफ़िकेट लोड होने के बाद कॉल किया जाता है.

सार्वजनिक फ़ंक्शन

BeginValidation

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

सर्टिफ़िकेट की पुष्टि की शुरुआत में कॉल किया गया.

लागू होने वाले सर्टिफ़िकेट की पुष्टि के लिए, ज़रूरी संसाधनों के साथ दिए गए WeaveCertificateSet ऑब्जेक्ट को शुरू करना होगा. फ़िलहाल, लागू करने पर सर्टिफ़िकेट सेट में, भरोसेमंद रूट या CA सर्टिफ़िकेट लोड हो सकते हैं या OnPeerCertsLoaded() के कॉल होने तक इंतज़ार किया जा सकता है.

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

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

अगर पुष्टि के पूरे नतीजे चाहिए, तो लागू करने से CertValidationresults और CertValidationLen फ़ील्ड शुरू किया जा सकता है.

BeginValidation() के दौरान दिए गए सभी संसाधनों को बनाए रखने के लिए, लागू करने की ज़रूरत होती है. ऐसा तब तक होता है, जब तक कि इससे जुड़े EndValidation() को कॉल नहीं किया जाता. लागू करने की इस बात की गारंटी है कि BeginValidation() को किए गए हर कॉल के लिए EndValidation() को एक ही बार कॉल किया जाएगा.

EncodeNodeCertInfo

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

लोकल नोड के लिए CASE सर्टिफ़िकेट जानकारी को कोड में बदलें.

लागू करने के टूल, इस कॉल का इस्तेमाल करके लोकल नोड के लिए CASE Certificateजानकारी स्ट्रक्चर की डिफ़ॉल्ट एन्कोडिंग को बदल सकते हैं. कॉल किए जाने पर, लागू करने के तरीके को कम से कम स्थानीय नोड की इकाई के सर्टिफ़िकेट वाली Certificateसूचना स्ट्रक्चर लिखना चाहिए. लागू करने के लिए, इससे जुड़े सर्टिफ़िकेट और/या ट्रस्ट ऐंकर का सेट शामिल किया जा सकता है.

EncodeNodePayload

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

ऐप्लिकेशन के हिसाब से पेलोड को कोड में बदलें, ताकि उसे मिलते-जुलते ऐप्लिकेशन के CASE मैसेज में शामिल किया जा सके.

इस तरीके को लागू करना ज़रूरी नहीं है. डिफ़ॉल्ट रूप से लागू होने पर, शून्य-अवधि वाला पेलोड दिखता है.

EndValidation

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

सर्टिफ़िकेट की पुष्टि खत्म होने पर कॉल किया जाता है.

सर्टिफ़िकेशन की पुष्टि की प्रोसेस पूरी होने के बाद, क्लीनअप के लिए इस कॉल का इस्तेमाल किया जा सकता है. लागू करने की इस बात की गारंटी है कि BeginValidation() को किए गए हर कॉल के लिए EndValidation() को एक ही बार कॉल किया जाएगा.

GenerateNodeSignature

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

लोकल नोड की निजी कुंजी का इस्तेमाल करके हस्ताक्षर जनरेट करें.

लागू किए जाने पर, लागू करने के लिए नोड की निजी कुंजी का इस्तेमाल करके दिए गए हैश मान पर हस्ताक्षर की गणना करनी चाहिए. इसके बाद, जनरेट किए गए हस्ताक्षर को, दिए गए TLV लेखन में, CASE ECDSASignature स्ट्रक्चर के तौर पर लिखा जाना चाहिए. इसके लिए, बताए गए टैग का इस्तेमाल करना चाहिए.

ऐसे मामले जहां नोड की निजी कुंजी लोकल बफ़र में रखी जाती है, वहां इस तरीके को लागू करने के लिए GenerateAndEncodeWeaveECDSASignature() यूटिलिटी फ़ंक्शन काम आ सकता है.

HandleValidationResult

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

सर्टिफ़िकेट की पुष्टि होने के बाद कॉल किया जाता है.

लागू करने की प्रक्रिया में, इस कॉल का इस्तेमाल मिलते-जुलते ऐप्लिकेशन के सर्टिफ़िकेट की पुष्टि के नतीजे की जांच करने के लिए किया जा सकता है. इसमें बदलाव भी हो सकता है. अगर सत्यापन सफल होता है, तो मान्यRes को WEAVE_NO_ERROR पर सेट कर दिया जाएगा. इस मामले में, पुष्टि करने के संदर्भ में नतीजे से जुड़ी जानकारी शामिल होगी. खास तौर पर, Trustanchor फ़ील्ड को ट्रस्ट ऐंकर सर्टिफ़िकेट पर सेट किया जाएगा.

अगर लागू करने की प्रोसेस के तहत, BeginValidation() कॉल किए जाने के दौरान, ValidationContext स्ट्रक्चर में मौजूद CertValidation Results और CertValidationLen फ़ील्ड शुरू किया जाता है, तो इन फ़ील्ड में सर्टिफ़िकेट सेट के हर सर्टिफ़िकेट के लिए, पुष्टि करने वाले नतीजे मिलेंगे.

लागू करने की सुविधा के तहत, validRes को किसी गड़बड़ी की वैल्यू पर सेट करके इसे बदला जा सकता है. इस वजह से, पुष्टि करने में समस्या आ सकती है.

अगर पुष्टि नहीं हो सकी, तो legalRes से पुष्टि न हो पाने की वजह पता चलेगी. लागू करने पर नतीजे में गड़बड़ी की वैल्यू बदल सकती है. हालांकि, नतीजे को WEAVE_NO_ERROR पर सेट नहीं किया जाना चाहिए.

OnPeerCertsLoaded

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

मिलते-जुलते ऐप्लिकेशन के सर्टिफ़िकेट लोड होने के बाद कॉल किया जाता है.

लागू करने के टूल, इनपुट सर्टिफ़िकेट और पुष्टि करने की शर्तों को पूरा करने के लिए इस कॉल का इस्तेमाल कर सकते हैं. इनका इस्तेमाल मिलते-जुलते ऐप्लिकेशन के सर्टिफ़िकेट की पुष्टि करने के लिए किया जाएगा. कॉल के समय, मिलते-जुलते ऐप्लिकेशन से मिले सर्टिफ़िकेट, सर्टिफ़िकेट सेट में लोड किए जाएंगे. इसमें, उसका अपना सर्टिफ़िकेट भी शामिल होगा. इसके अलावा, SubjectDN औरSubjectKeyId आर्ग्युमेंट की शुरुआत उन वैल्यू के लिए की जाएगी जिनकी मदद से सर्टिफ़िकेट सेट से मिलते-जुलते ऐप्लिकेशन के सर्टिफ़िकेट का समाधान किया जाएगा. अगर मिलते-जुलते ऐप्लिकेशन ने अपना सर्टिफ़िकेट दिया है (सर्टिफ़िकेट का रेफ़रंस देने के बजाय), तो मान्यCtx आर्ग्युमेंट में मौजूद EntityCert फ़ील्ड में, उस सर्टिफ़िकेट के लिए पॉइंटर मौजूद होगा.

इस दौरान, लागू करने की प्रोसेस के दौरान सर्टिफ़िकेट सेट के कॉन्टेंट में बदलाव किया जा सकता है. इसमें नए सर्टिफ़िकेट जोड़ना भी शामिल है. ज़रूरत के मुताबिक, वे subjectDN,SubjectKeyId या मान्यCtx आर्ग्युमेंट में बदलाव भी कर सकते हैं. सबसे ज़रूरी बात यह है कि लागू करने से पहले, सर्टिफ़िकेट टाइप वाले फ़ील्ड में, सर्टिफ़िकेट के सेट के साथ बदलाव किया जाना चाहिए. इससे यह पक्का किया जा सकेगा कि पुष्टि और ऐक्सेस कंट्रोल की बाद में जांच के दौरान, सर्टिफ़िकेट का सही तरीके से इस्तेमाल किया जाए.

ध्यान दें: अगर साथी अपने लिए पूरे सर्टिफ़िकेट के बजाय सर्टिफ़िकेट का रेफ़रंस देता है, तो पुष्टि करने वाले कॉन्टेक्स्ट में मौजूद EntityCert फ़ील्ड में शून्य (शून्य) दिखेगा. अगर किसी लागू करने की प्रक्रिया में, सर्टिफ़िकेट के रेफ़रंस के साथ काम करना है, तो वापस आने से पहले उसे सर्टिफ़िकेट के सेट में, मिलते-जुलते सब्जेक्ट डीएन और 'की आईडी' से मेल खाने वाला सर्टिफ़िकेट जोड़ना होगा.

इस तरीके को लागू करना ज़रूरी नहीं है. डिफ़ॉल्ट रूप से लागू होने पर कुछ नहीं होता है.