/*
 * FREE 2000
 *
 * Copyright (c) Jason Kitcat, University of Warwick
 *
 * jeep@thecouch.org   http://www.thecouch.org/free/
 *
 * Knoll Cottage, Sutton Place, Nr.Abinger, Dorking, Surrey RH5 6RN United Kingdom
 *
 * Tel: 07956 886 508  Fax: 0870 052 7114
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program (gpl.txt); if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 *
 */

ChangeLog

* Free.ClientProtocol: Calls sendTotals() on receipt of getTotalVoted() 'X' packet
* Free.RTFrame: Now calls Comms.getTotalVoted() instead of sendTotals()
* Free.TCPClient(): Added recognition of 'Q' packets
* DBase.isSafe(): Added correct escape character to switch case ''' => '\''
* FreeTest: Updated to support new features
* Free.DBase.verCheck(): Built to make comparison between ERServer and RTServer totals
* Free.ClientProtocol(): Added a 'Q' section
* DBase.usersVoted(): Added to total up how many users have voted
* ERServer.ERServerProtocol(): A 'Q' section was created to support validity queries
* Free.getTotalVoted(): Created to support new validity check
* Updated TimeOutThreads to prevent use of deprecated stop() method which was thread unsafe
* Free.ServerProtocol: validity check changes
* ERServer.ERServerProtocol: changes made to validity checks as new MAC is 39 chars long compared to 31 previously
* Free.util.AuthSys: updated to support the more secure SHA-1 Message Digest algorithm instead of MD5
* Install.isSafe(): added to make sure installation strings are ok
* ERServer.DBase: boundary checking added
* Free.DBase: boundary checking added to ensure no control characters sneak into SQL commands
* DBase.isSafe(): Created for boundary checking after regular expression packages proved way too slow
* DBase.doSQL(): Changed "Executing:..." log statement from NORM to DEV level
* RTServer.DBase: importKeys() created to read + decrypt our file of keys
* ERServer.ERFRame1: New button added to activate make all keys
* AuthKey: encrypt() method added
* FreeInstall: some cosmetic changes
* FreeInstall.Install.buildKey(): Creates key with random input and alphanumeric password
* FreeInstall.AuthInstallFrame: Updated to connect to KeyInstallFrame
* FreeInstall.KeyInstallFrame: Created to allow input to build secret keys
* FreeInstall.Install: Update install strings to support new variables
* Free.ServerProtocol.process(): Altered to tidy up properly if an AuthKey check fails
* ERServer.DBase.makeAllKeys(): Created for key export
* Free.Comms: added ER_address constant
* Free.DBase.removeKey(): Created to obscure used AuthKeys
* ERServer.DBase.confirmVoted(): Method created to support improved robustness of protocol
* Free.ClientProtocol: Now supports K packets so that connection can be closed
* ERServer.ERServerProtocol.process(): K section added
* FreeClient.TCPClient: defensive coding added to prevent unknown packet types going to ERServer
* Free.TCPClient: Updated to support the new packet type of K
* Free.Comms.sendKey(): Created to support improved system reliabilty by confirming votes
* AuthKey: Added decryption functionality
* Free.DBase.init(): Now creates Keys table if one doesn't already exist
* Free.DBase: Added authKeyCheck() to perform the security and reliable voted tallying process
* Free.RTServer: Edited to initalise Free.AuthKey
* Free: RTServer taken up to version 0.8
* Free.AuthKey: file created to support Authorisation Keys system (same as ERServer.AuthKey except package)
* Free.ServerProtocol: Created Vector checkAuthKey & setCheckAK() to retain AuthKey data while timestamp anti-replay check is performed. Change other Vector methods to accomodate this new Vector.
* Free.ServerProtocol.setCheck(): Changed initialisation of variable where a new check date is inserted to prevent potential bug which might have only been detected on v.large scale testing
* Free.ServerProtocol.process(): Altered V section to collect AuthKey
* Free.ServerProtocol.process(): V section, changed packet length check to 112 (63+49 of AuthKey)
* FreeClient.Comms.sendVote(): Altered to now also send ERAuthKey with vote
* ERServer.DBase.checkER(): If user logs in and 'voted' set to C then extra log entry written
* FreeClient.ClientProtocol.process(): stores key in ERAuthKey if valid voter who hasn't voted
* ERServer.DBase.checkER(): Changed so that initial login only sets 'voted' field to C
* FreeClient.Comms: ERAuthKey + accessor methods added to store AuthKey before sending to RTServer
* FreeClient.ClientProtocol.process(): Modified to accept AuthKey as well as result flag
* Blowfish chosen for ERServer.AuthKey using 40-char key (alg could be rotated from choice of accepted algs)
* ERServer: Taken up to version 0.6
* ERServer.ERServerProtocol.process(): 'E' section edited to support AuthKeys
* ERServer.AuthKey: file created to support the Authorisation Keys system
* Miscellaneous JavDoc comments updated
* JNLP-INSTALL created
* Free.ServerProtocol.process(): Rewrote 'V' section to no longer depend on fixed length dates
* FreeInstall.Install.doInstallation(): Removed erroneous quote marks from install values
* FreeInstall.AuthInstallFrame: Created to support AuthSys setup
* FreeInstall.VoteInstallFrame: Created to support party setup
* Updated comments to support FreeInstall
* ERServer.ERServer: Fixed constructor to make full use of ERServer.ScreenAppender
* log4j.jar: Now log4j-full.jar
* ERServer.ScreenAppender.doAppend: Migrated to use LoggingEvent
* RTServer.ScreenAppender.doAppend: Migrated to use LoggingEvent
* log4j.rtserver.properties: log4j.additivity.DEV corrected from .DEBUG
* log4j.erserver.properties: log4j.additivity.DEV corrected from .DEBUG
* File started 1.2.1

EOF ChangeLog