mirror of
https://github.com/minetest/minetest.git
synced 2024-11-27 01:53:45 +01:00
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.
This commit is contained in:
parent
beba969413
commit
915807f8db
@ -41,13 +41,21 @@ auth.txt
|
|||||||
---------
|
---------
|
||||||
Contains authentication data, player per line.
|
Contains authentication data, player per line.
|
||||||
<name>:<password hash>:<privilege1,...>
|
<name>:<password hash>:<privilege1,...>
|
||||||
Format of password hash is <name><password> SHA1'd, in the base64 encoding.
|
|
||||||
|
Legacy format (until 0.4.12) of password hash is <name><password> SHA1'd,
|
||||||
|
in the base64 encoding.
|
||||||
|
|
||||||
|
Format (since 0.4.13) of password hash is #1#<salt>#<verifier>, with the parts inside <> encoded in the base64 encoding.
|
||||||
|
<verifier> is an RFC 5054 compatible SRP-2048-SHA1 verifier
|
||||||
|
of the given salt, password, and the player's name lowercased.
|
||||||
|
|
||||||
Example lines:
|
Example lines:
|
||||||
- Player "celeron55", no password, privileges "interact" and "shout":
|
- Player "celeron55", no password, privileges "interact" and "shout":
|
||||||
celeron55::interact,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
|
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:
|
- Player "bar", no password, no privileges:
|
||||||
bar::
|
bar::
|
||||||
|
|
||||||
@ -204,14 +212,14 @@ algorithm, defined here in Python:
|
|||||||
|
|
||||||
def getBlockAsInteger(p):
|
def getBlockAsInteger(p):
|
||||||
return int64(p[2]*16777216 + p[1]*4096 + p[0])
|
return int64(p[2]*16777216 + p[1]*4096 + p[0])
|
||||||
|
|
||||||
def int64(u):
|
def int64(u):
|
||||||
while u >= 2**63:
|
while u >= 2**63:
|
||||||
u -= 2**64
|
u -= 2**64
|
||||||
while u <= -2**63:
|
while u <= -2**63:
|
||||||
u += 2**64
|
u += 2**64
|
||||||
return u
|
return u
|
||||||
|
|
||||||
It can be converted the other way by using this code:
|
It can be converted the other way by using this code:
|
||||||
|
|
||||||
def getIntegerAsBlock(i):
|
def getIntegerAsBlock(i):
|
||||||
@ -221,7 +229,7 @@ It can be converted the other way by using this code:
|
|||||||
i = int((i - y) / 4096)
|
i = int((i - y) / 4096)
|
||||||
z = unsignedToSigned(i % 4096, 2048)
|
z = unsignedToSigned(i % 4096, 2048)
|
||||||
return x,y,z
|
return x,y,z
|
||||||
|
|
||||||
def unsignedToSigned(i, max_positive):
|
def unsignedToSigned(i, max_positive):
|
||||||
if i < max_positive:
|
if i < max_positive:
|
||||||
return i
|
return i
|
Loading…
Reference in New Issue
Block a user