Files
assaultcube-/source
ac-stef 381e770210 add authsetup command
authsetup contains all the funtionality needed to generate, load and save
private and public keys, and to lock and unlock the private key with a
password.

Private and public keys are used to authenticate the player to servers,
and are loaded from config/authprivate.cfg. Private keys can be stored
in an "encrypted with password" version - in which case the player has
to enter the password after game start. To prevent brute-force cracking
of the password, the key-derivation function uses a constant time to
encode (usually several seconds). Because of that, the decoding at game
start can be done in the background.

The private key is actually itself a public key generated from the
prepriv key. The prepriv key should be kept away from the computer, either
as hardcopy or on a thumbdrive. The prepriv key is not required to play
the game. It can be used to prove ownership of the private key, in case
the private key gets stolen. It can also be used to regenerate private
and public keys, in case they are lost. The prepriv key can also be
encrypted by its own password.

authsetup
  checks private and public key and returns "1", if they match.

authsetup pre preprivhex [psalthex pwdcfg]
  loads prepriv key into memory. optionally supports encrypted keys.

authsetup priv privhex [salthex pwdcfg]
  loads private key into memory. optionally supports encrypted keys.

authsetup pub pubhex
  loads public key into memory.

authsetup ppass preprivpass
  decrypts prepriv key with password

authsetup pass privpass
  decrypts private key with password

authsetup passd privpass [commandwhendone]
  decrypts private key with password in background. optionally executes
  cubescript command when done.

authsetup needpass
  returns "1" if the private key needs decryption.

authsetup genpre [prelen]
  generates new prepriv key.

authsetup genpriv
  generates private key from prepriv key.

authsetup genpub
  generates public key from private key.

authsetup newppass preprivpass [preprivfilename]
  encrypts prepriv key with new password and saves the result to file.
  The default filename is config/authpreprivate.cfg and an existing file
  gets overwritten - but the former file content is kept and also written,
  each line commented out.

authsetup newpass privpass [privatefilename]
  encrypts private key with new password and saves the encrypted private
  key and the public key to file. The default filename is
  config/authprivate.cfg and an existing file gets overwritten - but the
  former file content is kept and also written, each line commented out.

authsetup unarmed
  sets private and public keys to a fixed value. For testing only.
  Can be used to "log out".

authmemusage, authrounds, authmaxtime are only used, when new passwords are
  created (authsetup new[p]pass). authmemusage is the number of megabytes
  of RAM that are used for the password hash calculation. If authrounds
  is zero (as is default), then the hash algorithm calculates as many
  rounds as possible in the number of milliseconds specified in
  authmaxtime. If authrounds is a positive number, then that is the number
  of rounds to be done, regardless the required time. Note that, since the
  password hash algorithm is not endianness-aware, it is not possible to
  move an encrypted password to a machine with different endianness.
  Moving between 32- and 64-bit machines should be no problem.

  FIXME: the command is not blocked against use in multiplayer. It has to
         be determined later, if this is a problem or feature. Especially
         the background password calculation may be a problem.

DOCREF authsetup cryptodebug authmemusage authrounds authmaxtime
2016-08-26 14:28:54 +02:00
..
2015-09-08 11:51:02 +02:00
2015-10-13 20:24:23 +02:00
2015-09-20 13:13:01 +02:00
2016-08-26 14:28:54 +02:00

License
=======

The AssaultCube source code is mainly based on the cube game/engine and uses the 
same license (z-lib like). See README_CUBEENGINE.txt
In addition AssaultCube contains code from pCube (Cube pro mod) and Sauerbraten (Cube successor)
and other sources.


AssaultCube Authors
==================

Adrian 'driAn' Henke			drian at sprintf.org
Andrew 'Arghvark' Davis			arghvark at gmail.com
Lee 'Eihrul' Salzman			
stef


Cube Engine Authors
===================

Wouter 'Aardappel' van Oortmerssen, Lee 'Eihrul' Salzman and others.
See README_CUBEENGINE.txt and
http://www.cubeengine.com


pCube Authors
=============

Adrian 'driAn' Henke and others.
http://p.cubers.net


Sauerbraten Authors
===================

Wouter 'Aardappel' van Oortmerssen, Lee 'Eihrul' Salzman, Mike 'Gilt' Dysart and others.
http://www.sauerbraten.org


Cheat Protection
================

The cheat protection described in README_CUBEENGINE.txt is not used in AssaultCube. Binaries 
compiled from source are compatible with the official binaries. This means, the client can 
easily be hacked, on the other hand, you can compile AssaultCube for different platforms and 
fix bugs yourself.
You MUST NOT connect to servers that are not yours with a modified client that contains changes 
that were not made for platform-compatibility or to fix bugs. This would be cheating. Thank you 
for supporting fair play gaming.