summaryrefslogtreecommitdiffstats
path: root/doc/userguide/devguide/extending/app-layer/diagrams/TlsHandshake.msc
blob: 34a025d1d00fcb08eb5b38e4f219349aee8f7953 (plain)
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
31
32
33
34
# MSC Sequence Diagram Example: TLS Handshake Transaction

msc {
    # Chart Options
    arcgradient = "10";

    # Entities
    a [ label = "Client" ], b [ label = "Server" ];

    # Message Flow
    # TLS_STATE_IN_PROGRESS = 0,
    a abox b [ label = "TLS_STATE_IN_PROGRESS" ];
    a =>> b [ label = "ClientHello" ];
    b =>> a [ label = "ServerHello" ];
    b =>> a [ label = "ServerCertificate" ];
    b =>> a [ label = "ServerHello Done" ];

    a =>> b [ label = "ClientCertificate" ];
    # TLS_STATE_CERT_READY = 1,
    a abox b [ label = "TLS_STATE_CERT_READY" ];
    a =>> b [ label = "ClientKeyExchange" ];

    a =>> b [ label = "Finished" ];
    b =>> a [ label = "Finished" ];
    # TLS_HANDSHAKE_DONE = 2,
    a abox b [ label = "TLS_HANDSHAKE_DONE" ];
    ...;
    # TLS_STATE_FINISHED = 3
    a abox b [ label = "TLS_STATE_FINISHED" ];
    --- [ label = "Transaction Completed" ];

    |||;
    ||| [label="[ generated with Mscgen ]", textcolor="gray"];
}