<!--
SPDX-FileCopyrightText: 2023 The "Notes on OpenPGP" project
SPDX-License-Identifier: CC-BY-SA-4.0
-->

```{mermaid}
%%{ init: { 'flowchart': { 'curve': 'monotoneX' } } }%%
flowchart LR
    signature(OpenPGP Signature)

    data(Signature on Data)

    sigcomp(Signature on Component)
    selfsig(Self-Signature)
    thirdparty(Third-Party)
    
    signature --> confsig & standalone & timestamp & data & sigcomp
    
    data --> binary & text

    sigcomp --> selfsig & thirdparty
    selfsig --> skbind & skrev & uidcert & uidrev & dksig & krev
    thirdparty --> uidcert & uidrev & dksig

    subgraph Signature Types and Targets
        standalone[0x02: Standalone]
        subgraph Signature Packet
            confsig[0x50: Third-Party Confirmation]
            timestamp[0x40: Timestamp]
        end
        subgraph Data
            binary[0x00: Binary Data]
            text[0x01: Canonical Text]
        end
        subgraph Primary Key + User ID / Attr. Packet
            uidcert[
                0x10: Generic Certification
                0x11: Persona Certification
                0x12: Casual Certification
                0x13: Positive Certification
            ]
            uidrev[0x30: Certification Revocation]
        end
        subgraph Primary Key
            dksig[0x1F: Direct-Key Signature]
            krev[0x20: Key Revocation]
        end
        subgraph Primary + Subkey
            skbind[
                0x18: Subkey Binding
                0x19: Primary Key Binding
            ]
            skrev[0x28: Subkey Revocation]
        end
    end
```
