summaryrefslogtreecommitdiffstats
path: root/katzenpost/README.md
blob: 938c2b0c3cc50f481b0a79b3710f094d671d5df7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# Katzenpost YAMN dispatcher

The dispatcher runs on `kvara`. It is a send-only Katzenpost service: it
receives an already encrypted YAMN packet and forwards it to the selected YAMN
entry remailer using SMTP. It never receives a browser request and must not
implement fetch, view, AEC, replies, or message storage.

`pietro` is responsible for building the YAMN packet and submitting the opaque
envelope to the Katzenpost service through `kpclientd`.

## Trust boundary

The only data the dispatcher may see is:

- the entry remailer SMTP address;
- the complete, already encrypted YAMN envelope.

It must reject all other recipient domains and must not write payloads,
subjects, addresses, or SMTP transcripts to disk or logs.

## Deployment shape

```text
pietro: yamnweb onion service -> local kpclientd -> Katzenpost
                                               -> kvara dispatcher -> YAMN entry SMTP
```

The service capability name is `yamn-dispatch-v1`. It must be registered in
the Katzenpost PKI before `pietro` can discover it. The code is intentionally
not configured with live hosts, credentials, or service keys.