py2docfx 0.1.9.dev1927679__py3-none-any.whl → 0.1.9.dev1929227__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. py2docfx/__main__.py +16 -1
  2. py2docfx/convert_prepare/git.py +8 -5
  3. py2docfx/docfx_yaml/logger.py +13 -0
  4. py2docfx/venv/venv1/Lib/site-packages/cryptography/__about__.py +1 -1
  5. py2docfx/venv/venv1/Lib/site-packages/cryptography/__init__.py +13 -0
  6. py2docfx/venv/venv1/Lib/site-packages/cryptography/fernet.py +8 -0
  7. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/_oid.py +2 -0
  8. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/backends/openssl/backend.py +8 -14
  9. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/asymmetric/rsa.py +10 -7
  10. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/ciphers/algorithms.py +12 -6
  11. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/argon2.py +13 -0
  12. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/kdf/scrypt.py +3 -64
  13. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/padding.py +3 -24
  14. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/serialization/pkcs7.py +33 -0
  15. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/twofactor/hotp.py +9 -1
  16. py2docfx/venv/venv1/Lib/site-packages/cryptography/hazmat/primitives/twofactor/totp.py +5 -0
  17. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/__init__.py +8 -0
  18. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/base.py +4 -415
  19. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/certificate_transparency.py +1 -63
  20. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/extensions.py +286 -5
  21. py2docfx/venv/venv1/Lib/site-packages/cryptography/x509/ocsp.py +4 -338
  22. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/__init__.py +1 -1
  23. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/any.py +39 -0
  24. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/any_pb2.py +3 -3
  25. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/api_pb2.py +3 -3
  26. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/compiler/plugin_pb2.py +3 -3
  27. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pb2.py +108 -108
  28. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/duration.py +100 -0
  29. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/duration_pb2.py +3 -3
  30. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/empty_pb2.py +3 -3
  31. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/field_mask_pb2.py +3 -3
  32. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_message.py +7 -4
  33. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/well_known_types.py +1 -1
  34. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/pyext/cpp_message.py +1 -1
  35. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/runtime_version.py +16 -9
  36. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/service.py +4 -4
  37. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/source_context_pb2.py +3 -3
  38. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/struct_pb2.py +3 -3
  39. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/text_format.py +1 -1
  40. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/timestamp.py +112 -0
  41. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/timestamp_pb2.py +3 -3
  42. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/type_pb2.py +3 -3
  43. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/wrappers_pb2.py +3 -3
  44. {py2docfx-0.1.9.dev1927679.dist-info → py2docfx-0.1.9.dev1929227.dist-info}/METADATA +1 -1
  45. {py2docfx-0.1.9.dev1927679.dist-info → py2docfx-0.1.9.dev1929227.dist-info}/RECORD +47 -43
  46. {py2docfx-0.1.9.dev1927679.dist-info → py2docfx-0.1.9.dev1929227.dist-info}/WHEEL +0 -0
  47. {py2docfx-0.1.9.dev1927679.dist-info → py2docfx-0.1.9.dev1929227.dist-info}/top_level.txt +0 -0
@@ -892,9 +892,7 @@ class PolicyInformation:
892
892
 
893
893
  def __hash__(self) -> int:
894
894
  if self.policy_qualifiers is not None:
895
- pq: tuple[str | UserNotice, ...] | None = tuple(
896
- self.policy_qualifiers
897
- )
895
+ pq = tuple(self.policy_qualifiers)
898
896
  else:
899
897
  pq = None
900
898
 
@@ -1988,10 +1986,12 @@ class IssuingDistributionPoint(ExtensionType):
1988
1986
  "must all be boolean."
1989
1987
  )
1990
1988
 
1989
+ # Per RFC5280 Section 5.2.5, the Issuing Distribution Point extension
1990
+ # in a CRL can have only one of onlyContainsUserCerts,
1991
+ # onlyContainsCACerts, onlyContainsAttributeCerts set to TRUE.
1991
1992
  crl_constraints = [
1992
1993
  only_contains_user_certs,
1993
1994
  only_contains_ca_certs,
1994
- indirect_crl,
1995
1995
  only_contains_attribute_certs,
1996
1996
  ]
1997
1997
 
