diff options
| author | adamjanovsky | 2022-12-09 17:10:19 +0100 |
|---|---|---|
| committer | GitHub | 2022-12-09 17:10:19 +0100 |
| commit | 73b3b0c361f9545450fa188bec50606d64bb1afd (patch) | |
| tree | 0a1f9034c309ba88e5f72a31634b014c23a57df5 /src/sec_certs/sample/fips_algorithm.py | |
| parent | 19338dc9fd9ab257c36cfa277994abe202e97de2 (diff) | |
| download | sec-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.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) |
