Tink گاهی پیامهای خطایی مانند اینها تولید میکند
No wrapper registered for typeNo manager for type T has been registeredUnable to get primitive interface P for key of type T
این صفحه به اشکالزدایی چنین مشکلاتی کمک میکند.
مورد ۱: خطا با «No wrapper found» (پوشاننده پیدا نشد) یا عبارت مشابهی شروع میشود.
شما درحال فراخوانی GetPrimitive() هستید تا نوع اولیهای را دریافت کنید که در
Configuration شما نیست (یا ثبت نشده است).
در زبانهایی که شیء Configuration میگیرند (مثل Java و C++)، مطمئن شوید
Configuration را که از نوع اولیه پشتیبانی میکند ارسال کنید. در Java،
توصیه میکنیم TinkConfig2026.get() را ارسال کنید که از همه اولیههای Tink
(ازجمله KeysetDeriver، JwtMac، JwtPublicKeySign، و
JwtPublicKeyVerify) یا پیکربندی خاص اولیه مانند
AeadConfig2026.get()، KeyDerivationConfig2026.get()، یا
JwtConfig2026.get() پشتیبانی میکند.
در زبانها یا APIهای قدیمی که از ثبت سراسری استفاده میکنند (یا اگر
RegistryConfiguration.get() را در Java ارسال کنید) این مشکل معمولاً با فراخوانی
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 را نشان دهد.
در این مورد، Tink نمیتواند نوع اولیه خاصی را که برای مجموعه کلیدتان درخواست کردهاید ایجاد کند. معمولاً این اتفاق بهدلیل داشتن مجموعه کلید برای نوع اشتباه رخ میدهد. برای مثال، ممکن است Mac درخواست کنید، اما مجموعه کلید برای Aead باشد.
یک مورد رایج این است که فردی تلاش میکند یک کلید عمومی اولیه را از یک مجموعه کلید
حاوی کلیدهای خصوصی دریافت کند. برای اینکه ببینید مشکل این است یا نه،
بهجای آن GetPrimitive() را در نتیجه GetPublicKeysetHandle() فراخوانی کنید.
اگر این کار کمکی نکرد، فهرست بهروزی از انواع کلیدها را میتوانید اینجا، در آزمایشهای بینزبانی ما پیدا کنید. باید بررسی کنید که آیا P اولیه همراه با نوع کلید T فهرست شده است یا نه.
اگر نوع اولیه با نوع کلید مربوطه فهرست شده باشد، ممکن است پیادهسازی Tink زبان شما از نوع کلید T پشتیبانی نکند. فهرست انواع کلید را بررسی کنید تا ببینید آیا Tink از نوع کلید شما در زبانتان پشتیبانی میکند یا نه.