in taskcat/_template_params.py [0:0]
def genpassword(pass_length, pass_type=None):
"""
Returns a password of given length and type.
:param pass_length: Length of the desired password
:param pass_type: Type of the desired password - String only OR Alphanumeric
* A = AlphaNumeric, Example 'vGceIP8EHC'
:return: Password of given length and type
"""
password = []
numbers = "1234567890"
lowercase = "abcdefghijklmnopqrstuvwxyz"
uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
specialchars = "!#$&{*:[=,]-_%@+"
# Generates password string with:
# lowercase,uppercase and numeric chars
if pass_type == "A": # nosec
while len(password) < pass_length:
password.append(random.choice(lowercase))
password.append(random.choice(uppercase))
password.append(random.choice(numbers))
# Generates password string with:
# lowercase,uppercase, numbers and special chars
elif pass_type == "S":
while len(password) < pass_length:
password.append(random.choice(lowercase))
password.append(random.choice(uppercase))
password.append(random.choice(numbers))
password.append(random.choice(specialchars))
else:
# If no passtype is defined (None)
# Defaults to alpha-numeric
# Generates password string with:
# lowercase,uppercase, numbers and special chars
while len(password) < pass_length:
password.append(random.choice(lowercase))
password.append(random.choice(uppercase))
password.append(random.choice(numbers))
if len(password) > pass_length:
password = password[:pass_length]
return "".join(password)