<div dir="ltr"><div class="gmail_default" style="font-family:garamond,serif">​<span style="color:rgb(64,64,64);font-family:Roboto,arial,sans-serif;font-size:13px;line-height:18.2000007629395px"> </span></div><div class="" style="color:rgb(64,64,64);line-height:18.2000007629395px"><font face="garamond, serif">Just created a Python (3) port of RumpelTree++<div class="gmail_default" style="display:inline">​ that I thought some of you might be interested in.​</div> </font></div><div class="" style="color:rgb(64,64,64);line-height:18.2000007629395px"><font face="garamond, serif"><br></font></div><div class="" style="color:rgb(64,64,64);line-height:18.2000007629395px"><div class="gmail_default"><font face="garamond, serif">​<a href="https://github.com/pibara/pyrumpeltree">https://github.com/pibara/pyrumpeltree</a>​</font></div></div><div class="" style="color:rgb(64,64,64);line-height:18.2000007629395px"><font face="garamond, serif"><br></font></div><div class="" style="color:rgb(64,64,64);line-height:18.2000007629395px"><font face="garamond, serif">Its a simple abstraction for facilitating the creation of Decomposable and singly<div class="gmail_default" style="display:inline">-​</div>attenuatable sparse<div class="gmail_default" style="display:inline">​-​</div>capability<div class="gmail_default" style="display:inline">​-​</div>designated  Rumpelstiltskin DAG<div class="gmail_default" style="display:inline">-​</div>serialization based structures. </font></div><div class="" style="color:rgb(64,64,64);line-height:18.2000007629395px"><font face="garamond, serif"><br></font></div><div class="" style="color:rgb(64,64,64);line-height:18.2000007629395px"><font face="garamond, serif">I've included a demo tool to play around with if you happen to use Linux or some other Unix like OS. The tool lets you create a (or more if you like) directory root node from a password. You can than create named sub directory nodes under that root node or content nodes. The fun thing is that each node comes with 3 ways to designate it:<br><br>* Through a combination of a parent node designation and its name<br>* Through a sparse capability<br>* Through an other sparse capability granting only read only access.<br>  second as encryption key.<br><br>All nodes are serialized to disk with AES using the second sparse capability doubling as key and using a storage location derived from the second sparse capability. <br><br>The tool is just a demonstrator , as real usage requires some kind of server/client setup (or file-system/ user-process setup) where the server can keep a key used for decomposition secret from the client<div class="gmail_default" style="display:inline">​, requires decent support for large data entities and requires race condition protection to avoid messing up shared directory structures. The tool however should give a nice idea of what the abstraction library can be used for.​</div><br><br></font></div><div class="gmail_default"><font face="garamond, serif"><span style="color:rgb(64,64,64);line-height:18.2000007629395px">I would be very much interested in any input I can get on this. I'm neither a crypto expert nor a python expert, so I may be overlooking essential things or making some blunders here. So please people, let me know</span><span style="color:rgb(64,64,64);line-height:18.2000007629395px"> </span>​<span style="color:rgb(64,64,64);line-height:18.2000007629395px">what you think and/or what I could improve.</span></font></div><div class="gmail_default"><span style="color:rgb(64,64,64);line-height:18.2000007629395px"><font face="garamond, serif"><br></font></span></div><div class="gmail_default"><font color="#404040" face="Roboto, arial, sans-serif"><span style="line-height:18.2000007629395px">Rob</span></font></div></div>