class documentation

Signature vendor that uses gpgsm (GnuPG for S/MIME) for X.509 signatures.

Supports git config options: - gpg.x509.program: Path to gpgsm command (defaults to 'gpgsm')

Class Method available Check if the gpgsm command is available.
Class Method from_config Create an X.509 vendor from git configuration.
Method __init__ Initialize the X.509 signature vendor.
Method sign Sign data with an X.509 certificate using gpgsm.
Method verify Verify an X.509 signature using gpgsm.
Instance Variable gpgsm_command Undocumented

Inherited from SignatureVerifier (via SignatureSigner):

Instance Variable keyids Undocumented
def available(cls) -> bool:

Check if the gpgsm command is available.

Returns
boolTrue if gpgsm command is in PATH, False otherwise
def from_config(cls, config: Config | None = None, keyids: Iterable[str] | None = None) -> X509SignatureVendor:

Create an X.509 vendor from git configuration.

Parameters
config:Config | NoneGit configuration to read settings from
keyids:Iterable[str] | NoneOptional iterable of trusted certificate IDs for verification
Returns
X509SignatureVendorX509SignatureVendor instance configured from the config
def __init__(self, gpgsm_command: str = 'gpgsm', keyids: Iterable[str] | None = None):

Initialize the X.509 signature vendor.

Parameters
gpgsm_command:strPath to the gpgsm command (default: "gpgsm")
keyids:Iterable[str] | NoneOptional iterable of trusted certificate IDs for verification. If provided, only signatures from these certificates will be trusted.
def sign(self, data: bytes, keyid: str | None = None) -> bytes:

Sign data with an X.509 certificate using gpgsm.

Parameters
data:bytesThe data to sign
keyid:str | NoneOptional certificate ID to use for signing. If not specified, the default certificate will be used.
Returns
bytesThe signature as bytes
Raises
subprocess.CalledProcessErrorif gpgsm command fails
def verify(self, data: bytes, signature: bytes):

Verify an X.509 signature using gpgsm.

Parameters
data:bytesThe data that was signed
signature:bytesThe signature to verify
Raises
BadSignatureif gpgsm signature verification fails
UntrustedSignatureif signature was not created by a trusted certificate
gpgsm_command =

Undocumented