diff --git a/docs/PLUGIN_SIGNING.md b/docs/PLUGIN_SIGNING.md index 35e5cb459..93a1f53a7 100644 --- a/docs/PLUGIN_SIGNING.md +++ b/docs/PLUGIN_SIGNING.md @@ -5,6 +5,8 @@ By default, the Snap daemon (snapteld) has plugin signing verification enabled. ##How it works ![How it works](https://cloud.githubusercontent.com/assets/14298289/19846788/de129a2a-9f4a-11e6-8275-fdd5fac63c82.png) + + Private/public keys and keyrings are generated by GPG. The plugin is signed with the private key and the public key needs to be added to the user's keyring. The signing is an armored detached signature in the form of a `.asc` file. The Snap daemon uses the [Golang OpenPGP library](https://godoc.org/golang.org/x/crypto/openpgp)'s `CheckArmoredDetachedSignature` function to validate the signature using the keyring, plugin, and signature file before loading the plugin. It checks the issuer key ID, hash, and signature type.