Debugowanie błędów rejestracji

Tink czasami generuje komunikaty o błędach,

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

Ta strona pomaga debugować takie problemy.

Przypadek 1: błąd jest oznaczony gwiazdką „Nie znaleziono kodu” lub podobną.

Wywołujesz funkcję GetPrimitive(), aby uzyskać typ podstawowy, który nie został zarejestrowany, co zwykle jest naprawiane przez wywołanie metody TinkConfig.register() wcześniej w pliku binarnym. Rejestracja wystarczy raz i można to zrobić już na etapie uruchamiania.

Niektóre obiekty podstawowe wymagają bardziej specjalistycznej rejestracji.

  • KeysetDeriver wymaga KeyDerivationConfig.register()
  • JwtMac wymaga JwtMacConfig.register()
  • Reguły JwtPublicKeySign i JwtPublicKeyVerify wymagają JwtSignatureConfig.register()

Przypadek 2: błąd zawiera listę typu klucza i elementu podstawowego.

Na przykład błąd może wyglądać tak: Unable to get primitive interface P for key of type T w przypadku określonej wartości P i T.

W tym przypadku Tink nie może utworzyć tego konkretnego elementu podstawowego, którego potrzebujesz dla posiadanego zestawu kluczy. Zwykle dzieje się tak, gdy masz zestaw kluczy nieprawidłowego typu. Możesz na przykład pytać o Maca, ale zestaw kluczy jest przeznaczony dla Aead.

Częstym przypadkiem jest próba uzyskania podstawowej wersji klucza publicznego ze zbioru kluczy zawierającego klucze prywatne. Aby sprawdzić, czy na tym polega problem, rozważ wywołanie metody GetPrimitive() z użyciem funkcji GetPublicKeysetHandle().

Jeśli to nie pomoże, aktualną listę typów kluczy znajdziesz tutaj w ramach naszych testów w różnych językach. Sprawdź, czy podstawowy P jest wymieniony razem z typem klucza T.

Jeśli obiekt podstawowy jest wymieniony z odpowiednim typem klucza, być może implementacja Tink w Twoim języku nie obsługuje klucza typu T. Sprawdź listę typów kluczy, aby sprawdzić, czy Tink obsługuje dany typ klucza w Twoim języku.