সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।

nl:: বুনা:: প্রোফাইল:: নিরাপত্তা:: কেস:: 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
পিয়ার সার্টিফিকেট লোড করা হয়েছে পরে কল.

পাবলিক ফাংশন

বৈধকরণ শুরু করুন

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

শংসাপত্র যাচাইকরণের শুরুতে কল করা হয়।

আসন্ন শংসাপত্রের বৈধতা পরিচালনা করার জন্য পর্যাপ্ত সংস্থান সহ বাস্তবায়নগুলিকে সরবরাহ করা WeaveCertificateSet অবজেক্টকে আরম্ভ করতে হবে। এই সময়ে প্রয়োগগুলি সার্টিফিকেট সেটে বিশ্বস্ত রুট বা CA শংসাপত্রগুলি লোড করতে পারে, অথবা OnPeerCertsLoaded() কল না হওয়া পর্যন্ত অপেক্ষা করতে পারে৷

শংসাপত্র সেটে লোড করা প্রতিটি শংসাপত্র লোড ফাংশন দ্বারা একটি ডিফল্ট শংসাপত্রের ধরন বরাদ্দ করা হবে। বৈধকরণের সময় শংসাপত্রের সঠিক চিকিত্সা নিশ্চিত করতে এবং CASE ইন্টারঅ্যাকশনের জন্য WeaveAuthMode-এর সঠিক নিয়োগ নিশ্চিত করার জন্য বাস্তবায়নের এই প্রকারগুলিকে প্রয়োজন অনুসারে সামঞ্জস্য করা উচিত।

সরবরাহকৃত বৈধতা প্রসঙ্গটি ডিফল্ট বৈধতা মানদণ্ডের একটি সেটের সাথে শুরু করা হবে, যা বাস্তবায়ন প্রয়োজন অনুসারে পরিবর্তন করতে পারে। বাস্তবায়নকে অবশ্যই EffectiveTime ফিল্ড সেট করতে হবে, অথবা সার্টিফিকেটের আজীবন বৈধতা দমন করার জন্য উপযুক্ত বৈধতা ফ্ল্যাগ সেট করতে হবে।

যদি বিস্তারিত যাচাইকরণের ফলাফলগুলি আকাঙ্ক্ষিত হয়, তাহলে প্রয়োগটি CertValidation Results এবং CertValidationLen ক্ষেত্রগুলি শুরু করতে পারে।

BeginValidation() এর সময় বরাদ্দ করা যেকোন সম্পদ বজায় রাখার জন্য বাস্তবায়নের প্রয়োজন হয় যতক্ষণ না সংশ্লিষ্ট EndValidation() বলা হয়। বাস্তবায়ন নিশ্চিত করা হয় যে BeginValidation()- এ প্রতিটি সফল কলের জন্য EndValidation() কে ঠিক একবার কল করা হবে।

EncodeNodeCertInfo

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

স্থানীয় নোডের জন্য CASE শংসাপত্রের তথ্য এনকোড করুন।

স্থানীয় নোডের জন্য CASE CertificateInformation কাঠামোর ডিফল্ট এনকোডিং ওভাররাইড করতে বাস্তবায়ন এই কলটি ব্যবহার করতে পারে। যখন কল করা হয়, তখন বাস্তবায়নের একটি সার্টিফিকেট ইনফরমেশন কাঠামো লিখতে হবে, যাতে ন্যূনতম স্থানীয় নোডের সত্তা শংসাপত্র থাকে। বাস্তবায়নে ঐচ্ছিকভাবে সম্পর্কিত শংসাপত্র এবং/অথবা ট্রাস্ট অ্যাঙ্করগুলির একটি সেট অন্তর্ভুক্ত থাকতে পারে।

EncodeNodePayload

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

সহকর্মীকে CASE বার্তায় অন্তর্ভুক্ত করার জন্য একটি অ্যাপ্লিকেশন-নির্দিষ্ট পেলোড এনকোড করুন।

এই পদ্ধতিটি প্রয়োগ করা ঐচ্ছিক। ডিফল্ট বাস্তবায়ন একটি শূন্য-দৈর্ঘ্য পেলোড প্রদান করে।

সমাপ্তি যাচাইকরণ

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

সার্টিফিকেট যাচাই শেষে কল করা হয়।

ইমপ্লিমেন্টেশনগুলি সার্টিফিকেশনের বৈধতা সম্পূর্ণ হওয়ার পরে পরিষ্কার করার জন্য এই কলটি ব্যবহার করতে পারে। বাস্তবায়ন নিশ্চিত করা হয় যে BeginValidation()- এ প্রতিটি সফল কলের জন্য EndValidation() কে ঠিক একবার কল করা হবে।

নোডসিগনেচার তৈরি করুন

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

স্থানীয় নোডের ব্যক্তিগত কী ব্যবহার করে একটি স্বাক্ষর তৈরি করুন।

যখন আহ্বান করা হয়, তখন বাস্তবায়নকে অবশ্যই নোডের ব্যক্তিগত কী ব্যবহার করে প্রদত্ত হ্যাশ মানের একটি স্বাক্ষর গণনা করতে হবে। উত্পন্ন স্বাক্ষর তারপর নির্দিষ্ট ট্যাগ ব্যবহার করে সরবরাহকৃত TLV লেখাতে একটি CASE ECDSAS স্বাক্ষর কাঠামোর আকারে লিখতে হবে।

