| 962 | |
| 963 | |
| 964 | class CertificateRevocationListBuilder: |
| 965 | _extensions: typing.List[Extension[ExtensionType]] |
| 966 | _revoked_certificates: typing.List[RevokedCertificate] |
| 967 | |
| 968 | def __init__( |
| 969 | self, |
| 970 | issuer_name: typing.Optional[Name] = None, |
| 971 | last_update: typing.Optional[datetime.datetime] = None, |
| 972 | next_update: typing.Optional[datetime.datetime] = None, |
| 973 | extensions: typing.List[Extension[ExtensionType]] = [], |
| 974 | revoked_certificates: typing.List[RevokedCertificate] = [], |
| 975 | ): |
| 976 | self._issuer_name = issuer_name |
| 977 | self._last_update = last_update |
| 978 | self._next_update = next_update |
| 979 | self._extensions = extensions |
| 980 | self._revoked_certificates = revoked_certificates |
| 981 | |
| 982 | def issuer_name( |
| 983 | self, issuer_name: Name |
| 984 | ) -> CertificateRevocationListBuilder: |
| 985 | if not isinstance(issuer_name, Name): |
| 986 | raise TypeError("Expecting x509.Name object.") |
| 987 | if self._issuer_name is not None: |
| 988 | raise ValueError("The issuer name may only be set once.") |
| 989 | return CertificateRevocationListBuilder( |
| 990 | issuer_name, |
| 991 | self._last_update, |
| 992 | self._next_update, |
| 993 | self._extensions, |
| 994 | self._revoked_certificates, |
| 995 | ) |
| 996 | |
| 997 | def last_update( |
| 998 | self, last_update: datetime.datetime |
| 999 | ) -> CertificateRevocationListBuilder: |
| 1000 | if not isinstance(last_update, datetime.datetime): |
| 1001 | raise TypeError("Expecting datetime object.") |
| 1002 | if self._last_update is not None: |
| 1003 | raise ValueError("Last update may only be set once.") |
| 1004 | last_update = _convert_to_naive_utc_time(last_update) |
| 1005 | if last_update < _EARLIEST_UTC_TIME: |
| 1006 | raise ValueError( |
| 1007 | "The last update date must be on or after" " 1950 January 1." |
| 1008 | ) |
| 1009 | if self._next_update is not None and last_update > self._next_update: |
| 1010 | raise ValueError( |
| 1011 | "The last update date must be before the next update date." |
| 1012 | ) |
| 1013 | return CertificateRevocationListBuilder( |
| 1014 | self._issuer_name, |
| 1015 | last_update, |
| 1016 | self._next_update, |
| 1017 | self._extensions, |
| 1018 | self._revoked_certificates, |
| 1019 | ) |
| 1020 | |
| 1021 | def next_update( |
no outgoing calls
no test coverage detected