diff options
-rwxr-xr-x | CHANGELOG | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/CHANGELOG b/CHANGELOG new file mode 100755 index 0000000..f79a9c0 --- /dev/null +++ b/CHANGELOG @@ -0,0 +1,173 @@ +Firma CHANGELOG +--------------- + +05/05/2005 - 0.3-cvs - luis + + - New functions: list_admin, choose_uid and version. + - Renamed functions + GPGSTDERR -> get_gpg_stderr + SUBSCRIBERS -> get_subscribers_list + get_headers -> get_message_headers + - New args: + -h: chama a usage() + -v: chama a version() + - Option -a passes STDIN line by line to list_admin + - Added some checkings in the main procedure + - Some minor syntax changes + +02/08/2005 - 0.3-cvs - rhatto + + - Completed function newlist (still needs tests) + - New function: gpg_args + +25/05/2005 - v0.2.x - rhatto + + - Message is now stored in two arrays, MESSAGE and GPG_MESSAGE. + Temporary files are no longer needed. Deleted TMP var. + - Adapted firma to work with these two arrays. Lots of changes along + the code. + - Reorganized the code again, splitting part of the process_message + function into three new functions (get_message, get_gpg_message + and get_headers). + - new functions: get_message, get_gpg_message, get_headers, + - added export LANG=en_US + +14/05/2005 - v0.2.3 - rhatto + + - Changed project description. + - Two new variables: VERSION and CONFIG. The later stores the path + to the configuration file. + - Reorganized the code, splitting it into two functions + (check_config and process_message). + - An exit code of 1 is now given if an error occurs. + - Implemented a simple command line syntax: firma now has to be + called along with an option (e.g., -p to process a message), + followed by the path to the configuration file to be used. + - Created a new function (usage), which displays firma's usage if + its called without a command line option. + - Rearranged some comments along the code. + - New functions are: check_config, eval_config, usage, process_message and + splited the code into these routines + +12/05/2005 - v0.2.2 - luis + + major code cleanup and bug fix release + + - New: Implemented size and complexity checks for the lists' passphrase. + - firma would not work as expected if the PASSWD variable contained + characters such as $, `, ', ", \. Fixed. Now PASSWD has to be^M + enclosed in single quotes and cannot contain any single quote in + its value. + - Checked the entire code and tried to make it clearer and more + consistent. Lots of small changes and minor fixes. + - BASH was looking for the configuration file first on its PATH and + only then on the current directory. Disabled sourcepath to avoid + this behavior. + - A From header containing more than one "<" would turn the variable + FROMADD useless. Fixed. + - When a message's signature is found invalid, the notification + about it is now sent separately for the sender and the list + administrators. + - Other minor fixes and improvements. + - fix LISTNAME and LISTADMIN case sensitiveness + +18/04/2005 - v0.2.1 - luis + + - Added some simple checks for the values entered in the + configuration file. If any of these checks fail, firma exits and + shows what should be corrected in the file. + + - GPGLIST now lists public keys using the gpg option + "--with-colons". Definitely much easier to parse. + + - added --no-permission-warning on $GPGCOMMAND. + + - first tests with --hidden-recipient, but not added + + - Fixed the FROMADD variable. It wasn't working on the last version + + - FROMADD=$(echo $FROMADD \ + | if grep -q "<" ; \ + then echo $FROMADD | grep -o "<.*>" | sed -e "s/[<>]//g" ; \ + else echo $FROMADD ; \ + fi) + + + FROMADD=$(echo $FROM \ + | if grep -q "<" ; \ + then echo $FROM | grep -o "<.*>" | sed -e "s/[<>]//g" ; \ + else echo $FROM ; \ + fi) + + - created routines to check config file vars + + - changed SUBJECT to SUBJECT=$(grep -m 1 "^Subject:" $TMP | cut -d : -f 2- | sed "s/^ //") + + - changed FROM to FROM=$(grep -m 1 "^From:" $TMP | cut -f 2 -d :) + +17/04/2005 - v0.2 - luis + + - Lists can now have a passphrase. Added option "--passphrase-fd 0" + to the GPGDECRYPT and GPGENCRYPT variables. + - Added a new variable to the configuration file: LISTADMIN. It + should contain the email address of one or more list + administrator(s). + - Added signature checking for received messages. If the signature + is found valid, the message is sent to the list. If its invalid, + its returned to the sender and to the list administrator(s). If + the message was not encrypted and/or signed, a note is returned + to the sender. + - Added a few options to the GPGCOMMAND variable: "--batch", + "--no-tty", "--no-use-agent" and "--no-permission-warning". + + GPGCOMMAND="$GPG \ + --quiet \ + --homedir $GPGDIR \ + --batch \ + --no-tty \ + --no-use-agent" + + - Added two new functions: GPGSTDERR and SUBSCRIBERS. The first gets + gpg STDERR and discards its STDOUT and the later returns the + subscribers list. + + function GPGSTDERR { + echo "$PASSWD" \ + | ($GPGDECRYPT --status-fd 2 $TMP.gpg 1> /dev/null) 2>&1 ; + } + + function SUBSCRIBERS { + $GPGLIST \ + | sed -n '/$LISTNAME/d;/pub/p' \ + | grep -o '<.*>' \ + | sed -e 's/[<>]//g' ; + } + + - Added a new variable, FROMADD, which contains the sender's email + address. + + FROMADD=$(echo $FROMADD \ + | if grep -q '<' ; \ + then echo $FROMADD | grep -o '<.*>' | sed -e 's/[<>]//g' ; \ + else echo $FROMADD ; \ + fi) + + TODO: find a better place to this var. + +Feb 2005 - v0.1 - rhatto + + - First public release and proof of concept + - Based on pgplist (http://www.rediris.es/app/pgplist/index.en.html), + but completely written from scratch + - Strips all mail headers + - Use keyring as database + - List variables are sourced from a configuration file. + - List subscription is managed through gpg public keyrings, one + keyring for each mailing list. + - Message is read from STDIN, passed to it by postfix or some + other MTA. + - Encrypted message is saved in a temporary file on disk. The + decrypted message though is not stored in disk, but passed to + the MTA through a pipe. + - Message is then decrypted, re-encrypted and sent separately to + each list subscriber. + |