যে ক্ষেত্রে নোডের প্রাইভেট কী স্থানীয় বাফারে রাখা হয়, সেখানে GenerateAndEncodeWeaveECDSASignature() ইউটিলিটি ফাংশন এই পদ্ধতি বাস্তবায়নের জন্য উপযোগী হতে পারে।

হ্যান্ডেল ভ্যালিডেশন রেজাল্ট

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

সার্টিফিকেট যাচাইয়ের ফলাফল সহ কল ​​করা হয়েছে।

ইমপ্লিমেন্টেশনগুলি এই কলটি পরিদর্শন করতে ব্যবহার করতে পারে, এবং সম্ভবত, পিয়ারের শংসাপত্রের বৈধতার ফলাফল পরিবর্তন করতে পারে৷ বৈধতা সফল হলে, বৈধ রেস WEAVE_NO_ERROR এ সেট করা হবে। এই ক্ষেত্রে, যাচাইকরণ প্রসঙ্গে ফলাফল সম্পর্কিত বিশদ বিবরণ থাকবে। বিশেষ করে, TrustAnchor ক্ষেত্রটি ট্রাস্ট অ্যাঙ্কর শংসাপত্রে সেট করা হবে।

যদি বাস্তবায়নটি BeginValidation() কলের সময় ValidationContext কাঠামোর মধ্যে CertValidationResults এবং CertValidationLen ক্ষেত্রগুলিকে আরম্ভ করে, তাহলে এই ক্ষেত্রগুলিতে শংসাপত্র সেটের প্রতিটি শংসাপত্রের জন্য বিস্তারিত বৈধতা ফলাফল থাকবে।

ইমপ্লিমেন্টেশনগুলি validRes কে একটি ত্রুটি মান সেট করে এটিকে ওভাররাইড করতে পারে, যার ফলে বৈধতা ব্যর্থ হতে পারে।

বৈধতা ব্যর্থ হলে, validRes ব্যর্থতার কারণ প্রতিফলিত করবে। ইমপ্লিমেন্টেশন ফলাফলটিকে একটি ভিন্ন ত্রুটির মানের সাথে ওভাররাইড করতে পারে, কিন্তু ফলাফলটিকে WEAVE_NO_ERROR তে সেট করা উচিত নয়৷

OnPeerCerts লোড হয়েছে

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

পিয়ার সার্টিফিকেট লোড করা হয়েছে পরে কল.

ইমপ্লিমেন্টেশনগুলি এই কলটি ইনপুট সার্টিফিকেট এবং বৈধতার মানদণ্ড চূড়ান্ত করতে ব্যবহার করতে পারে যা পিয়ারের শংসাপত্রের বৈধতা সম্পাদন করতে ব্যবহৃত হবে৷ কলের সময়, পিয়ার দ্বারা সরবরাহ করা শংসাপত্রগুলি শংসাপত্র সেটে লোড করা হবে (যদি উপস্থিত থাকে তবে তার নিজস্ব শংসাপত্র সহ)। অতিরিক্তভাবে, subjectDN এবং subjectKeyId আর্গুমেন্টগুলি এমন মানগুলিতে শুরু করা হবে যা শংসাপত্র সেট থেকে পিয়ারের শংসাপত্র সমাধান করতে ব্যবহার করা হবে৷ যদি পিয়ার তার নিজস্ব শংসাপত্র সরবরাহ করে থাকে (একটি শংসাপত্রের রেফারেন্সের পরিবর্তে) তাহলে validCtx আর্গুমেন্টের মধ্যে EntityCert ক্ষেত্রে সেই শংসাপত্রের একটি পয়েন্টার থাকবে।

এই কল চলাকালীন, বাস্তবায়ন নতুন শংসাপত্র যোগ সহ শংসাপত্র সেটের বিষয়বস্তু পরিবর্তন করতে পারে। প্রয়োজনে তারা subjectDN, subjectKeyId বা validCtx আর্গুমেন্টও পরিবর্তন করতে পারে। সবচেয়ে গুরুত্বপূর্ণভাবে, বাস্তবায়নের জন্য শংসাপত্রের ধরন ক্ষেত্রগুলিকে শংসাপত্রের ধরণ ক্ষেত্রগুলিকে সামঞ্জস্য করা উচিত যাতে বৈধকরণের সময় এবং পরবর্তী অ্যাক্সেস কন্ট্রোল চেকের সময় শংসাপত্রের সঠিক চিকিত্সা নিশ্চিত করতে ফেরত আসার আগে সেট করা হয়৷

দ্রষ্টব্য: পিয়ার সম্পূর্ণ শংসাপত্রের পরিবর্তে নিজের জন্য একটি শংসাপত্রের রেফারেন্স সরবরাহ করলে, বৈধতা প্রসঙ্গে EntityCert ক্ষেত্রে একটি NULL থাকবে। যদি একটি বাস্তবায়ন শংসাপত্রের রেফারেন্স সমর্থন করতে চায়, তবে এটিকে অবশ্যই ফিরে আসার আগে সেট করা শংসাপত্রের সাথে সমকক্ষের বিষয় DN এবং কী আইডির সাথে মিলে যাওয়া একটি শংসাপত্র যোগ করতে হবে।

এই পদ্ধতিটি প্রয়োগ করা ঐচ্ছিক। ডিফল্ট বাস্তবায়ন কিছুই করে না।