1"""
2The Signer API
3
4This module provides extensible interfaces for public keys and signers:
5Some implementations are provided by default but more can be added by users.
6"""
7
8# ruff: noqa: F401
9from securesystemslib.signer._aws_signer import AWSSigner
10from securesystemslib.signer._azure_signer import AzureSigner
11from securesystemslib.signer._crypto_signer import CryptoSigner
12from securesystemslib.signer._gcp_signer import GCPSigner
13from securesystemslib.signer._gpg_signer import GPGKey, GPGSigner
14from securesystemslib.signer._hsm_signer import HSMSigner
15from securesystemslib.signer._key import KEY_FOR_TYPE_AND_SCHEME, Key, SSlibKey
16from securesystemslib.signer._signature import Signature
17from securesystemslib.signer._signer import (
18 SIGNER_FOR_URI_SCHEME,
19 SecretsHandler,
20 Signer,
21)
22from securesystemslib.signer._sigstore_signer import SigstoreKey, SigstoreSigner
23from securesystemslib.signer._spx_signer import (
24 SpxKey,
25 SpxSigner,
26 generate_spx_key_pair,
27)
28from securesystemslib.signer._vault_signer import VaultSigner
29
30# Register supported private key uri schemes and the Signers implementing them
31SIGNER_FOR_URI_SCHEME.update(
32 {
33 CryptoSigner.SCHEME: CryptoSigner,
34 GCPSigner.SCHEME: GCPSigner,
35 HSMSigner.SCHEME: HSMSigner,
36 GPGSigner.SCHEME: GPGSigner,
37 AzureSigner.SCHEME: AzureSigner,
38 AWSSigner.SCHEME: AWSSigner,
39 VaultSigner.SCHEME: VaultSigner,
40 }
41)
42
43# Signers with currently unstable metadata formats, not supported by default:
44# SigstoreSigner,
45# SpxSigner (also does not yet support private key uri scheme)
46
47# Register supported key types and schemes, and the Keys implementing them
48KEY_FOR_TYPE_AND_SCHEME.update(
49 {
50 ("ecdsa", "ecdsa-sha2-nistp256"): SSlibKey,
51 ("ecdsa", "ecdsa-sha2-nistp384"): SSlibKey,
52 ("ecdsa", "ecdsa-sha2-nistp521"): SSlibKey,
53 ("ecdsa-sha2-nistp256", "ecdsa-sha2-nistp256"): SSlibKey,
54 ("ecdsa-sha2-nistp384", "ecdsa-sha2-nistp384"): SSlibKey,
55 ("ecdsa-sha2-nistp521", "ecdsa-sha2-nistp521"): SSlibKey,
56 ("ed25519", "ed25519"): SSlibKey,
57 ("rsa", "rsassa-pss-sha224"): SSlibKey,
58 ("rsa", "rsassa-pss-sha256"): SSlibKey,
59 ("rsa", "rsassa-pss-sha384"): SSlibKey,
60 ("rsa", "rsassa-pss-sha512"): SSlibKey,
61 ("rsa", "rsa-pkcs1v15-sha224"): SSlibKey,
62 ("rsa", "rsa-pkcs1v15-sha256"): SSlibKey,
63 ("rsa", "rsa-pkcs1v15-sha384"): SSlibKey,
64 ("rsa", "rsa-pkcs1v15-sha512"): SSlibKey,
65 ("rsa", "pgp+rsa-pkcsv1.5"): GPGKey,
66 ("dsa", "pgp+dsa-fips-180-2"): GPGKey,
67 ("eddsa", "pgp+eddsa-ed25519"): GPGKey,
68 }
69)
70
71# Keys with currently unstable metadata formats, not supported by default:
72# ("sphincs", "sphincs-shake-128s"): SpxKey,
73# ("sigstore-oidc", "Fulcio"): SigstoreKey,