Às vezes, o Tink produz mensagens de erro como
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 ajuda a depurar esses problemas.
Caso 1: o erro começa com "No wrapper found" ou algo semelhante.
Você está chamando GetPrimitive() para receber um tipo primitivo que não está no seu
Configuration (ou não foi registrado).
Em linguagens que usam um objeto Configuration (como Java e C++), transmita um Configuration compatível com o primitivo. Em Java, recomendamos
transmitir TinkConfig2026.get(), que é compatível com todas as primitivas do Tink
(incluindo KeysetDeriver, JwtMac, JwtPublicKeySign e
JwtPublicKeyVerify), ou uma configuração específica de primitiva, como
AeadConfig2026.get(), KeyDerivationConfig2026.get() ou
JwtConfig2026.get().
Em linguagens ou APIs legadas que usam o registro global (ou se você transmitir
RegistryConfiguration.get() em Java), isso geralmente é corrigido chamando
TinkConfig.register() em algum lugar anterior no binário.
Basta registrar uma vez, o que pode ser feito na inicialização. Algumas primitivas precisam de um registro mais especializado:
KeysetDeriverrequerKeyDerivationConfig.register()JwtMacrequerJwtMacConfig.register()JwtPublicKeySigneJwtPublicKeyVerifyexigemJwtSignatureConfig.register()
Caso 2: o erro lista um tipo de chave e uma primitiva.
Por exemplo, o erro pode dizer Unable to get primitive interface P for key
of type T para algum valor específico de P e T.
Nesse caso, o Tink não consegue criar a primitiva específica que você pediu para o conjunto de chaves que você tem. Normalmente, isso acontece porque você tem um conjunto de chaves para o tipo errado. Por exemplo, você pode estar pedindo um Mac, mas o conjunto de chaves é para Aead.
Um caso comum é quando alguém tenta receber uma primitiva de chave pública de um conjunto de chaves
que contém chaves privadas. Para ver se esse é o problema, chame
GetPrimitive() no resultado de GetPublicKeysetHandle().
Se isso não ajudar, uma lista atualizada dos tipos de chave pode ser encontrada aqui, nos nossos testes entre linguagens. Verifique se a primitiva P está listada com o tipo de chave T.
Se o primitivo estiver listado com o tipo de chave correspondente, talvez a implementação do Tink da sua linguagem não seja compatível com o tipo de chave T. Verifique a lista de tipos de chave para saber se o Tink é compatível com seu tipo de chave no seu idioma.