Add _get_key_file() (#2882)
This commit is contained in:
parent
594ca3504f
commit
f19f35897b
|
|
@ -53,9 +53,6 @@ class Luks2:
|
||||||
if self.auto_unmount:
|
if self.auto_unmount:
|
||||||
self.lock()
|
self.lock()
|
||||||
|
|
||||||
def _default_key_file(self) -> Path:
|
|
||||||
return Path(f'/tmp/{self.luks_dev_path.name}.disk_pw')
|
|
||||||
|
|
||||||
def _password_bytes(self) -> bytes:
|
def _password_bytes(self) -> bytes:
|
||||||
if not self.password:
|
if not self.password:
|
||||||
raise ValueError('Password for luks2 device was not specified')
|
raise ValueError('Password for luks2 device was not specified')
|
||||||
|
|
@ -65,6 +62,17 @@ class Luks2:
|
||||||
else:
|
else:
|
||||||
return bytes(self.password, 'UTF-8')
|
return bytes(self.password, 'UTF-8')
|
||||||
|
|
||||||
|
def _get_key_file(self, key_file: Path | None = None) -> Path:
|
||||||
|
if key_file:
|
||||||
|
return key_file
|
||||||
|
|
||||||
|
if self.key_file:
|
||||||
|
return self.key_file
|
||||||
|
|
||||||
|
default_key_file = Path(f'/tmp/{self.luks_dev_path.name}.disk_pw')
|
||||||
|
default_key_file.write_bytes(self._password_bytes())
|
||||||
|
return default_key_file
|
||||||
|
|
||||||
def encrypt(
|
def encrypt(
|
||||||
self,
|
self,
|
||||||
key_size: int = 512,
|
key_size: int = 512,
|
||||||
|
|
@ -74,16 +82,7 @@ class Luks2:
|
||||||
) -> Path:
|
) -> Path:
|
||||||
debug(f'Luks2 encrypting: {self.luks_dev_path}')
|
debug(f'Luks2 encrypting: {self.luks_dev_path}')
|
||||||
|
|
||||||
byte_password = self._password_bytes()
|
key_file = self._get_key_file(key_file)
|
||||||
|
|
||||||
if not key_file:
|
|
||||||
if self.key_file:
|
|
||||||
key_file = self.key_file
|
|
||||||
else:
|
|
||||||
key_file = self._default_key_file()
|
|
||||||
|
|
||||||
with open(key_file, 'wb') as fh:
|
|
||||||
fh.write(byte_password)
|
|
||||||
|
|
||||||
cryptsetup_args = shlex.join([
|
cryptsetup_args = shlex.join([
|
||||||
'/usr/bin/cryptsetup',
|
'/usr/bin/cryptsetup',
|
||||||
|
|
@ -155,16 +154,7 @@ class Luks2:
|
||||||
if not self.mapper_name:
|
if not self.mapper_name:
|
||||||
raise ValueError('mapper name missing')
|
raise ValueError('mapper name missing')
|
||||||
|
|
||||||
byte_password = self._password_bytes()
|
key_file = self._get_key_file(key_file)
|
||||||
|
|
||||||
if not key_file:
|
|
||||||
if self.key_file:
|
|
||||||
key_file = self.key_file
|
|
||||||
else:
|
|
||||||
key_file = self._default_key_file()
|
|
||||||
|
|
||||||
with open(key_file, 'wb') as fh:
|
|
||||||
fh.write(byte_password)
|
|
||||||
|
|
||||||
wait_timer = time.time()
|
wait_timer = time.time()
|
||||||
while Path(self.luks_dev_path).exists() is False and time.time() - wait_timer < 10:
|
while Path(self.luks_dev_path).exists() is False and time.time() - wait_timer < 10:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue