def AESencryption(message, sec_level = 1): key = None if sec_level == 1: key = utils.generateKey(128) elif sec_level == 2: key = utils.generateKey(192) elif sec_level == 3: key = utils.generateKey(256) else: print "No such security level" return -1 iv = Random.new().read(AES.block_size) aes = AES.new(key, AES.MODE_CBC, iv) # pad message with 0 to get multiples of 16 in length lPS = 16 - (len(message) % 16) message = message + '\0' * lPS cipher_text = aes.encrypt(message) return key, cipher_text, iv
def DES3encryption(message): key = utils.generateKey(16*8) iv = utils.generateKey(8*8) des3 = DES3.new(key, DES3.MODE_CBC, iv) # pad message with 0 to get multiples of 8 in length lPS = 8 - (len(message) % 8) message = message + '\0' * lPS cipher_text = des3.encrypt(message) return key, cipher_text, iv
def generate(args): print("Generating password") password = generateKey(length=args.length, uppers=not args.no_uppercase, lowers=not args.no_lowercase, punctuation=not args.no_punctuation, digits=not args.no_digits, except_chars=args.except_chars) if (args.save): db = login(args.file) query = Query() if (len(db.search(query.label == args.save)) > 0): print("This label already in use") exit(-1) db.insert({ 'label': args.save, 'password': password, 'created_date': datetime.now().isoformat(), 'last_access': None, 'last_update': None }) print("Password has been saved with the label ", args.save) if (args.to_clipboard): pyperclip.copy(password) print("Password copied to clipboard") else: print("The generated password is: ", password)
def adduser_post(): if (logging_level > 29): print("adding user") info = request.json if (info is None): info = request.form username = info['username'] # unique password = info['password'] email = info['email'] # unique # Check for uniqueness of username and email in db e = db.emails.find_one({'email': email}) u = db.users.find_one({'username': username}) if (e is not None or u is not None): # one or both are not unique if json_request(): return jsonify(status="error", error="Duplicate username"), 500 return render_template('add_user.html', message="Username already taken") # Record the email and username db.emails.insert({'email': email}) db.users.insert({'username': username}) # Add account info to verification tables key = utils.generateKey() i = db.verification.insert({ 'username': username, 'email': email, 'password': password, 'key': key }) # Send email verfication utils.sendEmail(key, email) if json_request(): return jsonify(status="OK", key=key), 200 return render_template("verify.html")