aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorStanislav Boboň2020-12-29 16:17:44 +0100
committerStanislav Boboň2020-12-29 16:17:44 +0100
commit198d28ba5bce238ff0fd976cf80e323f78402770 (patch)
tree5afa98dbe851a23f25f78c93889ae152046a3570
parent646f4629fa0b3880e853d1ba228ea8af9bad292c (diff)
downloadsec-certs-198d28ba5bce238ff0fd976cf80e323f78402770.tar.gz
sec-certs-198d28ba5bce238ff0fd976cf80e323f78402770.tar.zst
sec-certs-198d28ba5bce238ff0fd976cf80e323f78402770.zip
datetime in validations
-rw-r--r--fips_oop_demo.py2
-rw-r--r--sec_certs/certificate.py7
-rw-r--r--sec_certs/dataset.py8
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