A veces, Tink produce mensajes de error como los siguientes:
No wrapper registered for typeNo manager for type T has been registeredUnable to get primitive interface P for key of type T
Esta página ayuda a depurar esos problemas.
Caso 1: El error comienza con "No wrapper found" o un mensaje similar.
Estás llamando a GetPrimitive() para obtener un tipo primitivo que no está en tu
Configuration (o que no se registró).
En los lenguajes que toman un objeto Configuration (como Java y C++), asegúrate de pasar un Configuration que admita la primitiva. En Java, recomendamos pasar TinkConfig2026.get(), que admite todas las primitivas de Tink (incluidas KeysetDeriver, JwtMac, JwtPublicKeySign y JwtPublicKeyVerify), o una configuración específica de la primitiva, como AeadConfig2026.get(), KeyDerivationConfig2026.get() o JwtConfig2026.get().
En los lenguajes o las APIs heredadas que usan el registro global (o si pasas
RegistryConfiguration.get() en Java), esto se suele corregir llamando a
TinkConfig.register() en algún lugar anterior del objeto binario.
Basta con registrarse una vez, lo que se puede hacer durante el inicio. Algunas primitivas necesitan un registro más especializado:
KeysetDeriverrequiereKeyDerivationConfig.register()JwtMacrequiereJwtMacConfig.register()JwtPublicKeySignyJwtPublicKeyVerifyrequierenJwtSignatureConfig.register()
Caso 2: El error indica un tipo de clave y una primitiva.
Por ejemplo, el error podría decir Unable to get primitive interface P for key
of type T para algún valor específico de P y T.
En este caso, Tink no puede crear la primitiva específica que le pediste para el conjunto de claves que tienes. Por lo general, esto sucede porque tienes un conjunto de claves para el tipo incorrecto. Por ejemplo, puedes solicitar una Mac, pero el conjunto de claves es para Aead.
Un caso común es que se intente obtener una primitiva de clave pública de un conjunto de claves
que contiene claves privadas. Para ver si este es el problema, considera llamar a GetPrimitive() en el resultado de GetPublicKeysetHandle().
Si esto no ayuda, puedes encontrar una lista actualizada de los tipos de claves aquí, en nuestras pruebas de varios lenguajes. Debes verificar si la primitiva P aparece junto con el tipo de clave T.
Si la primitiva aparece con el tipo de clave correspondiente, es posible que la implementación de Tink de tu lenguaje no admita el tipo de clave T. Consulta la lista de tipos de claves para ver si Tink admite tu tipo de clave en tu lenguaje.