"""
passlib.utils.des - DEPRECATED LOCATION, WILL BE REMOVED IN 2.0
This has been moved to :mod:`passlib.crypto.des`.
"""
#=============================================================================
# import from new location
#=============================================================================
from warnings import warn
warn("the 'passlib.utils.des' module has been relocated to 'passlib.crypto.des' "
"as of passlib 1.7, and the old location will be removed in passlib 2.0",
DeprecationWarning)
#=============================================================================
# relocated functions
#=============================================================================
from passlib.utils.decor import deprecated_function
from passlib.crypto.des import expand_des_key, des_encrypt_block, des_encrypt_int_block
expand_des_key = deprecated_function(deprecated="1.7", removed="1.8",
replacement="passlib.crypto.des.expand_des_key")(expand_des_key)
des_encrypt_block = deprecated_function(deprecated="1.7", removed="1.8",
replacement="passlib.crypto.des.des_encrypt_block")(des_encrypt_block)
des_encrypt_int_block = deprecated_function(deprecated="1.7", removed="1.8",
replacement="passlib.crypto.des.des_encrypt_int_block")(des_encrypt_int_block)
#=============================================================================
# deprecated functions -- not carried over to passlib.crypto.des
#=============================================================================
import struct
_unpack_uint64 = struct.Struct(">Q").unpack
@deprecated_function(deprecated="1.6", removed="1.8",
replacement="passlib.crypto.des.des_encrypt_int_block()")
def mdes_encrypt_int_block(key, input, salt=0, rounds=1): # pragma: no cover -- deprecated & unused
if isinstance(key, bytes):
if len(key) == 7:
key = expand_des_key(key)
key = _unpack_uint64(key)[0]
return des_encrypt_int_block(key, input, salt, rounds)
#=============================================================================
# eof
#=============================================================================