1

I'm working on a project where I have to make a password manager. I'm using AES in CBC mode and I have to implement HMAC for authentication. This is my encryption function:

def encrypt_password(master_password, password, salt, iv):
    key = scrypt(master_password, salt, 16, N=2**14, r = AES.block_size, p = 1)
    cipher = AES.new(key, AES.MODE_CBC, iv)
    encoded = base64.b64encode(cipher.encrypt(pad(password, AES.block_size)))
    return encoded

and decryption function:

def decrypt_password(master_password, encoded, salt, iv):
    encoded = base64.b64decode(encoded)
    key = scrypt(master_password, salt, 16, N=2**14, r = AES.block_size, p = 1)
    cipher = AES.new(key, AES.MODE_CBC, iv)
    decrypted = cipher.decrypt(encoded)
    decrypted = unpad(decrypted, AES.block_size)
    return decrypted

My problem is that I don't have a clue how to implement authentication here, can anyone please give me any tips? Thank you.

WholesomeGhost
  • 1,101
  • 2
  • 17
  • 31

0 Answers0