mirror of
https://github.com/zadam/trilium.git
synced 2025-01-31 03:19:11 +08:00
45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
|
#!/usr/bin/python
|
||
|
|
||
|
import binascii
|
||
|
import getpass
|
||
|
import os
|
||
|
import base64
|
||
|
|
||
|
from builtins import input
|
||
|
|
||
|
import src.config_provider
|
||
|
import src.sql
|
||
|
import src.my_scrypt
|
||
|
|
||
|
config = src.config_provider.getConfig()
|
||
|
src.sql.connect(config['Document']['documentPath'])
|
||
|
|
||
|
username = src.sql.getOption("username")
|
||
|
|
||
|
if username:
|
||
|
print("Application has been already set up.")
|
||
|
exit(1)
|
||
|
|
||
|
print("Please provide your desired login credentials")
|
||
|
|
||
|
username = input("Username: ")
|
||
|
|
||
|
password1 = getpass.getpass()
|
||
|
password2 = getpass.getpass(prompt='Repeat the same password: ')
|
||
|
|
||
|
if password1 == password2:
|
||
|
hash = src.my_scrypt.getVerificationHash(password1)
|
||
|
|
||
|
src.sql.setOption('username', username)
|
||
|
src.sql.setOption('password', binascii.hexlify(hash))
|
||
|
|
||
|
# urandom is secure enough, see https://docs.python.org/2/library/os.html
|
||
|
src.sql.setOption('flask_secret_key', base64.b64encode(os.urandom(24)))
|
||
|
src.sql.setOption('verification_salt', base64.b64encode(os.urandom(24)))
|
||
|
src.sql.setOption('encryption_salt', base64.b64encode(os.urandom(24)))
|
||
|
|
||
|
src.sql.commit()
|
||
|
|
||
|
print('Application has been set up. You can now login.')
|
||
|
else:
|
||
|
print('Entered passwords are not identical!')
|