diff options
| author | Stanislav Boboň | 2020-10-15 10:28:59 +0200 |
|---|---|---|
| committer | Stanislav Boboň | 2020-10-15 10:28:59 +0200 |
| commit | 89798873bd7135396f2f357eb16818457114fd04 (patch) | |
| tree | f63542bf25b5316f38d69b19b9c9a555524c92d3 | |
| parent | 821dd3d4a07d9440763b060e53482fece0033dd3 (diff) | |
| download | sec-certs-89798873bd7135396f2f357eb16818457114fd04.tar.gz sec-certs-89798873bd7135396f2f357eb16818457114fd04.tar.zst sec-certs-89798873bd7135396f2f357eb16818457114fd04.zip | |
cert_rules for fips, no warnings in tabula and footer quickfix
| -rw-r--r-- | src/cert_rules.py | 7 | ||||
| -rw-r--r-- | src/extract_certificates.py | 8 | ||||
| -rw-r--r-- | src/fips_certificates.py | 13 |
3 files changed, 16 insertions, 12 deletions
diff --git a/src/cert_rules.py b/src/cert_rules.py index 147b1fb2..a3e0dd34 100644 --- a/src/cert_rules.py +++ b/src/cert_rules.py @@ -335,6 +335,7 @@ rules['rules_other'] = rules_other # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # For FIPS # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -rules['rules_fips_algorithms'] = rules_fips_remove_algorithm_ids -rules['rules_security_level'] = rules_fips_security_level -rules['rules_cert_id'] = rules_fips_cert +fips_rules = {} +fips_rules['rules_fips_algorithms'] = rules_fips_remove_algorithm_ids +fips_rules['rules_security_level'] = rules_fips_security_level +fips_rules['rules_cert_id'] = rules_fips_cert diff --git a/src/extract_certificates.py b/src/extract_certificates.py index 5e822de8..1f2daf7e 100644 --- a/src/extract_certificates.py +++ b/src/extract_certificates.py @@ -9,7 +9,7 @@ import csv import string from analyze_certificates import is_in_dict -from cert_rules import rules +from cert_rules import rules, fips_rules from enum import Enum import matplotlib.pyplot as plt @@ -1128,7 +1128,8 @@ def extract_certificates_keywords(walk_dir, fragments_dir, file_prefix, write_ou os.path.splitext(os.path.basename(file_name))[0])[0] # parse certificate, return all matches all_items_found[file_cert_name], modified_cert_file = parse_cert_file( - file_name, rules, -1, should_censure_right_away=should_censure_right_away, fips_items=fips_items) + file_name, fips_rules if fips_items else rules, -1, should_censure_right_away=should_censure_right_away, + fips_items=fips_items) # try to establish the certificate id of the current certificate # cert_id[file_cert_name] = estimate_cert_id( @@ -1437,7 +1438,8 @@ def extract_certificates_metadata_html(file_name): items_found['link_security_target_file_name'] = st_file_name download_files_certs.append( ( - items_found['link_cert_report'], cert_file_name, items_found['link_security_target'], st_file_name)) + items_found['link_cert_report'], cert_file_name, items_found['link_security_target'], + st_file_name)) index_next_item += 1 items_found['maintainance_updates'] = parse_product_updates( diff --git a/src/fips_certificates.py b/src/fips_certificates.py index 8c87a5d8..89fa966a 100644 --- a/src/fips_certificates.py +++ b/src/fips_certificates.py @@ -317,15 +317,16 @@ def find_tables(txt, file_name, num_pages): # We have 2 groups, one is optional - trying to parse 2 lines (just in case) footer1 = [m.group('first') for m in footer_regex.finditer(txt)] footer2 = [m.group('second') for m in footer_regex.finditer(txt)] + if len(footer2) < len(footer1): footer2 += [''] * (len(footer1) - len(footer2)) # zipping them together - footer_complete = [m[0] + m[1] for m in zip(footer1, footer2)] + footer_complete = [m[0] + m[1] for m in zip(footer1, footer2) if m[0] is not None and m[1] is not None] # removing None and duplicates footers = [extract_page_number(x) for x in footer_complete] - footers = list(dict.fromkeys([x for x in footers if x is not None and int(x) < num_pages])) + footers = list(dict.fromkeys([x for x in footers if x is not None and 0 < int(x) < num_pages])) print(footers) if footers: @@ -340,14 +341,14 @@ def repair_pdf_page_count(file): def extract_certs_from_tables(list_of_files, html_items): global count - # list_of_files = ['/home/stan/sec-certs/files/fips/security_policies/2441.pdf.txt'] + # list_of_files = ['/home/stan/sec-certs/files/fips/security_policies/419.pdf.txt'] not_decoded = [] for REDHAT_FILE in list_of_files: if '.txt' not in REDHAT_FILE: continue - # if html_items[extract_filename(REDHAT_FILE[:-8])]['tables_done']: - # continue + if html_items[extract_filename(REDHAT_FILE[:-8])]['tables_done']: + continue with open(REDHAT_FILE, 'r') as f: try: @@ -362,7 +363,7 @@ def extract_certs_from_tables(list_of_files, html_items): lst = [] print("~~~~~~~~~~~~~~~", REDHAT_FILE, "~~~~~~~~~~~~~~~~~~~~~~~") - data = read_pdf(REDHAT_FILE[:-4], pages=tables) + data = read_pdf(REDHAT_FILE[:-4], pages=[12], silent=True) # find columns with cert numbers for df in data: for col in range(len(df.columns)): |
