mirror of https://github.com/morpheus65535/bazarr
35 lines
984 B
Python
35 lines
984 B
Python
|
"""Encryption module that uses pycryptopp or pycrypto"""
|
||
|
try:
|
||
|
# Pycryptopp is preferred over Crypto because Crypto has had
|
||
|
# various periods of not being maintained, and pycryptopp uses
|
||
|
# the Crypto++ library which is generally considered the 'gold standard'
|
||
|
# of crypto implementations
|
||
|
from pycryptopp.cipher import aes
|
||
|
|
||
|
def aesEncrypt(data, key):
|
||
|
cipher = aes.AES(key)
|
||
|
return cipher.process(data)
|
||
|
|
||
|
# magic.
|
||
|
aesDecrypt = aesEncrypt
|
||
|
|
||
|
except ImportError:
|
||
|
from Crypto.Cipher import AES
|
||
|
from Crypto.Util import Counter
|
||
|
|
||
|
def aesEncrypt(data, key):
|
||
|
cipher = AES.new(key, AES.MODE_CTR,
|
||
|
counter=Counter.new(128, initial_value=0))
|
||
|
|
||
|
return cipher.encrypt(data)
|
||
|
|
||
|
def aesDecrypt(data, key):
|
||
|
cipher = AES.new(key, AES.MODE_CTR,
|
||
|
counter=Counter.new(128, initial_value=0))
|
||
|
return cipher.decrypt(data)
|
||
|
|
||
|
has_aes = True
|
||
|
|
||
|
def getKeyLength():
|
||
|
return 32
|