রেজিস্ট্রেশন সংক্রান্ত সমস্যার সমাধান করা

Tink কখনও কখনও এই ধরনের সমস্যার মেসেজ দেখায়

  • No wrapper registered for type
  • No manager for type T has been registered
  • Unable to get primitive interface P for key of type T

এই পৃষ্ঠাটি এই ধরনের সমস্যার সমাধান করতে সাহায্য করে।

কেস ১: সমস্যার মেসেজ "কোনও র‍্যাপার খুঁজে পাওয়া যায়নি" বা এই ধরনের কোনও মেসেজ দিয়ে শুরু হয়।

আপনি GetPrimitive()-কে কল করছেন এমন একটি প্রিমিটিভ টাইপ পাওয়ার জন্য যা আপনার Configuration-এ নেই (অথবা রেজিস্টার করা হয়নি)।

যেসব ভাষায় Configuration অবজেক্ট (যেমন Java ও C++) ব্যবহার করা হয়, সেখানে নিশ্চিত করুন যে আপনি এমন Configuration পাস করছেন যা প্রিমিটিভকে সাপোর্ট করে। Java-তে, আমরা TinkConfig2026.get() পাস করার সাজেশন দিই, যা সব Tink প্রিমিটিভ (KeysetDeriver, JwtMac, JwtPublicKeySign এবং JwtPublicKeyVerify সহ) অথবা প্রিমিটিভ-নির্দিষ্ট কনফিগারেশন যেমন AeadConfig2026.get(), KeyDerivationConfig2026.get() অথবা JwtConfig2026.get() সাপোর্ট করে।

গ্লোবাল রেজিস্ট্রেশন ব্যবহার করে এমন ভাষা বা লিগ্যাসি API-তে (অথবা আপনি যদি জাভাতে RegistryConfiguration.get() পাস করেন) সাধারণত বাইনারির আগে কোথাও TinkConfig.register() কল করে এটি ঠিক করা হয়। একবার রেজিস্টার করলেই হবে এবং স্টার্ট-আপের সময় এটি করা যেতে পারে। কিছু প্রিমিটিভের জন্য আরও বিশেষায়িত রেজিস্ট্রেশন প্রয়োজন:

  • KeysetDeriver-এর জন্য KeyDerivationConfig.register() প্রয়োজন
  • JwtMac-এর জন্য JwtMacConfig.register() প্রয়োজন
  • JwtPublicKeySign এবং JwtPublicKeyVerify-এর জন্য JwtSignatureConfig.register() প্রয়োজন

কেস ২: সমস্যার মেসেজে কী-এর ধরন ও প্রিমিটিভের তালিকা দেখানো হয়।

যেমন, P এবং T-এর নির্দিষ্ট কিছু মানের জন্য হয়ত Unable to get primitive interface P for key of type T সমস্যাটি দেখাচ্ছে।

In this case, Tink is unable to create the specific primitive you asked it for the keyset you have. সাধারণত, ভুল ধরনের জন্য আপনার কাছে কীসেট থাকার কারণে এটি হয়। যেমন, আপনি হয়ত Mac-এর জন্য জিজ্ঞাসা করছেন, কিন্তু কীসেটটি Aead-এর জন্য।

একটি সাধারণ ঘটনা হল, কেউ ব্যক্তিগত কী আছে এমন কীসেট থেকে পাবলিক কী প্রিমিটিভ পাওয়ার চেষ্টা করে। এটিই সমস্যা কিনা তা দেখতে, পরিবর্তে GetPublicKeysetHandle()-এর ফলাফলে GetPrimitive() কল করার কথা বিবেচনা করুন।

এতে কাজ না হলে, কী-এর ধরনের আপ-টু-ডেট তালিকা এখানে, আমাদের ক্রস ল্যাঙ্গুয়েজ টেস্ট-এ পাওয়া যাবে। প্রিমিটিভ P, কী-এর ধরন T-এর সাথে তালিকাভুক্ত আছে কিনা তা আপনার চেক করা উচিত।

প্রিমিটিভ যদি সংশ্লিষ্ট কী টাইপের সাথে তালিকাভুক্ত থাকে, তাহলে হতে পারে যে আপনার ভাষার Tink ইমপ্লিমেন্টেশন কী টাইপ T-তে কাজ করে না। আপনার ভাষায় Tink আপনার কী টাইপ সাপোর্ট করে কিনা তা দেখতে কী টাইপের তালিকা চেক করুন।