Debug degli errori di registrazione

Tink a volte genera messaggi di errore come

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

Questa pagina consente di eseguire il debug di questi problemi.

Caso 1: l'errore contrassegnato come "Nessun wrapper trovato" o simile.

Stai chiamando GetPrimitive() per ottenere un tipo primitivo che non è stato registrato, che in genere è risolto chiamando TinkConfig.register() in un punto precedente del file binario. La registrazione è sufficiente e può essere eseguita all'avvio.

Alcune primitive richiedono una registrazione più specializzata.

  • KeysetDeriver richiede KeyDerivationConfig.register()
  • JwtMac richiede JwtMacConfig.register()
  • JwtPublicKeySign e JwtPublicKeyVerify richiedono JwtSignatureConfig.register()

Caso 2: l'errore elenca un tipo di chiave e una primitiva.

Ad esempio, l'errore potrebbe indicare Unable to get primitive interface P for key of type T per un valore specifico di P e T.

In questo caso, Tink non è in grado di creare la primitiva specifica richiesta per il tuo set di chiavi. In genere, questo accade perché hai un set di chiavi per il tipo sbagliato. Ad esempio, è possibile che ti serva un Mac, ma il set di tasti è per Aead.

Un caso comune è il tentativo di ottenere una primitiva di chiave pubblica da un set di chiavi contenente chiavi private. Per verificare se il problema è questo, valuta la possibilità di chiamare GetPrimitive() dal risultato di GetPublicKeysetHandle().

Se il problema persiste, puoi trovare un elenco aggiornato dei tipi di chiavi qui, nei nostri test multilingue. Devi controllare se la P primitiva è elencata insieme al tipo di chiave T.

Se la primitiva è elencata con il tipo di chiave corrispondente, è possibile che l'implementazione di Tink nel tuo linguaggio non supporti il tipo di chiave T. Controlla l'elenco dei tipi di chiave per vedere se Tink supporta il tipo di chiave nella tua lingua.