--- /dev/null
+from enum import Enum
+from typing import Any, Iterable
+
+from cryptography.hazmat.primitives.asymmetric.ec import EllipticCurvePrivateKey
+from cryptography.hazmat.primitives.asymmetric.rsa import RSAPrivateKey
+from cryptography.hazmat.primitives.hashes import SHA1, SHA224, SHA256, SHA384, SHA512
+from cryptography.hazmat.primitives.serialization import Encoding
+from cryptography.x509 import Certificate
+
+def load_pem_pkcs7_certificates(data: bytes) -> list[Certificate]: ...
+def load_der_pkcs7_certificates(data: bytes) -> list[Certificate]: ...
+
+class PKCS7Options(Enum):
+ Text: str
+ Binary: str
+ DetachedSignature: str
+ NoCapabilities: str
+ NoAttributes: str
+ NoCerts: str
+
+class PKCS7SignatureBuilder:
+ def set_data(self, data: bytes) -> PKCS7SignatureBuilder: ...
+ def add_signer(
+ self,
+ certificate: Certificate,
+ private_key: RSAPrivateKey | EllipticCurvePrivateKey,
+ hash_algorithm: SHA1 | SHA224 | SHA256 | SHA384 | SHA512,
+ ) -> PKCS7SignatureBuilder: ...
+ def add_certificate(self, certificate: Certificate) -> PKCS7SignatureBuilder: ...
+ def sign(self, encoding: Encoding, options: Iterable[PKCS7Options], backend: Any | None = ...) -> bytes: ...