NAME signcontrol.py - Generate PGP-signed control articles for Usenet hierarchies SYNOPSIS python signcontrol.py DESCRIPTION signcontrol.py is a Python script aimed at Usenet hierarchy administrators so as to help them in maintaining the canonical lists of newsgroups in the hierarchies they administer. This script is also useful to manage PGP keys: generation, import, export, removal, and revokal. It works on every platform on which Python and GnuPG are available (Windows, Linux, etc.). It enforces best practices regarding the syntax of Usenet control articles. Getting started is as simple as: 1. Downloading and installing Python (). However, make sure to use Python 2.x because signcontrol.py is not compatible yet with Python 3.x. 2. Downloading and installing GnuPG (). 3. Downloading both the signcontrol.py script and its signcontrol.conf configuration file. 4. Editing the signcontrol.conf configuration file so that the parameters it defines properly fit your installation. 5. Running "python signcontrol.py". SUPPORT The signcontrol.py home page is: http://www.trigofacile.com/divers/usenet/clefs/signcontrol.htm It will always point to the current version of the script, and contains instructions written in French. For bug tracking, please use the issue tracker provided by Github: https://github.com/Julien-Elie/usenet-signcontrol SOURCE REPOSITORY signcontrol.py is maintained using Git. You can access the current source by cloning the repository at: https://github.com/Julien-Elie/usenet-signcontrol.git or access it via the web at: https://github.com/Julien-Elie/usenet-signcontrol When contributing modifications, either patches or Git pull requests are welcome. CONFIGURATION FILE The following parameters can be modified in the signcontrol.conf configuration file: PROGRAM_GPG The path to the GPG executable. It is usually "C:\Progra~1\GNU\GnuPG\gpg.exe" or "/usr/bin/gpg". PGP2_COMPATIBILITY Whether compatibility with MIT PGP 2.6.2 (or equivalent) should be kept. Though this is now fairly obsolete, a few news servers still haven't been updated to be able to process newer and more secure signing algorithms. Such servers do not recognize recent signing algorithms; however, current news servers may refuse to process messages signed with the insecure MD5 algorithm. Possible values are "True", "False" or "Only" (default is "False"). When set to "True", signcontrol will generate two control articles: one in a format compatible with MIT PGP 2.6.2 (or equivalent) and another with a newer and more secure format. Sending these two control articles will then ensure a widest processing. When set to "False", signcontrol will generate control articles in only a newer and more secure format. When set to "Only", signcontrol will generate control articles in only a format compatible with MIT PGP 2.6.2 (or equivalent). ID The ID of the PGP key used to sign control articles. Note that if you do not already have a PGP key, it can be generated by signcontrol.py. As for Usenet hierarchy management is concerned, the ID is usually a mere e-mail. MAIL The e-mail from which control articles are sent. It is usually the ID of the PGP key used to sign them. HOST The host which appears in the second part of the Message-ID of control articles generated. It is usually the name of a news server. ADMIN_GROUP An existing newsgroup of the hierarchy (where checkgroups control articles will be fed). If an administrative newsgroup exists, put it. Otherwise, any other newsgroup of the hierarchy will be fine. NAME The name which appears in the From: header field. You should only use ASCII characters. Otherwise, you have to MIME-encode it (for instance: "=?ISO-8859-15?Q?Julien_=C9LIE?="). CHECKGROUPS_SCOPE The scope of the hierarchy according to Section 5.2.3 of RFC 5537 (also known as USEPRO, available at ). For instance: "fr" (for fr.*), "de !de.alt" (for de.* excepting de.alt.*) or "de.alt" (for de.alt.*). URL The URL where the public PGP key can be found. If you do not have any, leave "ftp://ftp.isc.org/pub/pgpcontrol/README". If you want to add more URLs (like the home page of the hierarchy), use a multi-line text where each line, except for the first, begins with a tabulation. NEWGROUP_MESSAGE_MODERATED, NEWGROUP_MESSAGE_UNMODERATED, RMGROUP_MESSAGE The message which will be written in the corresponding control article. All occurrences of "$GROUP$" will be replaced by the name of the newsgroup. PRIVATE_HIERARCHY Whether the hierarchy is public or private. If it is private (that is to say if it is intended to remain in a local server with private access and if it is not fed to other Usenet news servers), the value should be "True", so that checkgroups control articles are not crossposted to the news.admin.hierarchies newsgroup. Possible values are "True" or "False" (default is "False"). CHECKGROUPS_FILE The file which contains the current checkgroups. ENCODING The encoding of control articles. The default value is "ISO-8859-1". USEFUL RESOURCES Here are some resources that can be useful to be aware of: Usenet Hierarchy Administration FAQ Usenet hierarchy information Hosting service for hierarchy administrators LICENSE The signcontrol.py package as a whole is covered by the following copyright statement and license: Copyright (c) 2007, 2008, 2009, 2011, 2014 Julien ÉLIE Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. HISTORY signcontrol.py was written by Julien ÉLIE. SEE ALSO gpg(1).