2 from typing import Any, Iterable
4 from cryptography.hazmat.primitives.asymmetric.ec import EllipticCurvePrivateKey
5 from cryptography.hazmat.primitives.asymmetric.rsa import RSAPrivateKey
6 from cryptography.hazmat.primitives.hashes import SHA1, SHA224, SHA256, SHA384, SHA512
7 from cryptography.hazmat.primitives.serialization import Encoding
8 from cryptography.x509 import Certificate
10 def load_pem_pkcs7_certificates(data: bytes) -> list[Certificate]: ...
11 def load_der_pkcs7_certificates(data: bytes) -> list[Certificate]: ...
13 class PKCS7Options(Enum):
16 DetachedSignature: str
21 class PKCS7SignatureBuilder:
22 def set_data(self, data: bytes) -> PKCS7SignatureBuilder: ...
25 certificate: Certificate,
26 private_key: RSAPrivateKey | EllipticCurvePrivateKey,
27 hash_algorithm: SHA1 | SHA224 | SHA256 | SHA384 | SHA512,
28 ) -> PKCS7SignatureBuilder: ...
29 def add_certificate(self, certificate: Certificate) -> PKCS7SignatureBuilder: ...
30 def sign(self, encoding: Encoding, options: Iterable[PKCS7Options], backend: Any | None = ...) -> bytes: ...