Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/securesystemslib/signer/__init__.py: 100%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

17 statements  

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._constants import ( 

12 ECDSA_SHA2_NISTP256, 

13 ECDSA_SHA2_NISTP384, 

14 ECDSA_SHA2_NISTP521, 

15 ED25519, 

16 KEY_TYPE_ECDSA, 

17 KEY_TYPE_ED25519, 

18 KEY_TYPE_MLDSA, 

19 KEY_TYPE_RSA, 

20 MLDSA_44_1, 

21 MLDSA_65_1, 

22 MLDSA_87_1, 

23 RSA_PKCS1V15_SHA224, 

24 RSA_PKCS1V15_SHA256, 

25 RSA_PKCS1V15_SHA384, 

26 RSA_PKCS1V15_SHA512, 

27 RSASSA_PSS_SHA224, 

28 RSASSA_PSS_SHA256, 

29 RSASSA_PSS_SHA384, 

30 RSASSA_PSS_SHA512, 

31) 

32from securesystemslib.signer._crypto_signer import CryptoSigner 

33from securesystemslib.signer._gcp_signer import GCPSigner 

34from securesystemslib.signer._gpg_signer import GPGKey, GPGSigner 

35from securesystemslib.signer._hsm_signer import HSMSigner 

36from securesystemslib.signer._key import KEY_FOR_TYPE_AND_SCHEME, Key, SSlibKey 

37from securesystemslib.signer._signature import Signature 

38from securesystemslib.signer._signer import ( 

39 SIGNER_FOR_URI_SCHEME, 

40 SecretsHandler, 

41 Signer, 

42) 

43from securesystemslib.signer._sigstore_signer import SigstoreKey, SigstoreSigner 

44from securesystemslib.signer._spx_signer import ( 

45 SpxKey, 

46 SpxSigner, 

47 generate_spx_key_pair, 

48) 

49from securesystemslib.signer._tkey_signer import TKeySigner 

50from securesystemslib.signer._vault_signer import VaultSigner 

51 

52# Register supported private key uri schemes and the Signers implementing them 

53SIGNER_FOR_URI_SCHEME.update( 

54 { 

55 CryptoSigner.SCHEME: CryptoSigner, 

56 GCPSigner.SCHEME: GCPSigner, 

57 HSMSigner.SCHEME: HSMSigner, 

58 GPGSigner.SCHEME: GPGSigner, 

59 AzureSigner.SCHEME: AzureSigner, 

60 AWSSigner.SCHEME: AWSSigner, 

61 VaultSigner.SCHEME: VaultSigner, 

62 TKeySigner.SCHEME: TKeySigner, 

63 } 

64) 

65 

66# Signers with currently unstable metadata formats, not supported by default: 

67# SigstoreSigner, 

68# SpxSigner (also does not yet support private key uri scheme) 

69 

70# Register supported key types and schemes, and the Keys implementing them 

71KEY_FOR_TYPE_AND_SCHEME.update( 

72 { 

73 (KEY_TYPE_ECDSA, ECDSA_SHA2_NISTP256): SSlibKey, 

74 (KEY_TYPE_ECDSA, ECDSA_SHA2_NISTP384): SSlibKey, 

75 (KEY_TYPE_ECDSA, ECDSA_SHA2_NISTP521): SSlibKey, 

76 # Deprecated: legacy keytype strings (keytype == scheme), use KEY_TYPE_ECDSA 

77 (ECDSA_SHA2_NISTP256, ECDSA_SHA2_NISTP256): SSlibKey, 

78 (ECDSA_SHA2_NISTP384, ECDSA_SHA2_NISTP384): SSlibKey, 

79 (ECDSA_SHA2_NISTP521, ECDSA_SHA2_NISTP521): SSlibKey, 

80 (KEY_TYPE_ED25519, ED25519): SSlibKey, 

81 (KEY_TYPE_RSA, RSASSA_PSS_SHA256): SSlibKey, 

82 (KEY_TYPE_RSA, RSASSA_PSS_SHA384): SSlibKey, 

83 (KEY_TYPE_RSA, RSASSA_PSS_SHA512): SSlibKey, 

84 (KEY_TYPE_RSA, RSA_PKCS1V15_SHA256): SSlibKey, 

85 (KEY_TYPE_RSA, RSA_PKCS1V15_SHA384): SSlibKey, 

86 (KEY_TYPE_RSA, RSA_PKCS1V15_SHA512): SSlibKey, 

87 (KEY_TYPE_RSA, "pgp+rsa-pkcsv1.5"): GPGKey, 

88 ("dsa", "pgp+dsa-fips-180-2"): GPGKey, 

89 ("eddsa", "pgp+eddsa-ed25519"): GPGKey, 

90 } 

91) 

92 

93# Keys with currently unstable metadata formats, not supported by default: 

94# (KEY_TYPE_MLDSA, MLDSA_44_1): SSlibKey, # ML-DSA keytype defined in https://github.com/theupdateframework/taps/blob/master/tap21.md 

95# (KEY_TYPE_MLDSA, MLDSA_65_1): SSlibKey, 

96# (KEY_TYPE_MLDSA, MLDSA_87_1): SSlibKey, 

97# ("sphincs", "sphincs-shake-128s"): SpxKey, 

98# ("sigstore-oidc", "Fulcio"): SigstoreKey,