登録エラーのデバッグ
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
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: 「ラッパーが見つかりません」などのエラー メッセージが表示されます。
GetPrimitive()
を呼び出して、登録されていないプリミティブ型を取得しています。これは通常、バイナリのどこかで TinkConfig.register()
を呼び出すことで修正されます。一度登録するだけで十分で、起動時に行うことができます。
一部のプリミティブは、より特殊な登録を必要とします。
KeysetDeriver
には KeyDerivationConfig.register()
が必要です
JwtMac
には JwtMacConfig.register()
が必要です
JwtPublicKeySign
と JwtPublicKeyVerify
には JwtSignatureConfig.register()
が必要です。
ケース 2: キーの型とプリミティブが表示されたエラー
たとえば、P と T の特定の値に対して Unable to get primitive interface P for key
of type T
というエラーが返されることがあります。
この場合、Tink は、指定された鍵セットに対して要求された特定のプリミティブを作成できません。これは通常、間違ったタイプの鍵セットがある場合に発生します。たとえば、Mac をリクエストしても、キーセットが Aead の場合などです。
一般的なケースの 1 つは、秘密鍵を含む鍵セットから公開鍵プリミティブを取得しようとする場合です。これが問題かどうかを確認するには、GetPublicKeysetHandle()
の結果に対して GetPrimitive()
を呼び出すことを検討してください。
それでも問題が解決しない場合は、こちらの複数言語テストでキータイプの最新リストをご確認ください。プリミティブ P が鍵タイプ T とともに一覧表示されることを確認する必要があります。
対応するキータイプとともにプリミティブが表示されている場合、お使いの言語の Tink 実装がキータイプ T をサポートしていない可能性があります。Tink がご使用の言語の鍵タイプをサポートしているかどうかを確認するには、キータイプのリストをご覧ください。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-07-25 UTC。
[null,null,["最終更新日 2025-07-25 UTC。"],[[["\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."]]