-
Notifications
You must be signed in to change notification settings - Fork 68
Fix some SecItem methods hook in PlayChain. #139
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Looks good to me, other than the still painful file-based management of keys I think we need to try a binary-based solution instead. Not ideal, but should be less painful |
@Ryu-ga Since the r_Ref fix is in-tree now, please rebase your PR |
Methods follow the Create Rules. Add item not found response in SecItemDelete.
That's good idea. And there is need to find out more similar keychain file name generator to apple's one.
I rebased it. |
They don't use individual files. They use a SQLite 3 database. |
You're correct; I meant that before transitioning to db-based structure for PlayChain we require more distinguishable file names because certain keychain items cannot be fully separated for now. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Patch looks good to me
Well to be clear, there are already collisions now, just that it doesn’t affect us too much. |
PlayCover/PlayCover#1359
First, there is a need for a response from SecItemDelete with
errSecItemNotFound
in some iOS framework, as it works well on iOS.Second, the linked iOS app had a memory issue with ARC and
SecCreateKeyWithData
, I think it is weird that it require Unmanaged.passRetained but it crashed every time with unknownObjectReleasing every time end of SecItem methods in the app, and SecItem-methods do not have responsibility for releasing the referenced object*result
. [https://developer.apple.com/documentation/security/1401659-secitemadd]