diff options
Diffstat (limited to 'src/sec_certs/sample/fips_algorithm.py')
| -rw-r--r-- | src/sec_certs/sample/fips_algorithm.py | 50 |
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) |
