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).