خطاهای ثبت اشکال زدایی
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
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
این صفحه به رفع اشکال چنین مشکلاتی کمک می کند.
مورد 1: خطا با "No Wrapper found" یا مشابه ستاره می شود.
شما در حال فراخوانی GetPrimitive()
هستید تا یک نوع اولیه که ثبت نشده است را دریافت کنید، که معمولاً با فراخوانی TinkConfig.register()
در جایی قبل از باینری رفع می شود. ثبت نام یک بار کافی است و در هنگام راه اندازی قابل انجام است.
برخی از بدوی ها نیاز به ثبت تخصصی بیشتری دارند.
-
KeysetDeriver
به KeyDerivationConfig.register()
نیاز دارد -
JwtMac
به JwtMacConfig.register()
نیاز دارد -
JwtPublicKeySign
و JwtPublicKeyVerify
به JwtSignatureConfig.register()
نیاز دارند
مورد 2: خطا یک نوع کلید و یک کلید اولیه را فهرست می کند.
برای مثال، خطا ممکن است بگوید Unable to get primitive interface P for key of type T
در این حالت، تینک نمیتواند همان اولیهای را که از آن برای مجموعه کلیدی که دارید، بسازد. به طور معمول، این اتفاق می افتد زیرا شما یک مجموعه کلید برای نوع اشتباه دارید. به عنوان مثال، ممکن است شما یک مک بخواهید، اما مجموعه کلید برای Aead است.
یکی از موارد رایج این است که فرد سعی می کند یک کلید عمومی اولیه را از مجموعه کلید حاوی کلیدهای خصوصی دریافت کند. برای اینکه ببینید آیا مشکل این است یا خیر، به جای آن، در نظر بگیرید که GetPrimitive()
در نتیجه GetPublicKeysetHandle()
فراخوانی کنید.
اگر این کمکی نکرد، میتوانید فهرستی بهروز از انواع کلیدها را در اینجا ، در آزمونهای متقابل زبان ما پیدا کنید. باید بررسی کنید که P اولیه همراه با کلید نوع T فهرست شده است یا خیر.
اگر ابتدایی با نوع کلید مربوطه فهرست شده باشد، ممکن است اجرای Tink زبان شما از نوع کلید T پشتیبانی کند . فهرست انواع کلید را بررسی کنید تا ببینید آیا Tink از نوع کلید شما در زبان شما پشتیبانی می کند یا خیر.
جز در مواردی که غیر از این ذکر شده باشد،محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2025-07-25 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-07-25 بهوقت ساعت هماهنگ جهانی."],[[["\u003cp\u003eTink error messages like "No wrapper registered" often indicate missing primitive registration, fixable with \u003ccode\u003eTinkConfig.register()\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eErrors mentioning key type and primitive usually mean an incompatible keyset is used, like requesting a Mac with an Aead keyset.\u003c/p\u003e\n"],["\u003cp\u003ePublic key primitives require keysets obtained via \u003ccode\u003eGetPublicKeysetHandle()\u003c/code\u003e to avoid key type mismatches.\u003c/p\u003e\n"],["\u003cp\u003eVerify key type and primitive compatibility by checking the cross-language test resources and supported key types documentation for your language.\u003c/p\u003e\n"]]],["Tink error messages like \"No wrapper registered\" or \"Unable to get primitive\" indicate issues with key and primitive type registration or compatibility. For \"No wrapper\" errors, register the type using `TinkConfig.register()` or specialized methods like `KeyDerivationConfig.register()`. For primitive-key type mismatches, verify that the keyset's type matches the requested primitive, and use `GetPublicKeysetHandle()` for public keys. Check supported key type lists if registration or type-checking does not fix the issue.\n"],null,["# Debug Registration Errors\n\nTink sometimes produces error messages such as\n\n- `No wrapper registered for type`\n- `No manager for type T has been registered`\n- `Unable to get primitive interface P for key of type T`\n\nThis page helps to debug such issues.\n\nCase 1: The error stars with \"No wrapper found\" or similar.\n-----------------------------------------------------------\n\nYou are calling `GetPrimitive()` to get a primitive type that has not been\nregistered, which is generally fixed by calling `TinkConfig.register()`\nsomewhere earlier in the binary. Registering once suffices and can be done at\nstartup.\n\nSome primitives need more specialized registration.\n\n- `KeysetDeriver` requires `KeyDerivationConfig.register()`\n- `JwtMac` requires `JwtMacConfig.register()`\n- `JwtPublicKeySign` and `JwtPublicKeyVerify` require `JwtSignatureConfig.register()`\n\nCase 2: The error lists a key type and a primitive.\n---------------------------------------------------\n\nFor example, the error might say `Unable to get primitive interface P for key\nof type T` for some specific value of P and T.\n\nIn this case, Tink is unable to create the specific primitive you asked it\nfor the keyset you have. Typically, this happens because you have a keyset\nfor the wrong type. For example, you might be asking for a Mac, but the keyset\nis for Aead.\n\nOne common case is that one tries to get a public key primitive from a keyset\ncontaining private keys. To see if this is the problem, consider calling\n`GetPrimitive()` on the result of `GetPublicKeysetHandle()` instead.\n\nIf this does not help, an up to date list of the key types can be found\n[here](https://github.com/tink-crypto/tink-cross-lang-tests/blob/main/cross_language/cross_language/tink_config/_key_types.py),\nin our [cross language tests](https://github.com/tink-crypto/tink-cross-lang-tests/blob/main/cross_language/cross_language). You should check if the primitive P is listed\ntogether with the key type T.\n\nIf the primitive is listed with the corresponding key type, it may be that\nthe Tink implementation of your language does not support key type T. Check the\n[list of key types](/tink/supported-key-types) to see if Tink supports your key\ntype in your language."]]