Just pilling on some concrete examples, awesome-gemini is definitely the best place to start looking. There are both converters for the gemtext format and gateways for the protocols.
For format conversion tools, awesome-gemini already lists a handful of tools.
From the gemini side there are some gateways for specific websites operated by various people
- BBC news gemini://freeshell.de/news/bbc.gmi
- The Guardian gemini://guardian.shit.cx/world/
- Lots of others gemini://gemi.dev/cgi-bin/waffle.cgi
These work pretty well for me. I think there were public gateways to open http pages from gemini, but I can’t recall one from the top of my head.
Some of the gemini browsers support gemini proxies to access http(s) content. You can run it in your own machine. Duckling is the only one I’m familiar (but see the awesome list for more)
Conversely, to access gemini pages from a web browser portal.mozz.us hosts a gateway (just place whatever gemini link you want in the box).
One big privacy caveat of using gemini proxies for this is that while this may improve your privacy with regards to javascript/cookies it will reduced it because it makes your behaviour more identifiable from the point of view of the websites you visit (i.e. your proxy is clearly not a browser making it unusual).
Not sure which docs you are looking at, but my preferred description for this part is SMP
The previous message already pointed out the main point - communication happens via queues our clients knows to belong to the destination, and these queues are temporary. This means even if an attacker determines the queue belongs to a specific person it can be changed and even then it does not reveal who is the other contact using the queue.
A few more bits to consider:
So there are IDs but hopefully they are not useful for an attacker.
Now to answer your question. There are IDs but for a message to be delivered to the wrong person the following would need to happen
Caveats - the client app must be well implemented and NEVER reuse keys. Likewise the server must not reuse queue IDs.
I think I got my assumptions right. When in doubt check the 2nd link for a long step by step description of the protocol