Task #3380: add signed repo support to FDroid
Include repo fingerprint for network service discovery.
|Target version:||swap repos with Bluetooth and Bonjour|
Unfortunately unlike a URI intent we can't add a fingerprint parameter to the service kerplapp registers on the network that is subsequently discovered & added by the F-Droid client.
There are two obvious options:
- Have the F-Droid client perform an HTTP request when it completes service resolution (i.e. has a service name, IP address and port) to find the repo fingerprint
- Include the fingerprint in the service name, perhaps using some known delimiter to split out the fingerprint from the name for UX display purposes.
Approach 1 doesn't really buy us much, as it is essentially TOFU in the same way that the first request to the repo after being added will be.
Approach 2 has usability implications - the service name will be long, ugly and potentially confusing.
#1 Updated by hans almost 4 years ago
With option 2, I think we can handle the potential usability issues since we're controlling both sides: the mDNS broadcaster and the mDNS receiver. So if there is a delimiter that separates the name from the fingerprint, the broadcaster can transparently add that info, then the receiver can parse that data, then in the Add Local Repo UI, it can display things in a friendly manner.
For me the only open question is whether there is a length limit in the name field, or whether there is the possibility for any other fields in an mDNS record that we could commandeer. jmdns might provide more flexibility than NSD.
#2 Updated by pd0x almost 4 years ago
- Parent task set to #2900
It sounds like using jmDNS allows for including an optional bit of text in the service advertisement we could use for the fingerprint, thereby avoiding polluting other devices doing network discovery with long scary looking service names from FDroid repos.
#6 Updated by hans over 3 years ago
- Status changed from New to Closed
- Assignee set to hans