Depurar errores de registro

Tink a veces produce mensajes de error como los siguientes:

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

En esta página, encontrarás ayuda para depurar esos problemas.

Caso 1: El error aparece con una estrella con el mensaje "No wrapper encontrado" o uno similar.

Estás llamando a GetPrimitive() para obtener un tipo primitivo que no se registró, que generalmente se soluciona llamando a TinkConfig.register() en un lugar anterior del objeto binario. Registrarse una vez que sea suficiente y se puede realizar durante el inicio

Algunas primitivas necesitan un registro más especializado.

  • KeysetDeriver requiere KeyDerivationConfig.register()
  • JwtMac requiere JwtMacConfig.register()
  • JwtPublicKeySign y JwtPublicKeyVerify requieren JwtSignatureConfig.register()

Caso 2: El error enumera un tipo de clave y una primitiva.

Por ejemplo, el error podría ser 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 solicitaste para el conjunto de claves que tienes. Por lo general, esto sucede porque tienes un conjunto de claves para el tipo incorrecto. Por ejemplo, quizás pidas una Mac, pero el conjunto de claves es para Aead.

Un caso común es cuando se intenta 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() en su lugar.

Si esto no ayuda, puedes encontrar una lista actualizada de los tipos de claves aquí, en nuestras pruebas entre lenguajes. Debes comprobar 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.