Is there a tool out there that tells me which HSDir is/will probably be responsible for a given onion address (and at what time)?
There's no tool, unless you can reverse SHA1. (Or brute-force a set of popular onion addresses.)
I probably was not very clear in my question. I'm not aiming for the reverse path, just the normal calculation a tor client does given an onion address but instead of just calculating the current descriptor-id, print descriptor-ids for the future N days for onion address M (for the pre-prop224 world).
In short, it's the first 3 fingerprints following descriptor-id:
permanent-id = H(public-key)[:10] descriptor-id = H(permanent-id | H(time-period | descriptor-cookie | replica)) where H is SHA1.
The spec is: https://gitweb.torproject.org/torspec.git/tree/rend-spec.txt#n222 https://gitweb.torproject.org/torspec.git/tree/rend-spec.txt#n505
The implementation is: https://gitweb.torproject.org/tor.git/tree/src/or/rendcommon.c#n127