commit
45602d27c8
@ -0,0 +1,40 @@
|
|||||||
|
import os
|
||||||
|
import shutil
|
||||||
|
from stuff.general import General
|
||||||
|
from tools.helper import run
|
||||||
|
from tools.logger import Logger
|
||||||
|
|
||||||
|
class Mitm(General):
|
||||||
|
id = "mitm"
|
||||||
|
partition = "system"
|
||||||
|
|
||||||
|
def __init__(self, ca_cert_file: str=None) -> None:
|
||||||
|
super().__init__()
|
||||||
|
self.ca_cert_file = ca_cert_file
|
||||||
|
|
||||||
|
def download(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def skip_extract(self):
|
||||||
|
return True
|
||||||
|
|
||||||
|
def copy(self):
|
||||||
|
file_hash = run([
|
||||||
|
'openssl', 'x509', '-noout', '-subject_hash_old', '-in',
|
||||||
|
self.ca_cert_file,
|
||||||
|
]).stdout.decode("ascii").strip()
|
||||||
|
target_dir = os.path.join(
|
||||||
|
self.copy_dir, self.partition, "etc", "security", "cacerts")
|
||||||
|
Logger.info(f"Creating directory: {target_dir}")
|
||||||
|
os.makedirs(target_dir, exist_ok=True)
|
||||||
|
target_path = os.path.join(target_dir, f'{file_hash}.0')
|
||||||
|
Logger.info(f"Copying {self.ca_cert_file} to system trust store")
|
||||||
|
Logger.info(f"Target file: {target_path}")
|
||||||
|
shutil.copyfile(self.ca_cert_file, target_path)
|
||||||
|
os.chmod(target_path, 0o644)
|
||||||
|
|
||||||
|
def install(self):
|
||||||
|
if not self.ca_cert_file:
|
||||||
|
raise ValueError(
|
||||||
|
"This command requires the --ca-cert switch and a *.pem file")
|
||||||
|
super().install()
|
Loading…
Reference in New Issue