Déboguer les erreurs d'enregistrement

Tink génère parfois des messages d'erreur tels que :

  • No wrapper registered for type
  • No manager for type T has been registered
  • Unable to get primitive interface P for key of type T

Cette page vous aide à résoudre ces problèmes.

Cas 1: le message d'erreur indique "Aucun wrapper trouvé" (ou similaire).

Vous appelez GetPrimitive() pour obtenir un type primitif qui n'a pas été enregistré, ce qui est généralement corrigé en appelant TinkConfig.register() plus tôt dans le binaire. S'inscrire une fois suffit et peut être effectué au démarrage.

Certaines primitives nécessitent un enregistrement plus spécialisé.

  • KeysetDeriver requiert KeyDerivationConfig.register()
  • JwtMac requiert JwtMacConfig.register()
  • JwtPublicKeySign et JwtPublicKeyVerify nécessitent JwtSignatureConfig.register()

Cas 2: l'erreur indique un type de clé et une primitive.

Par exemple, l'erreur peut indiquer Unable to get primitive interface P for key of type T pour une valeur spécifique de P et T.

Dans ce cas, Tink ne peut pas créer la primitive spécifique que vous lui avez demandée pour votre collection de clés. En général, cela se produit lorsque vous disposez d'une collection de clés pour le mauvais type. Par exemple, vous demandez un Mac, mais la collection de clés est pour Aead.

Un cas courant est que l'on tente d'obtenir une primitive de clé publique à partir d'une collection de clés contenant des clés privées. Pour voir si c'est le problème à l'origine du problème, envisagez plutôt d'appeler GetPrimitive() sur le résultat de GetPublicKeysetHandle().

Si cela ne résout pas le problème, une liste à jour des types de clés est disponible sur cette page, dans nos tests multilingues. Vous devez vérifier si la primitive P est répertoriée avec le type de clé T.

Si la primitive est répertoriée avec le type de clé correspondant, il est possible que l'implémentation Tink de votre langage ne soit pas compatible avec le type de clé T. Consultez la liste des types de clés pour savoir si Tink accepte ce type de clé dans votre langue.