Gỡ lỗi khi đăng ký

Tink đôi khi tạo ra các thông báo lỗi như

  • No wrapper registered for type
  • No manager for type T has been registered
  • Unable 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 gắn dấu sao với "Không tìm thấy trình bao bọc" hoặc tương tự.

Bạn đang gọi GetPrimitive() để lấy kiểu gốc chưa được đăng ký. Kiểu này thường được khắc phục bằng cách gọi TinkConfig.register() ở đâu đó trước đó trong tệp nhị phân. Bạn chỉ cần đăng ký một lần là đủ 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.

  • KeysetDeriver cần có KeyDerivationConfig.register()
  • JwtMac cần có JwtMacConfig.register()
  • JwtPublicKeySignJwtPublicKeyVerify yêu cầu JwtSignatureConfig.register()

Trường hợp 2: Lỗi liệt kê một loại khoá và dữ liệu nguyên gốc.

Ví dụ: lỗi có thể hiển thị Unable to get primitive interface P for key of type T cho 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á mà bạn có. Thông thường, trường hợp này xảy ra do bạn có một tập hợp khoá không đúng loại. Ví dụ: có thể bạn yêu cầu dùng máy 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 nguyên gốc khoá công khai từ tập hợp khoá chứa khoá riêng tư. Để xem đây có phải là vấn đề 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ể xem danh sách mới nhất về các loại khoá tại đây, trong phần kiểm thử trên nhiều ngôn ngữ của chúng tôi. Bạn nên kiểm tra xem P gốc 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ê với loại khoá tương ứng, thì có thể cách triển khai Tink của ngôn ngữ không hỗ trợ loại khoá T. Kiểm tra danh sách các loại khoá để xem Tink có hỗ trợ loại khoá bằng ngôn ngữ của bạn hay không.