180 lines
5.9 KiB
Plaintext
180 lines
5.9 KiB
Plaintext
Safety Deposit Mod v1.0
|
|
By Leslie E. Krause
|
|
|
|
Safety Deposit integrates with the Simple Cipher Mod to provide an additional layer of
|
|
security for itemstack metadata via block-chain encryption.
|
|
|
|
Since container inventories are sent to every connected client, it is possible to use
|
|
either client-side modding or local map-saving to examine the contents of locked chests,
|
|
mailboxes, etc. This has the potential to expose sensitive personal information, as in the
|
|
case of written books which are often used for communication between players.
|
|
|
|
Itemstack metadata can be be encrypted and descrypted on the fly using the following two
|
|
API functions, both of which supply the administrator username as the public key:
|
|
|
|
* safety_deposit.encrypt_metadata( itemstack, data )
|
|
Serializes and encrypts the data, saving the resulting ciphertext as a Base-64 encoded
|
|
string to the itemstack meta.
|
|
|
|
* safety_deposit.decrypt_metadata( itemstack )
|
|
Decrypts and deserializes the itemstack meta. As a fallback, in case the string is not
|
|
actually encrypted, it will simply be deserialized.
|
|
|
|
If someone happens to obtain a copy of the map (without the private key of the server
|
|
owner), then it will be virtually impossible, outside of a sophisticated brute-force
|
|
attack, to fully extract the metedata of these items once encrypted.
|
|
|
|
A digital safe can also be crafted for even higher-grade security. This container, once
|
|
placed in world, encrypts its entire inventory, thereby thwarting any unwanted intruders.
|
|
The only means of access is by a 4-digit PIN which only the owner (or team-members) will
|
|
possibly know. Even the administrator cannot retrieve the access code if forgotten, so it
|
|
is very important to write the number down immediatly after engaging the lock.
|
|
|
|
|
|
Repository
|
|
----------------------
|
|
|
|
Browse source code...
|
|
https://bitbucket.org/sorcerykid/safety_deposit
|
|
|
|
Download archive...
|
|
https://bitbucket.org/sorcerykid/safety_deposit/get/master.zip
|
|
https://bitbucket.org/sorcerykid/safety_deposit/get/master.tar.gz
|
|
|
|
Compatability
|
|
----------------------
|
|
|
|
Minetest 0.4.15+ required
|
|
|
|
Dependencies
|
|
----------------------
|
|
|
|
Default Mod (required)
|
|
https://github.com/minetest/minetest_game
|
|
|
|
ActiveFormspecs Mod (required)
|
|
https://bitbucket.org/sorcerykid/formspecs
|
|
|
|
Simple Cipher Mod (optional)
|
|
https://bitbucket.org/sorcerykid/cipher
|
|
|
|
Installation
|
|
----------------------
|
|
|
|
1) Unzip the archive into the mods directory of your subgame
|
|
2) Rename the safety_deposit-master directory to "safety_deposit"
|
|
3) Add "safety_deposit" as a dependency to any mods using the API
|
|
|
|
|
|
Source Code License
|
|
----------------------
|
|
|
|
GNU Lesser General Public License v3 (LGPL-3.0)
|
|
|
|
Copyright (c) 2020, Leslie E. Krause
|
|
|
|
This program is free software; you can redistribute it and/or modify it under the terms of
|
|
the GNU Lesser General Public License as published by the Free Software Foundation; either
|
|
version 3 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 Lesser General Public License for more details.
|
|
|
|
http://www.gnu.org/licenses/lgpl-2.1.html
|
|
|
|
|
|
Multimedia License (textures, sounds, and models)
|
|
----------------------------------------------------------
|
|
|
|
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
|
|
|
|
/sounds/safe_error.ogg
|
|
obtained from https://notificationsounds.com/message-tones/glitch-in-the-matrix-600
|
|
modified by sorcerykid
|
|
|
|
/sounds/safe_entry.ogg
|
|
obtained from https://notificationsounds.com/message-tones/your-turn-491
|
|
modified by sorcerykid
|
|
|
|
/sounds/safe_abort.ogg
|
|
obtained from https://notificationsounds.com/message-tones/knob-458
|
|
modified by sorcerykid
|
|
|
|
/sounds/safe_open.ogg
|
|
obtained from https://freesound.org/people/kyles/sounds/362053/
|
|
modified by sorcereykid
|
|
|
|
/sounds/safe_close.ogg
|
|
obtained from https://freesound.org/people/kyles/sounds/362053/
|
|
modified by sorcerykid
|
|
|
|
/sounds/safe_lock.ogg
|
|
obtained from https://freesound.org/people/kyles/sounds/362053/
|
|
modified by sorcerykid
|
|
|
|
/sounds/safe_unlock.ogg
|
|
obtained from https://freesound.org/people/kyles/sounds/362053/
|
|
modified by sorcerykid
|
|
|
|
/textures/safe_front.png
|
|
obtained from https://gitlab.com/VanessaE/currency/
|
|
|
|
/textures/safe_side.png
|
|
obtained from https://gitlab.com/VanessaE/currency/
|
|
|
|
/textures/counter_0.png
|
|
by sorcerykid
|
|
|
|
/textures/counter_1.png
|
|
by sorcerykid
|
|
|
|
/textures/counter_3.png
|
|
by sorcerykid
|
|
|
|
/textures/counter_4.png
|
|
by sorcerykid
|
|
|
|
/textures/counter_5.png
|
|
by sorcerykid
|
|
|
|
/textures/counter_6.png
|
|
by sorcerykid
|
|
|
|
/textures/counter_7.png
|
|
by sorcerykid
|
|
|
|
/textures/counter_8.png
|
|
by sorcerykid
|
|
|
|
/textures/counter_9.png
|
|
by sorcerykid
|
|
|
|
/textures/counter_nil.png
|
|
by sorcerykid
|
|
|
|
You are free to:
|
|
Share — copy and redistribute the material in any medium or format.
|
|
Adapt — remix, transform, and build upon the material for any purpose, even commercially.
|
|
The licensor cannot revoke these freedoms as long as you follow the license terms.
|
|
|
|
Under the following terms:
|
|
|
|
Attribution — You must give appropriate credit, provide a link to the license, and
|
|
indicate if changes were made. You may do so in any reasonable manner, but not in any way
|
|
that suggests the licensor endorses you or your use.
|
|
|
|
No additional restrictions — You may not apply legal terms or technological measures that
|
|
legally restrict others from doing anything the license permits.
|
|
|
|
Notices:
|
|
|
|
You do not have to comply with the license for elements of the material in the public
|
|
domain or where your use is permitted by an applicable exception or limitation.
|
|
No warranties are given. The license may not give you all of the permissions necessary
|
|
for your intended use. For example, other rights such as publicity, privacy, or moral
|
|
rights may limit how you use the material.
|
|
|
|
For more details:
|
|
http://creativecommons.org/licenses/by-sa/3.0/
|