aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sec_certs/sample/fips_algorithm.py
diff options
context:
space:
mode:
authoradamjanovsky2022-12-09 17:10:19 +0100
committerGitHub2022-12-09 17:10:19 +0100
commit73b3b0c361f9545450fa188bec50606d64bb1afd (patch)
tree0a1f9034c309ba88e5f72a31634b014c23a57df5 /src/sec_certs/sample/fips_algorithm.py
parent19338dc9fd9ab257c36cfa277994abe202e97de2 (diff)
downloadsec-certs-73b3b0c361f9545450fa188bec50606d64bb1afd.tar.gz
sec-certs-73b3b0c361f9545450fa188bec50606d64bb1afd.tar.zst
sec-certs-73b3b0c361f9545450fa188bec50606d64bb1afd.zip
flat -> src layout (#294)
- Some mypy fixes - Flat layout -> src layout - Ditch `setup.py` and `setup.cfg` in favour of `pyproject.toml` - Non-pinned requirements moved from `requirements/*.in` to `pyproject.toml`
Diffstat (limited to 'src/sec_certs/sample/fips_algorithm.py')
-rw-r--r--src/sec_certs/sample/fips_algorithm.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/sec_certs/sample/fips_algorithm.py b/src/sec_certs/sample/fips_algorithm.py
new file mode 100644
index 00000000..16f19e64
--- /dev/null
+++ b/src/sec_certs/sample/fips_algorithm.py
@@ -0,0 +1,50 @@
+from __future__ import annotations
+
+from dataclasses import dataclass
+from datetime import date
+from typing import ClassVar
+
+from sec_certs import constants
+from sec_certs.serialization.json import ComplexSerializableType
+from sec_certs.serialization.pandas import PandasSerializableType
+
+
+@dataclass(eq=True, frozen=True)
+class FIPSAlgorithm(PandasSerializableType, ComplexSerializableType):
+ """
+ Data structure for algorithm of `FIPSCertificate`
+ """
+
+ alg_number: str
+ algorithm_type: str
+ vendor: str
+ implementation_name: str
+ validation_date: date
+
+ pandas_columns: ClassVar[list[str]] = [
+ "dgst",
+ "alg_number",
+ "algorithm_type",
+ "vendor",
+ "implementation_name",
+ "validation_date",
+ ]
+
+ @property
+ def pandas_tuple(self) -> tuple:
+ return (
+ self.dgst,
+ self.alg_number,
+ self.algorithm_type,
+ self.vendor,
+ self.implementation_name,
+ self.validation_date,
+ )
+
+ @property
+ def dgst(self) -> str:
+ return f"{self.algorithm_type}{self.alg_number}"
+
+ @property
+ def page_url(self) -> str:
+ return constants.FIPS_ALG_URL.format(self.algorithm_type, self.alg_number)