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,