Depurar erros de registro
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
O Tink às vezes produz mensagens de erro como
No wrapper registered for type
No manager for type T has been registered
Unable to get primitive interface P for key of type T
Esta página ajuda a depurar esses problemas.
Caso 1: o erro é estrelado com "Nenhum wrapper encontrado" ou algo semelhante.
Você está chamando GetPrimitive()
para receber um tipo primitivo que não foi
registrado, que geralmente é corrigido chamando TinkConfig.register()
em algum lugar anteriormente no binário. Registrar uma vez é suficiente e pode ser feito na
inicialização.
Alguns primitivos precisam de registro mais especializado.
KeysetDeriver
exige KeyDerivationConfig.register()
JwtMac
exige JwtMacConfig.register()
JwtPublicKeySign
e JwtPublicKeyVerify
exigem
JwtSignatureConfig.register()
Caso 2: o erro lista um tipo de chave e um primitivo.
Por exemplo, o erro pode mostrar 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 o primitivo específico que você solicitou para o conjunto de chaves que você tem. Normalmente, isso acontece porque você tem um conjunto
de chaves para o tipo errado. Por exemplo, talvez você esteja solicitando um Mac, mas o conjunto de chaves
é para o Aead.
Um caso comum é a tentativa de conseguir um primitivo de chave pública em um conjunto que contém chaves privadas. Para ver se esse é o problema, chame
GetPrimitive()
no resultado de GetPublicKeysetHandle()
.
Se isso não ajudar, veja uma lista atualizada dos tipos de chave
neste link (em inglês)
nos nossos testes entre linguagens. Verifique se o P primitivo está listado
junto com o tipo de chave T.
Se o primitivo estiver listado com o tipo de chave correspondente, pode ser que
a implementação do Tink na sua linguagem não ofereça suporte ao tipo de chave T. Verifique a lista de tipos de chave para saber se a Tink é compatível com seu tipo de chave no seu idioma.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-07-25 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-25 UTC."],[[["\u003cp\u003eTink error messages like "No wrapper registered" often indicate missing primitive registration, fixable with \u003ccode\u003eTinkConfig.register()\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eErrors mentioning key type and primitive usually mean an incompatible keyset is used, like requesting a Mac with an Aead keyset.\u003c/p\u003e\n"],["\u003cp\u003ePublic key primitives require keysets obtained via \u003ccode\u003eGetPublicKeysetHandle()\u003c/code\u003e to avoid key type mismatches.\u003c/p\u003e\n"],["\u003cp\u003eVerify key type and primitive compatibility by checking the cross-language test resources and supported key types documentation for your language.\u003c/p\u003e\n"]]],["Tink error messages like \"No wrapper registered\" or \"Unable to get primitive\" indicate issues with key and primitive type registration or compatibility. For \"No wrapper\" errors, register the type using `TinkConfig.register()` or specialized methods like `KeyDerivationConfig.register()`. For primitive-key type mismatches, verify that the keyset's type matches the requested primitive, and use `GetPublicKeysetHandle()` for public keys. Check supported key type lists if registration or type-checking does not fix the issue.\n"],null,["# Debug Registration Errors\n\nTink sometimes produces error messages such as\n\n- `No wrapper registered for type`\n- `No manager for type T has been registered`\n- `Unable to get primitive interface P for key of type T`\n\nThis page helps to debug such issues.\n\nCase 1: The error stars with \"No wrapper found\" or similar.\n-----------------------------------------------------------\n\nYou are calling `GetPrimitive()` to get a primitive type that has not been\nregistered, which is generally fixed by calling `TinkConfig.register()`\nsomewhere earlier in the binary. Registering once suffices and can be done at\nstartup.\n\nSome primitives need more specialized registration.\n\n- `KeysetDeriver` requires `KeyDerivationConfig.register()`\n- `JwtMac` requires `JwtMacConfig.register()`\n- `JwtPublicKeySign` and `JwtPublicKeyVerify` require `JwtSignatureConfig.register()`\n\nCase 2: The error lists a key type and a primitive.\n---------------------------------------------------\n\nFor example, the error might say `Unable to get primitive interface P for key\nof type T` for some specific value of P and T.\n\nIn this case, Tink is unable to create the specific primitive you asked it\nfor the keyset you have. Typically, this happens because you have a keyset\nfor the wrong type. For example, you might be asking for a Mac, but the keyset\nis for Aead.\n\nOne common case is that one tries to get a public key primitive from a keyset\ncontaining private keys. To see if this is the problem, consider calling\n`GetPrimitive()` on the result of `GetPublicKeysetHandle()` instead.\n\nIf this does not help, an up to date list of the key types can be found\n[here](https://github.com/tink-crypto/tink-cross-lang-tests/blob/main/cross_language/cross_language/tink_config/_key_types.py),\nin our [cross language tests](https://github.com/tink-crypto/tink-cross-lang-tests/blob/main/cross_language/cross_language). You should check if the primitive P is listed\ntogether with the key type T.\n\nIf the primitive is listed with the corresponding key type, it may be that\nthe Tink implementation of your language does not support key type T. Check the\n[list of key types](/tink/supported-key-types) to see if Tink supports your key\ntype in your language."]]