This would require some code changes in CPFP. Globing matches instead of exact matches for the whitelist, because onionshare uses for example.
SETCONF HiddenServiceDir="/tmp/onionshare_hidden_service_52825" HiddenServicePort="80 127.0.0.1:52825"
But that's not the biggest issue. I did some experimental CPFP changes on my hdd and came as far as this.
Calculating SHA1 checksum.
Connecting to Tor control port to set up hidden service on port 52825.
Traceback (most recent call last):
File "/usr/bin/onionshare", line 10, in <module>
File "/usr/lib/python2.7/dist-packages/onionshare/onionshare.py", line 146, in main
onion_host = get_hidden_service_hostname(port)
File "/usr/lib/python2.7/dist-packages/onionshare/onionshare.py", line 57, in get_hidden_service_hostname
return open(hostname_file, 'r').read().strip()
IOError: [Errno 2] No such file or directory: '/tmp/onionshare_hidden_service_52825/hostname'
The problem is, that to get the .onion address, onionshare has to read a file on the hdd. But Tor runs on a different system than onionshare. Tor lacks a feature to set/get onion key and hostname through Tor Control Protocol:
Same issue as with torsion:
- Maybe a --tempfolder option could be included into onionshare + give Whonix-Workstation access to some folder on Whonix-Gateway. Very hacky. Probably not worth it.
- Modify onionshare to use an existing .onion address instead of an dynamically created one. (Then it would be similar to https://www.whonix.org/wiki/Hidden_Services or https://www.whonix.org/wiki/TorChat instructions.)
- Money/time would be better spent to get the missing features implemented into Tor. Unfortunately, the latter is outside my current abilities.