اشکال‌زدایی خطاهای ثبت‌نام

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

این صفحه به اشکال‌زدایی چنین مشکلاتی کمک می‌کند.

مورد ۱: خطا با «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 از نوع کلید شما در زبانتان پشتیبانی می‌کند یا نه.