Tink erzeugt manchmal Fehlermeldungen wie
No wrapper registered for typeNo manager for type T has been registeredUnable to get primitive interface P for key of type T
Diese Seite hilft Ihnen bei der Fehlerbehebung.
Fall 1: Der Fehler beginnt mit „Kein Wrapper gefunden“ oder ähnlich.
Sie rufen GetPrimitive() auf, um einen primitiven Typ abzurufen, der nicht in Ihrem Configuration enthalten ist (oder nicht registriert wurde).
In Sprachen, die ein Configuration-Objekt verwenden (z. B. Java und C++), müssen Sie ein Configuration übergeben, das den Primitiv unterstützt. In Java empfehlen wir, TinkConfig2026.get() zu übergeben, das alle Tink-Primitive unterstützt (einschließlich KeysetDeriver, JwtMac, JwtPublicKeySign und JwtPublicKeyVerify), oder eine primitive-spezifische Konfiguration wie AeadConfig2026.get(), KeyDerivationConfig2026.get() oder JwtConfig2026.get().
In Sprachen oder Legacy-APIs, die die globale Registrierung verwenden (oder wenn Sie RegistryConfiguration.get() in Java übergeben), wird dies im Allgemeinen durch den Aufruf von TinkConfig.register() an einer früheren Stelle in der Binärdatei behoben.
Eine einmalige Registrierung reicht aus und kann beim Start erfolgen. Einige Primitive erfordern eine speziellere Registrierung:
KeysetDerivererfordertKeyDerivationConfig.register()JwtMacerfordertJwtMacConfig.register()JwtPublicKeySignundJwtPublicKeyVerifyerfordernJwtSignatureConfig.register()
Fall 2: Der Fehler listet einen Schlüsseltyp und einen Primitiv auf.
In der Fehlermeldung könnte beispielsweise Unable to get primitive interface P for key
of type T für einen bestimmten Wert von P und T stehen.
In diesem Fall kann Tink das von Ihnen angeforderte Primitive für das vorhandene Keyset nicht erstellen. In der Regel liegt das daran, dass Sie ein Keyset für den falschen Typ haben. Sie könnten beispielsweise einen Mac anfordern, aber der Schlüsselsatz ist für Aead.
Ein häufiger Fall ist, dass versucht wird, ein öffentliches Schlüssel-Primitiv aus einem Schlüsselsatz mit privaten Schlüsseln abzurufen. Um herauszufinden, ob dies 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. Prüfen Sie, ob der Primitive P zusammen mit dem Schlüsseltyp T aufgeführt ist.
Wenn der Primitive mit dem entsprechenden Schlüsseltyp aufgeführt ist, unterstützt die Tink-Implementierung Ihrer Sprache möglicherweise den Schlüsseltyp T nicht. In der Liste der Schlüsseltypen können Sie nachsehen, ob Tink Ihren Schlüsseltyp in Ihrer Sprache unterstützt.