aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorStanislav Boboň2020-10-20 14:46:52 +0200
committerStanislav Boboň2020-10-20 14:46:52 +0200
commit9f5717587ecdd9a27f9a03a8c5ea246383b994f2 (patch)
treee36669fca28f288bb88a0652a830a31ab22b8a1a
parent290eb267156fed196d7453d98870dbd85c2fd26f (diff)
downloadsec-certs-9f5717587ecdd9a27f9a03a8c5ea246383b994f2.tar.gz
sec-certs-9f5717587ecdd9a27f9a03a8c5ea246383b994f2.tar.zst
sec-certs-9f5717587ecdd9a27f9a03a8c5ea246383b994f2.zip
fstrings in downloads
-rw-r--r--sec_certs/download.py59
-rw-r--r--sec_certs/download_files.py0
2 files changed, 30 insertions, 29 deletions
diff --git a/sec_certs/download.py b/sec_certs/download.py
index eacee1f4..33733634 100644
--- a/sec_certs/download.py
+++ b/sec_certs/download.py
@@ -8,7 +8,6 @@ import requests
from .extract_certificates import PDF2TEXT_CONVERT
from .files import search_files, FILE_ERRORS_STRATEGY
-
CC_WEB_URL = 'https://www.commoncriteriaportal.org'
@@ -16,7 +15,7 @@ def download_file(url: str, output: Path) -> int:
r = requests.get(url, allow_redirects=True)
with output.open("wb") as f:
f.write(r.content)
- #for chunk in r.iter_content(chunk_size=1024):
+ # for chunk in r.iter_content(chunk_size=1024):
# if chunk:
# f.write(chunk)
return r.status_code
@@ -26,8 +25,8 @@ def generate_download_script(file_name, certs_dir, targets_dir, base_url, downlo
with open(file_name, "w", errors=FILE_ERRORS_STRATEGY) as write_file:
# certs files
if certs_dir != '':
- write_file.write('mkdir \"{}\"\n'.format(certs_dir))
- write_file.write('cd \"{}\"\n\n'.format(certs_dir))
+ write_file.write(f'mkdir \"{certs_dir}\"\n')
+ write_file.write(f'cd \"{certs_dir}\"\n\n')
for cert in download_files_certs:
# double %% is necessary to prevent replacement of %2 within script (second argument of script)
file_name_short_web = cert[0].replace(' ', '%%20')
@@ -35,42 +34,45 @@ def generate_download_script(file_name, certs_dir, targets_dir, base_url, downlo
if file_name_short_web.find(base_url) != -1:
# base url already included
write_file.write(
- 'curl \"{}\" -o \"{}\"\n'.format(file_name_short_web, cert[1]))
+ f'curl \"{file_name_short_web}\" -o \"{cert[1]}\"\n')
else:
# insert base url
write_file.write(
- 'curl \"{}{}\" -o \"{}\"\n'.format(base_url, file_name_short_web, cert[1]))
- write_file.write('{} \"{}\"\n\n'.format(PDF2TEXT_CONVERT, cert[1]))
+ f'curl \"{base_url}{file_name_short_web}\" -o \"{cert[1]}\"\n')
+ write_file.write(f'{PDF2TEXT_CONVERT} \"{cert[1]}\"\n\n')
if len(download_files_certs) > 0 and len(cert) > 2:
# security targets file
if targets_dir != '':
write_file.write('\n\ncd ..\n')
- write_file.write('mkdir \"{}\"\n'.format(targets_dir))
- write_file.write('cd \"{}\"\n\n'.format(targets_dir))
+ write_file.write(f'mkdir \"{targets_dir}\"\n')
+ write_file.write(f'cd \"{targets_dir}\"\n\n')
for cert in download_files_certs:
# double %% is necessary to prevent replacement of %2 within script (second argument of script)
file_name_short_web = cert[2].replace(' ', '%%20')
if file_name_short_web.find(base_url) != -1:
# base url already included
write_file.write(
- 'curl \"{}\" -o \"{}\"\n'.format(file_name_short_web, cert[3]))
+ f'curl \"{file_name_short_web}\" -o \"{cert[3]}\"\n')
else:
# insert base url
write_file.write(
- 'curl \"{}{}\" -o \"{}\"\n'.format(base_url, file_name_short_web, cert[3]))
- write_file.write('{} \"{}\"\n\n'.format(
- PDF2TEXT_CONVERT, cert[3]))
+ f'curl \"{base_url}{file_name_short_web}\" -o \"{cert[3]}\"\n')
+ write_file.write(f'{PDF2TEXT_CONVERT} \"{cert[3]}\"\n\n')
def download_cc_web(web_dir: Path):
download_file("https://www.commoncriteriaportal.org/products/", web_dir / "cc_products_active.html")
- download_file("https://www.commoncriteriaportal.org/products/index.cfm?archived=1", web_dir / "cc_products_archived.html")
+ download_file("https://www.commoncriteriaportal.org/products/index.cfm?archived=1",
+ web_dir / "cc_products_archived.html")
download_file("https://www.commoncriteriaportal.org/labs/", web_dir / "cc_labs.html")
- download_file("https://www.commoncriteriaportal.org/products/certified_products.csv", web_dir / "cc_products_active.csv")
- download_file("https://www.commoncriteriaportal.org/products/certified_products-archived.csv", web_dir / "cc_products_archived.csv")
+ download_file("https://www.commoncriteriaportal.org/products/certified_products.csv",
+ web_dir / "cc_products_active.csv")
+ download_file("https://www.commoncriteriaportal.org/products/certified_products-archived.csv",
+ web_dir / "cc_products_archived.csv")
download_file("https://www.commoncriteriaportal.org/pps/", web_dir / "cc_pp_active.html")
- download_file("https://www.commoncriteriaportal.org/pps/collaborativePP.cfm?cpp=1", web_dir / "cc_pp_collaborative.html")
+ download_file("https://www.commoncriteriaportal.org/pps/collaborativePP.cfm?cpp=1",
+ web_dir / "cc_pp_collaborative.html")
download_file("https://www.commoncriteriaportal.org/pps/index.cfm?archived=1", web_dir / "cc_pp_archived.html")
download_file("https://www.commoncriteriaportal.org/pps/pps.csv", web_dir / "cc_pp_active.csv")
download_file("https://www.commoncriteriaportal.org/pps/pps-archived.csv", web_dir / "cc_pp_archived.csv")
@@ -87,6 +89,7 @@ def download_cc(walk_dir: Path, cert_list, num_threads):
download_file(cert[2], walk_dir / "targets" / cert[3])
else:
download_file(CC_WEB_URL + cert[2], walk_dir / "targets" / cert[3])
+
with tqdm(total=len(cert_list)) as pbar:
for response in ThreadPool(num_threads).imap(download_one, cert_list):
pbar.update(1)
@@ -123,14 +126,13 @@ def generate_failed_download_script(base_dir: Path):
file_name_short = file_name[file_name.rfind(os.sep) + 1:]
# double %% is necessary to prevent replacement of %2 within script (second argument of script)
file_name_short_web = file_name_short.replace(' ', '%%20')
- download_link = '/files/epfiles/{}'.format(file_name_short_web)
+ download_link = f'/files/epfiles/{file_name_short_web}'
download_again.append((download_link, file_name))
generate_download_script('download_failed_certs.bat',
'', '', CC_WEB_URL, download_again)
- print('*** Number of files to be re-downloaded again (inside \'{}\'): {}'.format(
- 'download_failed_certs.bat', len(download_again)))
-
+ print(
+ f'*** Number of files to be re-downloaded again (inside \'{"download_failed_certs.bat"}\'): {len(download_again)}')
def generate_fips_basic_download_script():
@@ -151,15 +153,14 @@ def generate_fips_download_script(file_name, fips_dir):
with open(file_name, 'w', errors=FILE_ERRORS_STRATEGY) as write_file:
# make directories for both html and security policies, scraping in one go
- write_file.write('mkdir {}\n'.format(html_dir))
- write_file.write('mkdir {}\n\n'.format(sp_dir))
+ write_file.write(f'mkdir {html_dir}\n')
+ write_file.write(f'mkdir {sp_dir}\n\n')
+ # upper bound for max certs, in reality there is ~ 3730 certificates
for cert_id in range(1, 4001):
write_file.write(
- 'curl "https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/{}" -o {}{}.html\n'.format(
- cert_id, html_dir, cert_id))
+ f'curl "https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/{cert_id}" -o {html_dir}{cert_id}.html\n')
write_file.write(
- 'curl "https://csrc.nist.gov/CSRC/media/projects/cryptographic-module-validation-program/documents'
- '/security-policies/140sp{}.pdf" -o {}{}.pdf\n'.format(
- cert_id, sp_dir, cert_id))
- write_file.write("{} {}{}.pdf\n".format(PDF2TEXT_CONVERT, sp_dir, cert_id))
+ f'curl "https://csrc.nist.gov/CSRC/media/projects/cryptographic-module-validation-program/documents'
+ '/security-policies/140sp{cert_id}.pdf" -o {sp_dir}{cert_id}.pdf\n')
+ write_file.write(f"{PDF2TEXT_CONVERT} {sp_dir}{cert_id}.pdf\n")
diff --git a/sec_certs/download_files.py b/sec_certs/download_files.py
deleted file mode 100644
index e69de29b..00000000
--- a/sec_certs/download_files.py
+++ /dev/null