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
Beispiel #3
0
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)
Beispiel #4
0
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")