등록 오류 디버그
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
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()
이(가) 필요합니다.
JwtPublicKeySign
및 JwtPublicKeyVerify
에는 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가 사용 중인 언어로 키 유형을 지원하는지 확인하세요.
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2025-07-25(UTC)
[null,null,["최종 업데이트: 2025-07-25(UTC)"],[[["\u003cp\u003eTink error messages like "No wrapper registered" often indicate missing primitive registration, fixable with \u003ccode\u003eTinkConfig.register()\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eErrors mentioning key type and primitive usually mean an incompatible keyset is used, like requesting a Mac with an Aead keyset.\u003c/p\u003e\n"],["\u003cp\u003ePublic key primitives require keysets obtained via \u003ccode\u003eGetPublicKeysetHandle()\u003c/code\u003e to avoid key type mismatches.\u003c/p\u003e\n"],["\u003cp\u003eVerify key type and primitive compatibility by checking the cross-language test resources and supported key types documentation for your language.\u003c/p\u003e\n"]]],["Tink error messages like \"No wrapper registered\" or \"Unable to get primitive\" indicate issues with key and primitive type registration or compatibility. For \"No wrapper\" errors, register the type using `TinkConfig.register()` or specialized methods like `KeyDerivationConfig.register()`. For primitive-key type mismatches, verify that the keyset's type matches the requested primitive, and use `GetPublicKeysetHandle()` for public keys. Check supported key type lists if registration or type-checking does not fix the issue.\n"],null,["# Debug Registration Errors\n\nTink sometimes produces error messages such as\n\n- `No wrapper registered for type`\n- `No manager for type T has been registered`\n- `Unable to get primitive interface P for key of type T`\n\nThis page helps to debug such issues.\n\nCase 1: The error stars with \"No wrapper found\" or similar.\n-----------------------------------------------------------\n\nYou are calling `GetPrimitive()` to get a primitive type that has not been\nregistered, which is generally fixed by calling `TinkConfig.register()`\nsomewhere earlier in the binary. Registering once suffices and can be done at\nstartup.\n\nSome primitives need more specialized registration.\n\n- `KeysetDeriver` requires `KeyDerivationConfig.register()`\n- `JwtMac` requires `JwtMacConfig.register()`\n- `JwtPublicKeySign` and `JwtPublicKeyVerify` require `JwtSignatureConfig.register()`\n\nCase 2: The error lists a key type and a primitive.\n---------------------------------------------------\n\nFor example, the error might say `Unable to get primitive interface P for key\nof type T` for some specific value of P and T.\n\nIn this case, Tink is unable to create the specific primitive you asked it\nfor the keyset you have. Typically, this happens because you have a keyset\nfor the wrong type. For example, you might be asking for a Mac, but the keyset\nis for Aead.\n\nOne common case is that one tries to get a public key primitive from a keyset\ncontaining private keys. To see if this is the problem, consider calling\n`GetPrimitive()` on the result of `GetPublicKeysetHandle()` instead.\n\nIf this does not help, an up to date list of the key types can be found\n[here](https://github.com/tink-crypto/tink-cross-lang-tests/blob/main/cross_language/cross_language/tink_config/_key_types.py),\nin our [cross language tests](https://github.com/tink-crypto/tink-cross-lang-tests/blob/main/cross_language/cross_language). You should check if the primitive P is listed\ntogether with the key type T.\n\nIf the primitive is listed with the corresponding key type, it may be that\nthe Tink implementation of your language does not support key type T. Check the\n[list of key types](/tink/supported-key-types) to see if Tink supports your key\ntype in your language."]]