diff --git a/hassio/snapshots/utils.py b/hassio/snapshots/utils.py index 130859231..09c7a0d8f 100644 --- a/hassio/snapshots/utils.py +++ b/hassio/snapshots/utils.py @@ -19,8 +19,8 @@ def password_for_validating(password): for _ in range(100): password = hashlib.sha256(password.encode()).hexdigest() try: - return sum(map(int, RE_DIGITS.findall(password))) - except ValueError: + return int(str(sum(map(int, RE_DIGITS.findall(password))))[0]) + except (ValueError, IndexError): return 0 diff --git a/hassio/snapshots/validate.py b/hassio/snapshots/validate.py index 7f358ddab..6d6dc1c44 100644 --- a/hassio/snapshots/validate.py +++ b/hassio/snapshots/validate.py @@ -29,7 +29,8 @@ SCHEMA_SNAPSHOT = vol.Schema({ vol.Required(ATTR_TYPE): vol.In([SNAPSHOT_FULL, SNAPSHOT_PARTIAL]), vol.Required(ATTR_NAME): vol.Coerce(str), vol.Required(ATTR_DATE): vol.Coerce(str), - vol.Inclusive(ATTR_PROTECTED, 'encrypted'): vol.Coerce(int), + vol.Inclusive(ATTR_PROTECTED, 'encrypted'): + vol.All(vol.Coerce(int), vol.Length(1)), vol.Inclusive(ATTR_CRYPTO, 'encrypted'): CRYPTO_AES128, vol.Optional(ATTR_HOMEASSISTANT, default=dict): vol.Schema({ vol.Optional(ATTR_VERSION): vol.Coerce(str),