Men-debug Error Pendaftaran

Tink terkadang menghasilkan pesan error seperti

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

Halaman ini akan membantu men-debug masalah tersebut.

Kasus 1: Bintang error dengan pesan "Tidak ada wrapper ditemukan" atau yang serupa.

Anda memanggil GetPrimitive() untuk mendapatkan jenis primitif yang belum terdaftar, yang umumnya diperbaiki dengan memanggil TinkConfig.register() di suatu tempat yang lebih awal dalam biner. Mendaftar sudah cukup dan dapat dilakukan saat startup.

Beberapa primitif memerlukan pendaftaran yang lebih khusus.

  • KeysetDeriver memerlukan KeyDerivationConfig.register()
  • JwtMac memerlukan JwtMacConfig.register()
  • JwtPublicKeySign dan JwtPublicKeyVerify memerlukan JwtSignatureConfig.register()

Kasus 2: Error mencantumkan jenis kunci dan primitif.

Misalnya, error mungkin bertuliskan Unable to get primitive interface P for key of type T untuk beberapa nilai P dan T tertentu.

Dalam hal ini, Tink tidak dapat membuat primitif tertentu yang Anda minta untuk keyset yang Anda miliki. Biasanya, ini terjadi karena Anda memiliki keyset untuk jenis yang salah. Misalnya, Anda mungkin meminta Mac, tetapi {i>keyset<i}-nya adalah untuk Aead.

Salah satu kasus yang umum adalah seseorang mencoba mendapatkan primitif kunci publik dari keyset yang berisi kunci pribadi. Untuk melihat apakah ini masalahnya, pertimbangkan untuk memanggil GetPrimitive() pada hasil GetPublicKeysetHandle().

Jika cara ini tidak membantu, daftar terbaru jenis kunci dapat ditemukan di sini, dalam pengujian lintas bahasa kami. Anda harus memeriksa apakah P primitif dicantumkan bersama dengan jenis kunci T.

Jika primitif dicantumkan dengan jenis kunci yang sesuai, mungkin implementasi Tink bahasa Anda tidak mendukung jenis kunci T. Periksa daftar jenis kunci untuk melihat apakah Tink mendukung jenis kunci dalam bahasa Anda atau tidak.