@@ -85,7 +85,9 @@ def create_key() -> Tuple[Key, SSlibSigner]:
8585 return Key .from_securesystemslib_key (sslib_key ), SSlibSigner (sslib_key )
8686
8787
88- key , signer = create_key ()
88+ # Create one signing key for all bins, and one for the delegating targets role.
89+ bins_key , bins_signer = create_key ()
90+ _ , targets_signer = create_key ()
8991
9092# Delegating targets role
9193# -----------------------
@@ -101,16 +103,13 @@ def create_key() -> Tuple[Key, SSlibSigner]:
101103targets = Metadata (Targets (expires = expiration_date ))
102104
103105succinct_roles = SuccinctRoles (
104- keyids = [],
106+ keyids = [bins_key . keyid ],
105107 threshold = THRESHOLD ,
106108 bit_length = BIT_LENGTH ,
107109 name_prefix = NAME_PREFIX ,
108110)
109-
110- # Now we will populate the keyids by using the succinct_roles_keys list.
111111delegations_keys_info : Dict [str , Key ] = {}
112- succinct_roles .keyids .append (key .keyid )
113- delegations_keys_info [key .keyid ] = key
112+ delegations_keys_info [bins_key .keyid ] = bins_key
114113
115114targets .signed .delegations = Delegations (
116115 delegations_keys_info , roles = None , succinct_roles = succinct_roles
@@ -164,15 +163,14 @@ def create_key() -> Tuple[Key, SSlibSigner]:
164163PRETTY = JSONSerializer (compact = False )
165164TMP_DIR = tempfile .mkdtemp (dir = os .getcwd ())
166165
167- # Generate a key for targets we haven't added one up to this point.
168- _ , targets_signer = create_key ()
166+
169167targets .sign (targets_signer )
170168targets .to_file (os .path .join (TMP_DIR , "1.targets.json" ), serializer = PRETTY )
171169
172170for bin_name , bin_target_role in delegated_bins .items ():
173171 file_name = f"1.{ bin_name } .json"
174172 file_path = os .path .join (TMP_DIR , file_name )
175173
176- bin_target_role .sign (signer , append = True )
174+ bin_target_role .sign (bins_signer , append = True )
177175
178176 bin_target_role .to_file (file_path , serializer = PRETTY )
0 commit comments