Kayıt Hatalarında Ayıklama

Tink bazen

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

Bu sayfa, bu tür sorunların giderilmesine yardımcı olur.

1. Örnek: Hata, "Sarmalayıcı bulunamadı" veya benzeri bir ifadeyle gösteriliyor.

GetPrimitive() yöntemini, kaydedilmemiş bir temel türü almak için çağırıyorsunuz. Bu, genellikle ikili programda daha önce bir yerde TinkConfig.register() çağrısı yapılarak düzeltilir. Kayıt işlemi yeterlidir. Bu işlem başlangıçta yapılabilir.

Bazı temel öğeler için daha özel kayıt gerekir.

  • KeysetDeriver için KeyDerivationConfig.register() gerekli
  • JwtMac için JwtMacConfig.register() gerekli
  • JwtPublicKeySign ve JwtPublicKeyVerify için JwtSignatureConfig.register() gerekli

2. Durum: Hatada bir anahtar türü ve bir temel öğe listelenir.

Örneğin, belirli bir P ve T değeri için hatada Unable to get primitive interface P for key of type T yazabilirsiniz.

Bu durumda Tink, sahip olduğunuz anahtar kümesi için istediğiniz temel öğeyi oluşturamaz. Bunun nedeni genellikle yanlış tür için anahtar kümenizin olmasıdır. Örneğin, bir Mac istiyor olabilirsiniz, ancak tuş takımı Aead içindir.

Yaygın nedenlerden biri, özel anahtarlar içeren bir anahtar kümesinden ortak anahtar temel öğesi almaya çalışmaktır. Sorunun bu olup olmadığını görmek için GetPublicKeysetHandle() yerine GetPrimitive() sonucunu çağırmayı deneyin.

Bu işe yaramazsa anahtar türlerinin güncel bir listesini diller arası testlerimizde burada bulabilirsiniz. P temel türünün T anahtar türüyle birlikte listelenip listelenmediğini kontrol etmeniz gerekir.

Temel öğe, karşılık gelen anahtar türüyle listeleniyorsa dilinizin Tink uygulaması, T anahtar türünü desteklemiyor olabilir. Tink'in anahtar türünüzü dilinizde destekleyip desteklemediğini görmek için anahtar türleri listesini kontrol edin.