예제 #1
0
class PasswordVault:

    storage_file = "/home/pi/password-vault-server/vault.json" if not debug.isDebug(
    ) else "vault.json"

    storage = None
    encryption = None
    main_menu = None

    def __init__(self):
        self.storage = Storage(self.storage_file)

    def startDisplay(self):
        self.main_menu = MainMenu()
        self.main_menu.init()
        self.main_menu.secretsCallback = self.listSecrets
        self.main_menu.secretCallback = self.retrieveSecret
        self.main_menu.saltCallback = self.initEncryption
        self.main_menu.display()

    def initEncryption(self, salt):
        self.encryption = Encryption(salt)
        # Validation
        secrets = self.storage.read()
        keys = list(secrets)
        if len(keys) > 0:
            return self.encryption.validate(secrets[keys[0]])
        return False

    def addSecret(self, key, secret):
        encoded_secret = self.encryption.encode(secret)
        secrets = self.storage.read()
        secrets[key] = encoded_secret
        self.storage.save(secrets)

    def listSecrets(self):
        secrets = self.storage.read()
        return list(secrets.keys())

    def retrieveSecret(self, key):
        secrets = self.storage.read()
        hashed_secret = secrets[key]
        decoded_secret = self.encryption.decode(hashed_secret)
        return decoded_secret
예제 #2
0
    def __init__(self):
        self.config_dir = self.config_dir + "/"

    def read_properties(self, config_file):
        with open(self.config_dir + config_file) as lines:
            properties = json.load(lines)
        return properties


# get database connectivity
properties = Config().read_properties("database.json")

database_uri_prefix = properties["database_uri_prefix"]
user = properties["user"]
pwd = properties["pwd"]
pwd = Encryption().decrypt(pwd.encode())
hostname = properties["hostname"]
port = properties["port"]
service_name = properties["service_name"]
print("hostname: " + hostname + " - port: " + port + " - user: "******" - service_name: " + service_name)

# The SQLAlchemy connection string.
# SQLALCHEMY_DATABASE_URI = "sqlite:///" + os.path.join(basedir, "app.db")
# SQLALCHEMY_DATABASE_URI = 'mysql://myapp@localhost/myapp'
# SQLALCHEMY_DATABASE_URI = 'postgresql://*****:*****@localhost/myapp'
SQLALCHEMY_DATABASE_URI = database_uri_prefix + user + ":" + pwd + "@" + hostname + ":" + port + "/" + service_name

# Flask-WTF flag for CSRF
CSRF_ENABLED = True
예제 #3
0
def encode_file(filename):
    ba = Encryption.encode('images/key.png', filename)
    Pixels.create_image(Pixels.get_img(ba), display=True, save='images/enc.png')