登録エラーのデバッグ

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() が必要です
  • JwtPublicKeySignJwtPublicKeyVerify には 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 がご使用の言語の鍵タイプをサポートしているかどうかを確認するには、キータイプのリストをご覧ください。