diff options
| author | Stanislav Boboň | 2020-12-29 16:17:44 +0100 |
|---|---|---|
| committer | Stanislav Boboň | 2020-12-29 16:17:44 +0100 |
| commit | 198d28ba5bce238ff0fd976cf80e323f78402770 (patch) | |
| tree | 5afa98dbe851a23f25f78c93889ae152046a3570 | |
| parent | 646f4629fa0b3880e853d1ba228ea8af9bad292c (diff) | |
| download | sec-certs-198d28ba5bce238ff0fd976cf80e323f78402770.tar.gz sec-certs-198d28ba5bce238ff0fd976cf80e323f78402770.tar.zst sec-certs-198d28ba5bce238ff0fd976cf80e323f78402770.zip | |
datetime in validations
| -rw-r--r-- | fips_oop_demo.py | 2 | ||||
| -rw-r--r-- | sec_certs/certificate.py | 7 | ||||
| -rw-r--r-- | sec_certs/dataset.py | 8 |
3 files changed, 9 insertions, 8 deletions
diff --git a/fips_oop_demo.py b/fips_oop_demo.py index 45cd92b4..b9aa9425 100644 --- a/fips_oop_demo.py +++ b/fips_oop_demo.py @@ -15,7 +15,7 @@ def main(): # dset = FIPSDataset({}, Path('./fips_test_dataset'), 'small dataset', 'small dataset for keyword testing') # Load metadata for certificates from CSV and HTML sources - dset.get_certs_from_web() + dset.get_certs_from_web(True) logging.info(f'Finished parsing. Have dataset with {len(dset)} certificates.') # Dump dataset into JSON diff --git a/sec_certs/certificate.py b/sec_certs/certificate.py index 80d0a601..64d7d406 100644 --- a/sec_certs/certificate.py +++ b/sec_certs/certificate.py @@ -7,6 +7,7 @@ import os import copy import json import requests +from dateutil import parser from abc import ABC, abstractmethod from bs4 import Tag, BeautifulSoup, NavigableString @@ -126,8 +127,8 @@ class FIPSCertificate(Certificate, ComplexSerializableType): module_name: Optional[str], standard: Optional[str], status: Optional[str], - date_sunset: Optional[List[str]], - date_validation: Optional[List[str]], + date_sunset: Optional[List[date]], + date_validation: Optional[List[date]], level: Optional[str], caveat: Optional[str], exceptions: Optional[List[str]], @@ -279,7 +280,7 @@ class FIPSCertificate(Certificate, ComplexSerializableType): if title in pairs: if 'date' in pairs[title]: - html_items_found[pairs[title]] = content.split(';') + html_items_found[pairs[title]] = [parser.parse(x) for x in content.split(';')] elif 'caveat' in pairs[title]: html_items_found[pairs[title]] = content html_items_found['mentioned_certs'] += FIPSCertificate.parse_caveat( diff --git a/sec_certs/dataset.py b/sec_certs/dataset.py index 5b7e32e9..11747908 100644 --- a/sec_certs/dataset.py +++ b/sec_certs/dataset.py @@ -690,10 +690,10 @@ class FIPSDataset(Dataset, ComplexSerializableType): def validate_id(processed_cert: FIPSCertificate, cert_candidate: str) -> bool: # returns True if candidates should _not_ be matched def compare_certs(current_certificate: 'FIPSCertificate', other_id: str): - cert_first = int(current_certificate.date_validation[0].split('/')[-1]) - cert_last = int(current_certificate.date_validation[-1].split('/')[-1]) - conn_first = int(self.certs[other_id].date_validation[0].split('/')[-1]) - conn_last = int(self.certs[other_id].date_validation[-1].split('/')[-1]) + cert_first = current_certificate.date_validation[0].year + cert_last = current_certificate.date_validation[-1].year + conn_first = self.certs[other_id].date_validation[0].year + conn_last = self.certs[other_id].date_validation[-1].year return cert_first - conn_first > 5 and cert_last - conn_last > 5 |
