Registrierungsfehler beheben

Tink führt manchmal zu Fehlermeldungen wie

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

Diese Seite hilft dir, solche Probleme zu beheben.

Fall 1: Der Fehler wird mit „Kein Wrapper gefunden“ oder ähnlich markiert.

Sie rufen GetPrimitive() auf, um einen primitiven Typ zu erhalten, der nicht registriert wurde. Dies lässt sich in der Regel dadurch beheben, dass Sie an einer früheren Stelle in der Binärdatei TinkConfig.register() aufrufen. Eine einmalige Registrierung ist ausreichend und kann beim Start erfolgen.

Einige Primitive erfordern eine speziellere Registrierung.

  • Für KeysetDeriver ist KeyDerivationConfig.register() erforderlich
  • Für JwtMac ist JwtMacConfig.register() erforderlich
  • Für JwtPublicKeySign und JwtPublicKeyVerify ist JwtSignatureConfig.register() erforderlich

Fall 2: Der Fehler listet einen Schlüsseltyp und eine Primitive auf.

Der Fehler könnte beispielsweise Unable to get primitive interface P for key of type T für einen bestimmten Wert von P und T lauten.

In diesem Fall kann Tink das spezifische Primit, das Sie für Ihr Keyset angefordert haben, nicht erstellen. Dies geschieht in der Regel, wenn Sie ein Schlüsselsatz für den falschen Typ haben. Angenommen, Sie fragen nach einem Mac, aber der Schlüsselsatz ist für Aead.

Ein häufiger Fall besteht darin, dass versucht wird, eine Primitive mit einem öffentlichen Schlüssel aus einem Schlüsselsatz abzurufen, der private Schlüssel enthält. Um zu sehen, ob das das Problem ist, rufen Sie stattdessen GetPrimitive() für das Ergebnis von GetPublicKeysetHandle() auf.

Wenn das nicht hilft, finden Sie hier in unseren sprachübergreifenden Tests eine aktuelle Liste der Schlüsseltypen. Sie sollten prüfen, ob das einfache P zusammen mit dem Schlüsseltyp T aufgeführt ist.

Wenn die Primitive mit dem entsprechenden Schlüsseltyp aufgeführt ist, unterstützt die Tink-Implementierung Ihrer Sprache möglicherweise den Schlüsseltyp T nicht. Sehen Sie in der Liste der Schlüsseltypen nach, ob Tink Ihren Schlüsseltyp in Ihrer Sprache unterstützt.