HullEncrypt
Idea
HullEncrypt (base and gui) are inspired by Skeleton
GUI
The GUI is not working as of 3a7b9ea
Concept
Parent -> Node -> Child
-> Child
Every node can be unlocked by it's parent, or it's password, and can unlock all of it's children
this is because the childs key is generated by hashing the Parent's key and the Nodes UUID
Security
A user wich has been given an unlocked Node can't get the parents key with
the knowledge of the childs key as it is hashed + salted to get the childs key, allowing for
multiple Children on the same node without having security issues.
Example usage
import base
import os
root_node = base.Node(parent_key=os.urandom(16), name=b'root_node', password=b'example pass')
root_key = root_node.get_key(password=b'example pass')
user_one = base.Node(parent_key=root_key, name=b'user_one', password=b'users pass')
user_key = user_one.get_key(password=b'user pass')
root_node.children.append(user_one)
netflix = base.Node(parent_key=user_key, name=b'neftlix', content=b'Netflix password')
user_one.children.append(user_one)
del root_key
del user_key
passw = input("Enter your password: ").encode("utf-8")
neftlix = user_one.get_child(["neftlix"])
user_key = user_one.get_key(password=passw)
netflix_key = user_one.get_child_key(key=key, path=["netflix"])
del user_key
print(netflix.get_content(netflix_key).decode("utf-8"))
del netflix_key