What is the meaning of GnuPG's --list-sigs output?

Certification Levels

There are different classes of certifications. Quoting RFC 4880, OpenPGP, 5.2.1. Signature Types:

[...]

0x10: Generic certification of a User ID and Public-Key packet.
   The issuer of this certification does not make any particular
   assertion as to how well the certifier has checked that the owner
   of the key is in fact the person described by the User ID.

0x11: Persona certification of a User ID and Public-Key packet.
   The issuer of this certification has not done any verification of
   the claim that the owner of this key is the User ID specified.

0x12: Casual certification of a User ID and Public-Key packet.
   The issuer of this certification has done some casual
   verification of the claim of identity.

0x13: Positive certification of a User ID and Public-Key packet.
   The issuer of this certification has done substantial
   verification of the claim of identity.

Most OpenPGP implementations make their "key signatures" as 0x10
certifications.  Some implementations can issue 0x11-0x13
certifications, but few differentiate between the types.

[...]

GnuPG displays the "normal" 0x10 signatures as sig and the advanced signatures distinguishing between different kinds of certification levels with a number following: 0x11 as sig 1, 0x12 as sig 2 and 0x13 as sig 3. rev indicates revoked signatures.

The output of --list-sigs is also explained by the GnuPG manual pages (man gpg):

--list-sigs
    Same as --list-keys, but the signatures are listed too.  This command has the
    same effect as using --list-keys with --with-sig-list.

    For  each  signature listed, there are several flags in between the "sig" tag
    and keyid. These flags give additional information about each signature. From
    left  to  right,  they  are  the numbers 1-3 for certificate check level (see
    --ask-cert-level), "L" for a local or non-exportable signature (see  --lsign-
    key), "R" for a nonRevocable signature (see the --edit-key command "nrsign"),
    "P" for a signature that contains a policy URL (see  --cert-policy-url),  "N"
    for  a  signature  that contains a notation (see --cert-notation), "X" for an
    eXpired signature (see --ask-cert-expire), and the numbers 1-9 or "T" for  10
    and  above  to  indicate  trust  signature levels (see the --edit-key command
    "tsign").

Vagueness

Also note the first paragraph of the specification's section, which indicates there is no general, rigid definition of the certification levels:

There are a number of possible meanings for a signature, which are indicated in a signature type octet in any given signature. Please note that the vagueness of these meanings is not a flaw, but a feature of the system. Because OpenPGP places final authority for validity upon the receiver of a signature, it may be that one signer's casual act might be more rigorous than some other authority's positive act. [...]

Because of this, some people post certification policies. I provided some discussion in What are you saying when you sign a PGP key?


Trying to clarify some of the details from Jens Erat's post in human language: " " => 0x00 Generic certification: does not make any particular ownership assertion "1" => 0x11 Persona certification: has not done any ownership verification "2" => 0x12 Casual certification: has done some identity verification "3" => 0x13 Positive certification: has done substantial identity verification

And again for readability: "L" for a Local or non-exportable signature (see --lsign- key) "R" for a non-Revocable signature (see --edit-key command "nrsign") "P" for a signature that contains a Policy URL (see --cert-policy-url) "N" for a signature that contains a Notation (see --cert-notation) "X" for an eXpired signature (see --ask-cert-expire) "T" or [1-9] indicate trust signature levels (see --edit-key command "tsign")