{"push_id":569193369,"size":8,"distinct_size":8,"ref":"refs/heads/cryptest","head":"68cde6e69668f9a6088e67d27c3b575aa391319a","before":"d7c2c8333aa4bf135a0f78620ff19046c603ecf6","commits":[{"sha":"8752e876acfb4e757423e21592833fe67c35bf73","author":{"email":"1830b89268ef8d19792ac6eb7e612d167341b897@users.sf.net","name":"ac-stef"},"message":"remove current auth system\n\n* fix tiger hash for bigendian (we use the byte output, not the chunks)\n* remove all ECC functions and comment out all calls to it","distinct":true,"url":"https://api.github.com/repos/ac-stef/AC/commits/8752e876acfb4e757423e21592833fe67c35bf73"},{"sha":"577b52f64573ba3b0d7a0520c20bd62372f51425","author":{"email":"1830b89268ef8d19792ac6eb7e612d167341b897@users.sf.net","name":"ac-stef"},"message":"add SHA512 hash function and an entropy collector\n\nSHA512 was adapted from a few public domain sources and pseudocode from\nwikipedia. The entropy collector gathers entropy from keyboard events and\nmouse movement - and, just for fun, from screenshots.\nThe entropy pool is saved at program exit and reloaded at program start.\nEntropy is used to re-seed the pseudorandom generator (not that it would\nmake a difference).","distinct":true,"url":"https://api.github.com/repos/ac-stef/AC/commits/577b52f64573ba3b0d7a0520c20bd62372f51425"},{"sha":"813846c2967a84ecf2219b5dedad4c220134b1c2","author":{"email":"1830b89268ef8d19792ac6eb7e612d167341b897@users.sf.net","name":"ac-stef"},"message":"add memory-heavy key derivation function\n\n* basically a hash function that delivers keylen bytes calculated\n  from password and salt\n* uses a lot of memory and a quite complex algorithm, to make\n  brute-force offline-attacks on short passwords as hard as possible\n* last line of defense against \"evil little brothers\"","distinct":true,"url":"https://api.github.com/repos/ac-stef/AC/commits/813846c2967a84ecf2219b5dedad4c220134b1c2"},{"sha":"de6d5d2e074e6402e63c650a5bc12152670e2b3e","author":{"email":"1830b89268ef8d19792ac6eb7e612d167341b897@users.sf.net","name":"ac-stef"},"message":"add Ed25519 ECC signature algorithm\n\nThe Ed25519 sources were taken from the crypto_sign/ed25519/ref\nsubdirectory of the SUPERCOP benchmarking tool.\nThe Ed25519 software is in the public domain.\n\nContributors (in alphabetical order)\n    Daniel J. Bernstein, University of Illinois at Chicago\n    Niels Duif, Technische Universiteit Eindhoven\n    Tanja Lange, Technische Universiteit Eindhoven\n    Peter Schwabe, National Taiwan University\n    Bo-Yin Yang, Academia Sinica","distinct":true,"url":"https://api.github.com/repos/ac-stef/AC/commits/de6d5d2e074e6402e63c650a5bc12152670e2b3e"},{"sha":"40590e74ff299459597187f06db5290afebc690c","author":{"email":"1830b89268ef8d19792ac6eb7e612d167341b897@users.sf.net","name":"ac-stef"},"message":"crypto tool functions and ed25519 vector test\n\n* FNV-1a:  very fast, non-cryptographic hash\n* bin2hex, hex2bin:  hex ascii parser and hex string formatter\n* ed25519test:  vector test for all ed25519 functions\n* ed25519speedtest:  yep, that","distinct":true,"url":"https://api.github.com/repos/ac-stef/AC/commits/40590e74ff299459597187f06db5290afebc690c"},{"sha":"d89a91dc03b2004c02ec98a1e9bccfe836113f92","author":{"email":"1830b89268ef8d19792ac6eb7e612d167341b897@users.sf.net","name":"ac-stef"},"message":"add authsetup command\n\nauthsetup contains all the funtionality needed to generate, load and save\nprivate and public keys, and to lock and unlock the private key with a\npassword.\n\nPrivate and public keys are used to authenticate the player to servers,\nand are loaded from config/authprivate.cfg. Private keys can be stored\nin an \"encrypted with password\" version - in which case the player has\nto enter the password after game start. To prevent brute-force cracking\nof the password, the key-derivation function uses a constant time to\nencode (usually several seconds). Because of that, the decoding at game\nstart can be done in the background.\n\nThe private key is actually itself a public key generated from the\nprepriv key. The prepriv key should be kept away from the computer, either\nas hardcopy or on a thumbdrive. The prepriv key is not required to play\nthe game. It can be used to prove ownership of the private key, in case\nthe private key gets stolen. It can also be used to regenerate private\nand public keys, in case they are lost. The prepriv key can also be\nencrypted by its own password.\n\nauthsetup\n  checks private and public key and returns \"1\", if they match.\n\nauthsetup pre preprivhex [psalthex pwdcfg]\n  loads prepriv key into memory. optionally supports encrypted keys.\n\nauthsetup priv privhex [salthex pwdcfg]\n  loads private key into memory. optionally supports encrypted keys.\n\nauthsetup pub pubhex\n  loads public key into memory.\n\nauthsetup ppass preprivpass\n  decrypts prepriv key with password\n\nauthsetup pass privpass\n  decrypts private key with password\n\nauthsetup passd privpass [commandwhendone]\n  decrypts private key with password in background. optionally executes\n  cubescript command when done.\n\nauthsetup needpass\n  returns \"1\" if the private key needs decryption.\n\nauthsetup genpre [prelen]\n  generates new prepriv key.\n\nauthsetup genpriv\n  generates private key from prepriv key.\n\nauthsetup genpub\n  generates public key from private key.\n\nauthsetup newppass preprivpass [preprivfilename]\n  encrypts prepriv key with new password and saves the result to file.\n  The default filename is config/authpreprivate.cfg and an existing file\n  gets overwritten - but the former file content is kept and also written,\n  each line commented out.\n\nauthsetup newpass privpass [privatefilename]\n  encrypts private key with new password and saves the encrypted private\n  key and the public key to file. The default filename is\n  config/authprivate.cfg and an existing file gets overwritten - but the\n  former file content is kept and also written, each line commented out.\n\nauthsetup unarmed\n  sets private and public keys to a fixed value. For testing only.\n  Can be used to \"log out\".\n\nauthmemusage, authrounds, authmaxtime are only used, when new passwords are\n  created (authsetup new[p]pass). authmemusage is the number of megabytes\n  of RAM that are used for the password hash calculation. If authrounds\n  is zero (as is default), then the hash algorithm calculates as many\n  rounds as possible in the number of milliseconds specified in\n  authmaxtime. If authrounds is a positive number, then that is the number\n  of rounds to be done, regardless the required time. Note that, since the\n  password hash algorithm is not endianness-aware, it is not possible to\n  move an encrypted password to a machine with different endianness.\n  Moving between 32- and 64-bit machines should be no problem.\n\n  FIXME: the command is not blocked against use in multiplayer. It has to\n         be determined later, if this is a problem or feature. Especially\n         the background password calculation may be a problem.\n\nDOCREF authsetup cryptodebug authmemusage authrounds authmaxtime","distinct":true,"url":"https://api.github.com/repos/ac-stef/AC/commits/d89a91dc03b2004c02ec98a1e9bccfe836113f92"},{"sha":"f4b79ce1842e2ec56ce47a1cdaeb8803f1958603","author":{"email":"1830b89268ef8d19792ac6eb7e612d167341b897@users.sf.net","name":"ac-stef"},"message":"add authkey command\n\nauthkey manages a list of keys other than the game key (which is managed\nby authsetup). For example, this can be server owner keys or clan boss\nkeys.\n\nauthkey clear\n  Empties the list and comments out all lines in config/authkeys.cfg.\n\nauthkey list\n  Lists all authkeys that are currently in memory.\n\nauthkey delete keyname\n  Deletes the key <keyname> from memory.\n\nauthkey new keyname\n  Generates a new key with the name <keyname>. If a key of that name\n  already exists, it is deleted. The key is added to the list in memory\n  and also written to the file config/authkeys.cfg.\n\nauthkey add keyname privkey\n  Adds a key with the name <keyname> to the list in memory. The privkey\n  is a 32-byte hexadecimal string, preferrably generated by authkey new.\n  The matching public key is generated automatically from the private key.\n\nauthkey selfcert keyname [comment]\n  Generates a self-signed certificate for the key <keyname>. Being able to\n  create such a cert is proof, that you own the private key of a certain\n  public key.\n\nDOCREF authkey","distinct":true,"url":"https://api.github.com/repos/ac-stef/AC/commits/f4b79ce1842e2ec56ce47a1cdaeb8803f1958603"},{"sha":"68cde6e69668f9a6088e67d27c3b575aa391319a","author":{"email":"1830b89268ef8d19792ac6eb7e612d167341b897@users.sf.net","name":"ac-stef"},"message":"add basic cert management","distinct":true,"url":"https://api.github.com/repos/ac-stef/AC/commits/68cde6e69668f9a6088e67d27c3b575aa391319a"}]}