From 915807f8db1f3721ad9ffc00a4863ad940010c45 Mon Sep 17 00:00:00 2001 From: est31 Date: Sun, 13 Sep 2015 23:41:17 +0200 Subject: [PATCH] Rename doc/mapformat.txt and update doc to match SRP changes The documentation file contains not just information about the map itself, but also about further files inside the world's directory. Documentation didn't reflect recent SRP addition, now it does. --- doc/{mapformat.txt => worldformat.txt} | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) rename doc/{mapformat.txt => worldformat.txt} (94%) diff --git a/doc/mapformat.txt b/doc/worldformat.txt similarity index 94% rename from doc/mapformat.txt rename to doc/worldformat.txt index 2b049adcd..d3b1b1189 100644 --- a/doc/mapformat.txt +++ b/doc/worldformat.txt @@ -41,13 +41,21 @@ auth.txt --------- Contains authentication data, player per line. :: -Format of password hash is SHA1'd, in the base64 encoding. + +Legacy format (until 0.4.12) of password hash is SHA1'd, +in the base64 encoding. + +Format (since 0.4.13) of password hash is #1##, with the parts inside <> encoded in the base64 encoding. + is an RFC 5054 compatible SRP-2048-SHA1 verifier +of the given salt, password, and the player's name lowercased. Example lines: - Player "celeron55", no password, privileges "interact" and "shout": celeron55::interact,shout -- Player "Foo", password "bar", privilege "shout": +- Player "Foo", password "bar", privilege "shout", with a legacy password hash: foo:iEPX+SQWIR3p67lj/0zigSWTKHg:shout +- Player "Foo", password "bar", privilege "shout", with an up to date pw hash (yes it is THAT long): + foo:#1#hPpy4O3IAn1hsNK00A6wNw#Kpu6rj7McsrPCt4euTb5RA5ltF7wdcWGoYMcRngwDi11cZhPuuR9i5Bo7o6A877TgcEwoc//HNrj9EjR/CGjdyTFmNhiermZOADvd8eu32FYK1kf7RMC0rXWxCenYuOQCG4WF9mMGiyTPxC63VAjAMuc1nCZzmy6D9zt0SIKxOmteI75pAEAIee2hx4OkSXRIiU4Zrxo1Xf7QFxkMY4x77vgaPcvfmuzom0y/fU1EdSnZeopGPvzMpFx80ODFx1P34R52nmVl0W8h4GNo0k8ZiWtRCdrJxs8xIg7z5P1h3Th/BJ0lwexpdK8sQZWng8xaO5ElthNuhO8UQx1l6FgEA:shout - Player "bar", no password, no privileges: bar:: @@ -204,14 +212,14 @@ algorithm, defined here in Python: def getBlockAsInteger(p): return int64(p[2]*16777216 + p[1]*4096 + p[0]) - + def int64(u): while u >= 2**63: u -= 2**64 while u <= -2**63: u += 2**64 return u - + It can be converted the other way by using this code: def getIntegerAsBlock(i): @@ -221,7 +229,7 @@ It can be converted the other way by using this code: i = int((i - y) / 4096) z = unsignedToSigned(i % 4096, 2048) return x,y,z - + def unsignedToSigned(i, max_positive): if i < max_positive: return i