Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions src/veracrypt/veracrypt.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,21 @@ def _validate_options(self, options: Optional[List[str]], context: str) -> None:
f"{context} options must be a list of strings when provided."
)

def _validate_keyfiles(
self, keyfiles: Optional[List[str]], context: str
) -> None:
"""Validate keyfile paths passed into public methods."""
if keyfiles is None:
return
if not isinstance(keyfiles, list) or not all(
isinstance(item, str) for item in keyfiles
):
raise ValueError(
f"{context} keyfiles must be a list of strings when provided."
)
for keyfile in keyfiles:
self._check_path(keyfile)

@staticmethod
def _mask_password_in_args(args: List[str], password: str, index: int) -> None:
"""Safely mask a password in a command args list."""
Expand Down Expand Up @@ -338,6 +353,7 @@ def create_volume(
"""
self.logger.debug("Creating volume")
self._validate_options(options, "create_volume")
self._validate_keyfiles(keyfiles, "create_volume")

if self.os_name == "Windows":
cmd = self._create_win(
Expand Down
Loading