CrunchyBagel / TracePrivately

A privacy-focused app using Apple's soon-to-be-released contact tracing framework.
MIT License
351 stars 27 forks source link

Feat/apple framework #54

Closed HendX closed 4 years ago

HendX commented 4 years ago

This contains the changes to app and the mock framework to use the ExposureNotification framework.

Note that you need the following entitlement to actually use the real framework, which must be manually given to you by Apple.

com.apple.developer.exposure-notification entitlement
HendX commented 4 years ago

@tatey With the newly-updated framework spec released by Apple today, there's now a risk level value that needs to be stored on the server. I've called this value l. The KeyServer.yaml file is updated accordingly.

tatey commented 4 years ago

Should the array of objects in deleted_keys also have the l property? Otherwise I feel like you could reduce this done just to the d property. Either way, it would be inconsistent with keys and I can imagine that would make decoding harder since you'd either need to make them optional properties or you'd make a different struct.

tatey commented 4 years ago

FYI this has been done in https://github.com/tatey/trace_privately/commit/f7b84448a588c6c8adbb8360fa4e48f78230811f.

sgtcoolguy commented 4 years ago

@HendX Dumb question, but how did you figure out about the entitlement? My attempts to activate an ENManager seem to give me this error:

getting ENManager: Error Domain=NSOSStatusErrorDomain Code=-71148 "kInvalidatedErr (XPC connection invalidated)" UserInfo={NSLocalizedDescription=kInvalidatedErr (XPC connection invalidated), cuErrorDesc=kInvalidatedErr (XPC connection invalidated), cuErrorMsg=XPC connection invalidated}
mladjan commented 4 years ago

This contains the changes to app and the mock framework to use the ExposureNotification framework.

Note that you need the following entitlement to actually use the real framework, which must be manually given to you by Apple.

com.apple.developer.exposure-notification entitlement

What is a process to get this entitlement key from Apple?

HendX commented 4 years ago

@HendX Dumb question, but how did you figure out about the entitlement? My attempts to activate an ENManager seem to give me this error:

What is a process to get this entitlement key from Apple?

Please refer to #57 for discussion on this.

HendX commented 4 years ago

@tatey Technically it could probably just be d, but I'm using r to differentiate between duplicated keys (this is helping me with testing). The l value is not needed.

The deleted_keys array is likely to be extremely small, since it's not for expired keys - just keys that were incorrectly approved - so I'm not worried about it blowing out in size.