From 8e412a7a614c232662cb1728a04ed19b9b877693 Mon Sep 17 00:00:00 2001 From: J08nY Date: Mon, 29 May 2017 00:22:11 +0200 Subject: Add plugin spec, add core changes required - An out-of-tree approach is necessary for implementing encrypted mailing lists into Mailman 3, so the original proposal is being revised to reflect this. With general changes to core that will be usable by any plugin and a specific encrypted lists plugin. --- plugin.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 plugin.md (limited to 'plugin.md') diff --git a/plugin.md b/plugin.md new file mode 100644 index 0000000..7bdb9db --- /dev/null +++ b/plugin.md @@ -0,0 +1,32 @@ +# PGPMailman plugin + +## Structure + + * `pgpmailman` - A Core plugin. + - `styles` - Both styles generate a list keypair based on plugin settings on list creation as well as set other attributes for an encrypted mailing list. + - `EncryptedDefaultStyle` + - `EncryptedAnnounceStyle` + + - `pgp` - Module that handles lower-level pgp related stuff. Such as the GPG keyrings, lookup of keys, encryption of messages, decryption, etc... + + - `commands` + - `KeyEmailCommand` - Handles user key management through the `key` command. + - `KeyCLICommand` + + - `runners` + - `EncryptedIncomingRunner` - Decrypts incoming messages for encrypted mailing lists and checks their signatures before passing them to the default IncomingRunner. Messages to ordinary lists are passed to the default IncomingRunner wthout change. + - `EncryptedOutgoingRunner` - Encrypts and optionally signs for configured lists. This is a runner and not a Pipeline since we need to encrypt all outgoing messages, so digests, virgin messages, posts... + + - `archivers` + - `EncryptedHyperKittyArchiver` - Fetches list archive public keys from `pgphyperkitty`, uses them to send messages to archive encrypted, for encrypted lists. + + - `initialize()` - A callable to be setup in a Mailman hook, to setup everything necessary for pgpmailman to run. Such as adding the `listname-key`@ subaddress, creating keyrings if not found, subscribing to events if necessary. + + +## Instalation + + * A setuptools package that needs to be installed into the same virtualenv as the Mailman 3 instance. + +## Configuration + + * Custom runners, archivers and other site configuration options would need to be set. \ No newline at end of file -- cgit v1.2.3-70-g09d2