등록 오류 디버그

Tink는 때때로 다음과 같은 오류 메시지를 생성할 수 있습니다.

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

이 페이지는 이러한 문제를 디버그하는 데 도움이 됩니다.

사례 1: 오류에 '래퍼를 찾을 수 없음' 또는 이와 유사한 메시지가 표시됩니다.

등록되지 않은 프리미티브 유형을 가져오기 위해 GetPrimitive()를 호출합니다. 이는 일반적으로 바이너리의 앞부분에서 TinkConfig.register()를 호출하여 수정됩니다. 등록은 한 번만 하면 되며 시작 시 실행할 수 있습니다.

일부 프리미티브에는 더 전문화된 등록이 필요합니다.

  • KeysetDeriver에는 KeyDerivationConfig.register()이(가) 필요합니다.
  • JwtMac에는 JwtMacConfig.register()이(가) 필요합니다.
  • JwtPublicKeySignJwtPublicKeyVerify에는 JwtSignatureConfig.register()가 필요합니다.

사례 2: 오류에 키 유형과 프리미티브가 나열됩니다.

예를 들어 P와 T의 특정 값에 Unable to get primitive interface P for key of type T가 표시될 수 있습니다.

이 경우 Tink는 키 세트에 대해 요청한 특정 프리미티브를 만들 수 없습니다. 일반적으로 잘못된 유형의 키 세트가 있기 때문에 이런 일이 발생합니다. 예를 들어 Mac을 요청하고 키 세트는 Aead용일 수 있습니다.

한 가지 일반적인 사례는 비공개 키가 포함된 키 세트에서 공개 키 프리미티브를 가져오려고 시도하는 것입니다. 이것이 문제인지 확인하려면 대신 GetPublicKeysetHandle()의 결과에서 GetPrimitive()를 호출해 보세요.

그래도 문제가 해결되지 않으면 여기교차 언어 테스트에서 키 유형의 최신 목록을 확인할 수 있습니다. 프리미티브 P가 키 유형 T와 함께 나열되는지 확인해야 합니다.

프리미티브가 상응하는 키 유형과 함께 나열되어 있다면 언어의 Tink 구현이 키 유형 T를 지원하지 않기 때문일 수 있습니다. 키 유형 목록을 확인하여 Tink가 사용 중인 언어로 키 유형을 지원하는지 확인하세요.