/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
The Mandos server announces itself as a Zeroconf service of type
"_mandos._tcp". The Mandos client sends a line of text where the first
whitespace-separated field is the protocol version, which currently is
"1".  The client and server then start a TLS protocol handshake with a
slight quirk: the Mandos server program acts as a TLS "client" while
the connecting Mandos client acts as a TLS "server".  The Mandos
client must supply an OpenPGP certificate, and the fingerprint of this
certificate is used by the Mandos server to look up (in a list read
from a file at start time) which binary blob to give the client.  No
other authentication or authorization is done by the server.

| Mandos Client                              |     | Mandos Server |
|--------------------------------------------+-----+---------------|
| Connect                                    |     |               |
| "1\r\n"                                    | ->  |               |
| TLS handshake                              | <-> | TLS handshake |
| OpenPGP public key (part of TLS handshake) | ->  |               |
|                                            | <-  | Binary blob   |
|                                            |     | Close         |