Tink génère parfois des messages d'erreur tels que
No wrapper registered for typeNo manager for type T has been registeredUnable to get primitive interface P for key of type T
Cette page vous aide à résoudre ces problèmes.
Cas 1 : L'erreur commence par "No wrapper found" (Aucun wrapper trouvé) ou un message similaire.
Vous appelez GetPrimitive() pour obtenir un type primitif qui ne figure pas dans votre Configuration (ou qui n'a pas été enregistré).
Dans les langages qui acceptent un objet Configuration (comme Java et C++), veillez à transmettre un Configuration compatible avec la primitive. En Java, nous vous recommandons de transmettre TinkConfig2026.get(), qui est compatible avec toutes les primitives Tink (y compris KeysetDeriver, JwtMac, JwtPublicKeySign et JwtPublicKeyVerify), ou une configuration spécifique à une primitive, telle que AeadConfig2026.get(), KeyDerivationConfig2026.get() ou JwtConfig2026.get().
Dans les langages ou les anciennes API qui utilisent l'enregistrement global (ou si vous transmettez RegistryConfiguration.get() en Java), ce problème est généralement résolu en appelant TinkConfig.register() plus tôt dans le binaire.
Il suffit de l'enregistrer une fois, ce qui peut être fait au démarrage. Certaines primitives nécessitent un enregistrement plus spécialisé :
KeysetDerivernécessiteKeyDerivationConfig.register()JwtMacnécessiteJwtMacConfig.register()JwtPublicKeySignetJwtPublicKeyVerifynécessitentJwtSignatureConfig.register()
Cas 2 : l'erreur liste 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 l'ensemble de clés dont vous disposez. En général, cela se produit parce que vous disposez d'un jeu de clés pour un type incorrect. Par exemple, vous pouvez demander un Mac, mais l'ensemble de clés est destiné à Aead.
Un cas courant est celui où l'on tente d'obtenir une primitive de clé publique à partir d'un ensemble de clés contenant des clés privées. Pour vérifier si c'est le cas, envisagez d'appeler GetPrimitive() sur le résultat de GetPublicKeysetHandle().
Si cela ne vous aide pas, vous trouverez une liste à jour des types de clés ici, dans nos tests multilingues. Vous devez vérifier si la primitive P est listée avec le type de clé T.
Si la primitive est listé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 est compatible avec votre type de clé dans votre langage.