@@ -1999,7 +1999,7 @@ class IssuingDistributionPoint(ExtensionType):
1999
1999
  raise ValueError(
2000
2000
  "Only one of the following can be set to True: "
2001
2001
  "only_contains_user_certs, only_contains_ca_certs, "
2002
- "indirect_crl, only_contains_attribute_certs"
2002
+ "only_contains_attribute_certs"
2003
2003
  )
2004
2004
 
2005
2005
  if not any(
@@ -2162,6 +2162,287 @@ class MSCertificateTemplate(ExtensionType):
2162
2162
  return rust_x509.encode_extension_value(self)
2163
2163
 
2164
2164
 
2165
+ class NamingAuthority:
2166
+ def __init__(
2167
+ self,
2168
+ id: ObjectIdentifier | None,
2169
+ url: str | None,
2170
+ text: str | None,
2171
+ ) -> None:
2172
+ if id is not None and not isinstance(id, ObjectIdentifier):
2173
+ raise TypeError("id must be an ObjectIdentifier")
2174
+
2175
+ if url is not None and not isinstance(url, str):
2176
+ raise TypeError("url must be a str")
2177
+
2178
+ if text is not None and not isinstance(text, str):
2179
+ raise TypeError("text must be a str")
2180
+
2181
+ self._id = id
2182
+ self._url = url
2183
+ self._text = text
2184
+
2185
+ @property
2186
+ def id(self) -> ObjectIdentifier | None:
2187
+ return self._id
2188
+
2189
+ @property
2190
+ def url(self) -> str | None:
2191
+ return self._url
2192
+
2193
+ @property
2194
+ def text(self) -> str | None:
2195
+ return self._text
2196
+
2197
+ def __repr__(self) -> str:
2198
+ return (
2199
+ f"<NamingAuthority("
2200
+ f"id={self.id}, url={self.url}, text={self.text})>"
2201
+ )
2202
+
2203
+ def __eq__(self, other: object) -> bool:
2204
+ if not isinstance(other, NamingAuthority):
2205
+ return NotImplemented
2206
+
2207
+ return (
2208
+ self.id == other.id
2209
+ and self.url == other.url
2210
+ and self.text == other.text
2211
+ )
2212
+
2213
+ def __hash__(self) -> int:
2214
+ return hash(
2215
+ (
2216
+ self.id,
2217
+ self.url,
2218
+ self.text,
2219
+ )
2220
+ )
2221
+
2222
+
2223
+ class ProfessionInfo:
2224
+ def __init__(
2225
+ self,
2226
+ naming_authority: NamingAuthority | None,
2227
+ profession_items: typing.Iterable[str],
2228
+ profession_oids: typing.Iterable[ObjectIdentifier] | None,
2229
+ registration_number: str | None,
2230
+ add_profession_info: bytes | None,
2231
+ ) -> None:
2232
+ if naming_authority is not None and not isinstance(
2233
+ naming_authority, NamingAuthority
2234
+ ):
2235
+ raise TypeError("naming_authority must be a NamingAuthority")
2236
+
2237
+ profession_items = list(profession_items)
2238
+ if not all(isinstance(item, str) for item in profession_items):
2239
+ raise TypeError(
2240
+ "Every item in the profession_items list must be a str"
2241
+ )
2242
+
2243
+ if profession_oids is not None:
2244
+ profession_oids = list(profession_oids)
2245
+ if not all(
2246
+ isinstance(oid, ObjectIdentifier) for oid in profession_oids
2247
+ ):
2248
+ raise TypeError(
2249
+ "Every item in the profession_oids list must be an "
2250
+ "ObjectIdentifier"
2251
+ )
2252
+
2253
+ if registration_number is not None and not isinstance(
2254
+ registration_number, str
2255
+ ):
2256
+ raise TypeError("registration_number must be a str")
2257
+
2258
+ if add_profession_info is not None and not isinstance(
2259
+ add_profession_info, bytes
2260
+ ):
2261
+ raise TypeError("add_profession_info must be bytes")
2262
+
2263
+ self._naming_authority = naming_authority
2264
+ self._profession_items = profession_items
2265
+ self._profession_oids = profession_oids
2266
+ self._registration_number = registration_number
2267
+ self._add_profession_info = add_profession_info
2268
+
2269
+ @property
2270
+ def naming_authority(self) -> NamingAuthority | None:
2271
+ return self._naming_authority
2272
+
2273
+ @property
2274
+ def profession_items(self) -> list[str]:
2275
+ return self._profession_items
2276
+
2277
+ @property
2278
+ def profession_oids(self) -> list[ObjectIdentifier] | None:
2279
+ return self._profession_oids
2280
+
2281
+ @property
2282
+ def registration_number(self) -> str | None:
2283
+ return self._registration_number
2284
+
2285
+ @property
2286
+ def add_profession_info(self) -> bytes | None:
2287
+ return self._add_profession_info
2288
+
2289
+ def __repr__(self) -> str:
2290
+ return (
2291
+ f"<ProfessionInfo(naming_authority={self.naming_authority}, "
2292
+ f"profession_items={self.profession_items}, "
2293
+ f"profession_oids={self.profession_oids}, "
2294
+ f"registration_number={self.registration_number}, "
2295
+ f"add_profession_info={self.add_profession_info!r})>"
2296
+ )
2297
+
2298
+ def __eq__(self, other: object) -> bool:
2299
+ if not isinstance(other, ProfessionInfo):
2300
+ return NotImplemented
2301
+
2302
+ return (
2303
+ self.naming_authority == other.naming_authority
2304
+ and self.profession_items == other.profession_items
2305
+ and self.profession_oids == other.profession_oids
2306
+ and self.registration_number == other.registration_number
2307
+ and self.add_profession_info == other.add_profession_info
2308
+ )
2309
+
2310
+ def __hash__(self) -> int:
2311
+ if self.profession_oids is not None:
2312
+ profession_oids = tuple(self.profession_oids)
2313
+ else:
2314
+ profession_oids = None
2315
+ return hash(
2316
+ (
2317
+ self.naming_authority,
2318
+ tuple(self.profession_items),
2319
+ profession_oids,
2320
+ self.registration_number,
2321
+ self.add_profession_info,
2322
+ )
2323
+ )
2324
+
2325
+
2326
+ class Admission:
2327
+ def __init__(
2328
+ self,
2329
+ admission_authority: GeneralName | None,
2330
+ naming_authority: NamingAuthority | None,
2331
+ profession_infos: typing.Iterable[ProfessionInfo],
2332
+ ) -> None:
2333
+ if admission_authority is not None and not isinstance(
2334
+ admission_authority, GeneralName
2335
+ ):
2336
+ raise TypeError("admission_authority must be a GeneralName")
2337
+
2338
+ if naming_authority is not None and not isinstance(
2339
+ naming_authority, NamingAuthority
2340
+ ):
2341
+ raise TypeError("naming_authority must be a NamingAuthority")
2342
+
2343
+ profession_infos = list(profession_infos)
2344
+ if not all(
2345
+ isinstance(info, ProfessionInfo) for info in profession_infos
2346
+ ):
2347
+ raise TypeError(
2348
+ "Every item in the profession_infos list must be a "
2349
+ "ProfessionInfo"
2350
+ )
2351
+
2352
+ self._admission_authority = admission_authority
2353
+ self._naming_authority = naming_authority
2354
+ self._profession_infos = profession_infos
2355
+
2356
+ @property
2357
+ def admission_authority(self) -> GeneralName | None:
2358
+ return self._admission_authority
2359
+
2360
+ @property
2361
+ def naming_authority(self) -> NamingAuthority | None:
2362
+ return self._naming_authority
2363
+
2364
+ @property
2365
+ def profession_infos(self) -> list[ProfessionInfo]:
2366
+ return self._profession_infos
2367
+
2368
+ def __repr__(self) -> str:
2369
+ return (
2370
+ f"<Admission(admission_authority={self.admission_authority}, "
2371
+ f"naming_authority={self.naming_authority}, "
2372
+ f"profession_infos={self.profession_infos})>"
2373
+ )
2374
+
2375
+ def __eq__(self, other: object) -> bool:
2376
+ if not isinstance(other, Admission):
2377
+ return NotImplemented
2378
+
2379
+ return (
2380
+ self.admission_authority == other.admission_authority
2381
+ and self.naming_authority == other.naming_authority
2382
+ and self.profession_infos == other.profession_infos
2383
+ )
2384
+
2385
+ def __hash__(self) -> int:
2386
+ return hash(
2387
+ (
2388
+ self.admission_authority,
2389
+ self.naming_authority,
2390
+ tuple(self.profession_infos),
2391
+ )
2392
+ )
2393
+
2394
+
2395
+ class Admissions(ExtensionType):
2396
+ oid = ExtensionOID.ADMISSIONS
2397
+
2398
+ def __init__(
2399
+ self,
2400
+ authority: GeneralName | None,
2401
+ admissions: typing.Iterable[Admission],
2402
+ ) -> None:
2403
+ if authority is not None and not isinstance(authority, GeneralName):
2404
+ raise TypeError("authority must be a GeneralName")
2405
+
2406
+ admissions = list(admissions)
2407
+ if not all(
2408
+ isinstance(admission, Admission) for admission in admissions
2409
+ ):
2410
+ raise TypeError(
2411
+ "Every item in the contents_of_admissions list must be an "
2412
+ "Admission"
2413
+ )
2414
+
2415
+ self._authority = authority
2416
+ self._admissions = admissions
2417
+
2418
+ __len__, __iter__, __getitem__ = _make_sequence_methods("_admissions")
2419
+
2420
+ @property
2421
+ def authority(self) -> GeneralName | None:
2422
+ return self._authority
2423
+
2424
+ def __repr__(self) -> str:
2425
+ return (
2426
+ f"<Admissions(authority={self._authority}, "
2427
+ f"admissions={self._admissions})>"
2428
+ )
2429
+
2430
+ def __eq__(self, other: object) -> bool:
2431
+ if not isinstance(other, Admissions):
2432
+ return NotImplemented
2433
+
2434
+ return (
2435
+ self.authority == other.authority
2436
+ and self._admissions == other._admissions
2437
+ )
2438
+
2439
+ def __hash__(self) -> int:
2440
+ return hash((self.authority, tuple(self._admissions)))
2441
+
2442
+ def public_bytes(self) -> bytes:
2443
+ return rust_x509.encode_extension_value(self)
2444
+
2445
+
2165
2446
  class UnrecognizedExtension(ExtensionType):
2166
2447
  def __init__(self, oid: ObjectIdentifier, value: bytes) -> None:
2167
2448
  if not isinstance(oid, ObjectIdentifier):
@@ -4,13 +4,12 @@
4
4
 
5
5
  from __future__ import annotations
6
6
 
7
- import abc
8
7
  import datetime
9
8
  import typing
10
9
 
11
10
  from cryptography import utils, x509
12
11
  from cryptography.hazmat.bindings._rust import ocsp
13
- from cryptography.hazmat.primitives import hashes, serialization
12
+ from cryptography.hazmat.primitives import hashes
14
13
  from cryptography.hazmat.primitives.asymmetric.types import (
15
14
  CertificateIssuerPrivateKeyTypes,
16
15
  )
@@ -127,342 +126,9 @@ class _SingleResponse:
127
126
  self._revocation_reason = revocation_reason
128
127
 
129
128
 
130
- class OCSPRequest(metaclass=abc.ABCMeta):
131
- @property
132
- @abc.abstractmethod
133
- def issuer_key_hash(self) -> bytes:
134
- """
135
- The hash of the issuer public key
136
- """
137
-
138
- @property
139
- @abc.abstractmethod
140
- def issuer_name_hash(self) -> bytes:
141
- """
142
- The hash of the issuer name
143
- """
144
-
145
- @property
146
- @abc.abstractmethod
147
- def hash_algorithm(self) -> hashes.HashAlgorithm:
148
- """
149
- The hash algorithm used in the issuer name and key hashes
150
- """
151
-
152
- @property
153
- @abc.abstractmethod
154
- def serial_number(self) -> int:
155
- """
156
- The serial number of the cert whose status is being checked
157
- """
158
-
159
- @abc.abstractmethod
160
- def public_bytes(self, encoding: serialization.Encoding) -> bytes:
161
- """
162
- Serializes the request to DER
163
- """
164
-
165
- @property
166
- @abc.abstractmethod
167
- def extensions(self) -> x509.Extensions:
168
- """
169
- The list of request extensions. Not single request extensions.
170
- """
171
-
172
-
173
- class OCSPSingleResponse(metaclass=abc.ABCMeta):
174
- @property
175
- @abc.abstractmethod
176
- def certificate_status(self) -> OCSPCertStatus:
177
- """
178
- The status of the certificate (an element from the OCSPCertStatus enum)
179
- """
180
-
181
- @property
182
- @abc.abstractmethod
183
- def revocation_time(self) -> datetime.datetime | None:
184
- """
185
- The date of when the certificate was revoked or None if not
186
- revoked.
187
- """
188
-
189
- @property
190
- @abc.abstractmethod
191
- def revocation_time_utc(self) -> datetime.datetime | None:
192
- """
193
- The date of when the certificate was revoked or None if not
194
- revoked. Represented as a non-naive UTC datetime.
195
- """
196
-
197
- @property
198
- @abc.abstractmethod
199
- def revocation_reason(self) -> x509.ReasonFlags | None:
200
- """
201
- The reason the certificate was revoked or None if not specified or
202
- not revoked.
203
- """
204
-
205
- @property
206
- @abc.abstractmethod
207
- def this_update(self) -> datetime.datetime:
208
- """
209
- The most recent time at which the status being indicated is known by
210
- the responder to have been correct
211
- """
212
-
213
- @property
214
- @abc.abstractmethod
215
- def this_update_utc(self) -> datetime.datetime:
216
- """
217
- The most recent time at which the status being indicated is known by
218
- the responder to have been correct. Represented as a non-naive UTC
219
- datetime.
220
- """
221
-
222
- @property
223
- @abc.abstractmethod
224
- def next_update(self) -> datetime.datetime | None:
225
- """
226
- The time when newer information will be available
227
- """
228
-
229
- @property
230
- @abc.abstractmethod
231
- def next_update_utc(self) -> datetime.datetime | None:
232
- """
233
- The time when newer information will be available. Represented as a
234
- non-naive UTC datetime.
235
- """
236
-
237
- @property
238
- @abc.abstractmethod
239
- def issuer_key_hash(self) -> bytes:
240
- """
241
- The hash of the issuer public key
242
- """
243
-
244
- @property
245
- @abc.abstractmethod
246
- def issuer_name_hash(self) -> bytes:
247
- """
248
- The hash of the issuer name
249
- """
250
-
251
- @property
252
- @abc.abstractmethod
253
- def hash_algorithm(self) -> hashes.HashAlgorithm:
254
- """
255
- The hash algorithm used in the issuer name and key hashes
256
- """
257
-
258
- @property
259
- @abc.abstractmethod
260
- def serial_number(self) -> int:
261
- """
262
- The serial number of the cert whose status is being checked
263
- """
264
-
265
-
266
- class OCSPResponse(metaclass=abc.ABCMeta):
267
- @property
268
- @abc.abstractmethod
269
- def responses(self) -> typing.Iterator[OCSPSingleResponse]:
270
- """
271
- An iterator over the individual SINGLERESP structures in the
272
- response
273
- """
274
-
275
- @property
276
- @abc.abstractmethod
277
- def response_status(self) -> OCSPResponseStatus:
278
- """
279
- The status of the response. This is a value from the OCSPResponseStatus
280
- enumeration
281
- """
282
-
283
- @property
284
- @abc.abstractmethod
285
- def signature_algorithm_oid(self) -> x509.ObjectIdentifier:
286
- """
287
- The ObjectIdentifier of the signature algorithm
288
- """
289
-
290
- @property
291
- @abc.abstractmethod
292
- def signature_hash_algorithm(
293
- self,
294
- ) -> hashes.HashAlgorithm | None:
295
- """
296
- Returns a HashAlgorithm corresponding to the type of the digest signed
297
- """
298
-
299
- @property
300
- @abc.abstractmethod
301
- def signature(self) -> bytes:
302
- """
303
- The signature bytes
304
- """
305
-
306
- @property
307
- @abc.abstractmethod
308
- def tbs_response_bytes(self) -> bytes:
309
- """
310
- The tbsResponseData bytes
311
- """
312
-
313
- @property
314
- @abc.abstractmethod
315
- def certificates(self) -> list[x509.Certificate]:
316
- """
317
- A list of certificates used to help build a chain to verify the OCSP
318
- response. This situation occurs when the OCSP responder uses a delegate
319
- certificate.
320
- """
321
-
322
- @property
323
- @abc.abstractmethod
324
- def responder_key_hash(self) -> bytes | None:
325
- """
326
- The responder's key hash or None
327
- """
328
-
329
- @property
330
- @abc.abstractmethod
331
- def responder_name(self) -> x509.Name | None:
332
- """
333
- The responder's Name or None
334
- """
335
-
336
- @property
337
- @abc.abstractmethod
338
- def produced_at(self) -> datetime.datetime:
339
- """
340
- The time the response was produced
341
- """
342
-
343
- @property
344
- @abc.abstractmethod
345
- def produced_at_utc(self) -> datetime.datetime:
346
- """
347
- The time the response was produced. Represented as a non-naive UTC
348
- datetime.
349
- """
350
-
351
- @property
352
- @abc.abstractmethod
353
- def certificate_status(self) -> OCSPCertStatus:
354
- """
355
- The status of the certificate (an element from the OCSPCertStatus enum)
356
- """
357
-
358
- @property
359
- @abc.abstractmethod
360
- def revocation_time(self) -> datetime.datetime | None:
361
- """
362
- The date of when the certificate was revoked or None if not
363
- revoked.
364
- """
365
-
366
- @property
367
- @abc.abstractmethod
368
- def revocation_time_utc(self) -> datetime.datetime | None:
369
- """
370
- The date of when the certificate was revoked or None if not
371
- revoked. Represented as a non-naive UTC datetime.
372
- """
373
-
374
- @property
375
- @abc.abstractmethod
376
- def revocation_reason(self) -> x509.ReasonFlags | None:
377
- """
378
- The reason the certificate was revoked or None if not specified or
379
- not revoked.
380
- """
381
-
382
- @property
383
- @abc.abstractmethod
384
- def this_update(self) -> datetime.datetime:
385
- """
386
- The most recent time at which the status being indicated is known by
387
- the responder to have been correct
388
- """
389
-
390
- @property
391
- @abc.abstractmethod
392
- def this_update_utc(self) -> datetime.datetime:
393
- """
394
- The most recent time at which the status being indicated is known by
395
- the responder to have been correct. Represented as a non-naive UTC
396
- datetime.
397
- """
398
-
399
- @property
400
- @abc.abstractmethod
401
- def next_update(self) -> datetime.datetime | None:
402
- """
403
- The time when newer information will be available
404
- """
405
-
406
- @property
407
- @abc.abstractmethod
408
- def next_update_utc(self) -> datetime.datetime | None:
409
- """
410
- The time when newer information will be available. Represented as a
411
- non-naive UTC datetime.
412
- """
413
-
414
- @property
415
- @abc.abstractmethod
416
- def issuer_key_hash(self) -> bytes:
417
- """
418
- The hash of the issuer public key
419
- """
420
-
421
- @property
422
- @abc.abstractmethod
423
- def issuer_name_hash(self) -> bytes:
424
- """
425
- The hash of the issuer name
426
- """
427
-
428
- @property
429
- @abc.abstractmethod
430
- def hash_algorithm(self) -> hashes.HashAlgorithm:
431
- """
432
- The hash algorithm used in the issuer name and key hashes
433
- """
434
-
435
- @property
436
- @abc.abstractmethod
437
- def serial_number(self) -> int:
438
- """
439
- The serial number of the cert whose status is being checked
440
- """
441
-
442
- @property
443
- @abc.abstractmethod
444
- def extensions(self) -> x509.Extensions:
445
- """
446
- The list of response extensions. Not single response extensions.
447
- """
448
-
449
- @property
450
- @abc.abstractmethod
451
- def single_extensions(self) -> x509.Extensions:
452
- """
453
- The list of single response extensions. Not response extensions.
454
- """
455
-
456
- @abc.abstractmethod
457
- def public_bytes(self, encoding: serialization.Encoding) -> bytes:
458
- """
459
- Serializes the response to DER
460
- """
461
-
462
-
463
- OCSPRequest.register(ocsp.OCSPRequest)
464
- OCSPResponse.register(ocsp.OCSPResponse)
465
- OCSPSingleResponse.register(ocsp.OCSPSingleResponse)
129
+ OCSPRequest = ocsp.OCSPRequest
130
+ OCSPResponse = ocsp.OCSPResponse
131
+ OCSPSingleResponse = ocsp.OCSPSingleResponse
466
132
 
467
133
 
468
134
  class OCSPRequestBuilder:
@@ -7,4 +7,4 @@
7
7
 
8
8
  # Copyright 2007 Google Inc. All Rights Reserved.
9
9
 
10
- __version__ = '5.28.3'
10
+ __version__ = '5.29.0'