I know about the trust web in PGP. When you sign a key, everybody that trusts you will trust the person with that key. But what is the point of self-signing a key when anybody else can do that with his own key-pair?

  • 3
    It's similar to the reason that a CSR (which contains the public key) is self-signed using the corresponding private key, before the CSR is submitted to a CA. It's so that the other party can verify that the person claiming that the public key is theirs is also in possession of the corresponding private key as well.
    – mti2935
    Commented Jun 7, 2022 at 15:36
  • @mti2935: This is a good answer. Convert your comment to an answer.
    – mentallurg
    Commented Jun 7, 2022 at 16:17
  • Thanks @mentallurg. But, I would basically just be re-posting what I've already written, so I'll just leave it as is.
    – mti2935
    Commented Jun 7, 2022 at 16:33
  • @mti2935 Seems reasonable. Thank you! Commented Jun 7, 2022 at 17:02
  • @mti2935 Comments are temporary. Their purpose is to help clarify the question. That's why comments can be deleted by moderators at any time. I'd suggest you think about converting it to an answer once again 🙂 Your answer can be helpful to everyone who has similar question.
    – mentallurg
    Commented Jun 8, 2022 at 0:25

1 Answer 1


There are a couple reasons that self-signing is important in OpenPGP:

  • First, user IDs and photos aren't attached to the key any other way. As a result, it's entirely possible for someone to attach a user ID or photo to a key, and the only way to distinguish an authorized one is to verify that it's signed by the key. Subkeys are attached to the key the same way and a signature is required for them, too.
  • Second, to prevent someone from claiming someone else's signing subkey and claiming their signatures with that key, that signing subkey needs to sign the main key as well.
  • Third, signatures are the only way that you can apply preferences and notations. These preferences indicate what algorithms the key owner is willing to accept (e.g., SHA-2 and AES), plus what functionality their implementation supports (e.g., improved security features in new versions of the standard).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .