Replace KeychainAccess with Valet for Data Protection Keychain usage#52
Replace KeychainAccess with Valet for Data Protection Keychain usage#52mgcm wants to merge 4 commits intoviktorstrate:mainfrom
Conversation
Signed-off-by: Milton Moura <miltonmoura@gmail.com>
|
Genuinely, thank you for working on this. Honest question: is it worth using a library like Valet here? The reason I ask is: the native Also admittedly, I have an aversion to unnecessary dependencies, so there's some bias on my side. Additionally, using I write this with no illusion of authority here. Just want to have these conversations. (Sincerely hope that's okay; happy to move the conversation elsewhere, too.) |
|
@scoates fully agree on everything you said - I had this PR as a draft and used Valet just to confirm that using the Data Protection variant of the SecItem API got rid of those nasty keychain password dialogs. As discussed in the corresponding ticket (#49) with @viktorstrate , going this route (with or without Valet) has implications on distribution and we're still figuring out the best way to move forward on that. @viktorstrate not sure why you removed this from draft but I would refrain from merging this for now. |
|
As I understand it the entitlement is only required if we need keychain sharing (which we don't). The new API should be useable without this entitlement or any special developer certificate. From the Apple docs:
I agree that we should not depend on an external library for this. |
|
Great! Thank you both. I'm sorry I missed the discussion. Glad we're on the same page. |
Signed-off-by: Milton Moura <miltonmoura@gmail.com>
Signed-off-by: Milton Moura <miltonmoura@gmail.com>
Signed-off-by: Milton Moura <miltonmoura@gmail.com>
|
I've updated this MR with a minimal Keychain Wrapper that removes the third party dependencies. To enable the Data Protection keychain mode, the kSecUseDataProtectionKeychain attribute must be set to This PR keeps it false but if you toggle it, running the app without the As soon as the entitlement is added and the signing configured, it works. |
WIP for #49