DAT ​

DAT হলো ডট (.) দিয়ে আলাদা করা ASCII string। প্রতিটি ফিল্ড নির্দিষ্ট ক্রমে ঠিক একবার থাকে, এবং স্বাক্ষর নিশ্চিত করে যে আগের ফিল্ডগুলো পাঠানো অবস্থাতেই আছে।

expire
uint64 (decimal)
.
cid
uint64 (hex)
.
plain
Base64Url
.
secure
Base64Url
.
signature
Base64Url
ফিল্ডের ক্রম ও বিভাজক স্পেসিফিকেশনের অংশ।
text
expire.cid.plain.secure.signature

ফিল্ড ​

ফিল্ডউপস্থাপনঅর্থ
expireদশমিক unsigned integerDAT মেয়াদ শেষ হওয়ার Unix সময়
cidlowercase hexadecimal unsigned integerযাচাইয়ে ব্যবহৃত সার্টিফিকেট ID
plainpadding-বিহীন Base64Urlএনক্রিপ্ট না করা bytes
securepadding-বিহীন Base64Urlসার্টিফিকেটের encryption algorithm দিয়ে সুরক্ষিত bytes
signaturepadding-বিহীন Base64Urlexpire.cid.plain.secure-এর মূল ASCII bytes-এর স্বাক্ষর

plain স্বাক্ষরের আওতায় থাকায় বদলানো যায় না, তবে যে কেউ decode করতে পারে। গোপন তথ্য, ব্যক্তিগত ডেটা এবং authorization সিদ্ধান্তে সরাসরি ব্যবহৃত মান secure-এ রাখুন। খালি secure ফিল্ড বৈধ।

Canonical উপস্থাপন ​

  • পুরো DAT ASCII হতে হবে।
  • সংখ্যা sign, space, prefix বা অপ্রয়োজনীয় শুরুর zero ছাড়া লেখা হয়। শুধু zero মান 0 লেখা হয়।
  • Base64Url URL-safe alphabet ব্যবহার করে এবং = padding বা whitespace অনুমোদন করে না।
  • একই bytes একাধিকভাবে উপস্থাপনকারী non-canonical Base64Url strings প্রত্যাখ্যান করা হয়।
  • ভিন্ন ফিল্ড সংখ্যা বা ক্রমের string DAT নয়।

এই নিয়মগুলো ভিন্ন implementation-কে ভিন্ন string একই DAT হিসেবে গ্রহণ করা থেকে রক্ষা করে।

ইস্যু ​

  1. বর্তমানে ইস্যুযোগ্য সার্টিফিকেট নির্বাচন করুন।
  2. বর্তমান সময়ের সঙ্গে সার্টিফিকেটের TTL যোগ করে expire তৈরি করুন।
  3. plain Base64Url দিয়ে encode করুন।
  4. সার্টিফিকেটের encryption algorithm দিয়ে secure encrypt করুন।
  5. আগের ফিল্ডগুলো ডট দিয়ে জুড়ে তাদের ASCII bytes স্বাক্ষর করুন।

শুধু সার্টিফিকেটের issuance window-তে ইস্যু অনুমোদিত: start <= now <= start + duration।

যাচাই ​

  1. canonical নিয়ম অনুযায়ী DAT parse করুন।
  2. নিশ্চিত করুন expire > now। expire == now হলে DAT মেয়াদোত্তীর্ণ।
  3. cid-এর সঙ্গে মেলা সার্টিফিকেট খুঁজে যাচাইয়ের জন্য এখনও বৈধ নিশ্চিত করুন।
  4. মূল expire.cid.plain.secure bytes-এর স্বাক্ষর যাচাই করুন।
  5. secure authenticate ও decrypt করে plain-সহ ফেরত দিন।

স্বাক্ষর যাচাই না করা parsing API শুধু পর্যবেক্ষণ বা diagnostics-এর জন্য। এর output কখনও authentication বা authorization-এ ব্যবহার করবেন না।

স্পেসিফিকেশনের বাইরের দায়িত্ব ​

DAT user store, login method, authorization model, token transport header বা revocation list নির্ধারণ করে না। কোন অনুরোধ যাচাই করা payload ব্যবহার করবে তা অ্যাপ্লিকেশন ঠিক করে।