```{mermaid}
%%{ init: { 'flowchart': { 'curve': '' } } }%%
flowchart LR
    signature(OpenPGP Signature)
    3rdcert(Third-Party Certification)
    data(Data Signature)
    selfcert(Self-Signature)
    certification("Third-Party Certification
    --------------------------------
    Self-Certification")

    signature --> data & selfcert & 3rdcert & confsig & standalone & timestamp
    data --> binary & text
    selfcert --> skbind & skrev
    selfcert & 3rdcert --> certification
    certification --> uidcert & uidrev & dksig & krev
    subgraph Siganture 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
```

