Đôi khi, Tink đưa ra thông báo lỗi như
No wrapper registered for typeNo manager for type T has been registeredUnable to get primitive interface P for key of type T
Trang này giúp gỡ lỗi các vấn đề như vậy.
Trường hợp 1: Lỗi bắt đầu bằng "Không tìm thấy trình bao bọc" hoặc tương tự.
Bạn đang gọi GetPrimitive() để lấy một loại dữ liệu gốc không có trong
Configuration (hoặc chưa được đăng ký).
Trong các ngôn ngữ lấy đối tượng Configuration (chẳng hạn như Java và C++), hãy đảm bảo bạn truyền một Configuration hỗ trợ dữ liệu gốc. Trong Java, bạn nên truyền TinkConfig2026.get() (hỗ trợ tất cả các dữ liệu gốc của Tink, bao gồm cả KeysetDeriver, JwtMac, JwtPublicKeySign và JwtPublicKeyVerify) hoặc một cấu hình dành riêng cho dữ liệu gốc, chẳng hạn như AeadConfig2026.get(), KeyDerivationConfig2026.get() hoặc JwtConfig2026.get().
Trong các ngôn ngữ hoặc API cũ sử dụng tính năng đăng ký chung (hoặc nếu bạn truyền RegistryConfiguration.get() trong Java), vấn đề này thường được khắc phục bằng cách gọi TinkConfig.register() ở một vị trí nào đó trước đó trong tệp nhị phân.
Bạn chỉ cần đăng ký một lần và có thể thực hiện khi khởi động. Một số dữ liệu gốc cần đăng ký chuyên biệt hơn:
KeysetDerivercần cóKeyDerivationConfig.register()JwtMaccần cóJwtMacConfig.register()JwtPublicKeySignvàJwtPublicKeyVerifyyêu cầuJwtSignatureConfig.register()
Trường hợp 2: Lỗi liệt kê một loại khoá và một dữ liệu gốc.
Ví dụ: lỗi có thể cho biết Unable to get primitive interface P for key
of type T đối với một số giá trị cụ thể của P và T.
Trong trường hợp này, Tink không thể tạo dữ liệu gốc cụ thể mà bạn yêu cầu cho tập hợp khoá bạn có. Thông thường, điều này xảy ra do bạn có một tập hợp khoá cho loại không chính xác. Ví dụ: bạn có thể đang yêu cầu một Mac, nhưng bộ khoá là dành cho Aead.
Một trường hợp phổ biến là người dùng cố gắng lấy một dữ liệu gốc khoá công khai từ một tập hợp khoá chứa khoá riêng tư. Để xem đây có phải là vấn đề hay không, hãy cân nhắc gọi GetPrimitive() trên kết quả của GetPublicKeysetHandle().
Nếu cách này không hiệu quả, bạn có thể tìm thấy danh sách đã cập nhật về các loại khoá tại đây, trong bài kiểm thử đa ngôn ngữ của chúng tôi. Bạn nên kiểm tra xem dữ liệu gốc P có được liệt kê cùng với loại khoá T hay không.
Nếu dữ liệu gốc được liệt kê cùng với loại khoá tương ứng, thì có thể là bản triển khai Tink của ngôn ngữ bạn dùng không hỗ trợ loại khoá T. Hãy kiểm tra danh sách các loại khoá để xem Tink có hỗ trợ loại khoá của bạn bằng ngôn ngữ của bạn hay không.