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
memerlukanKeyDerivationConfig.register()
JwtMac
memerlukanJwtMacConfig.register()
JwtPublicKeySign
danJwtPublicKeyVerify
memerlukanJwtSignatureConfig.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.