@@ -141,8 +141,9 @@ def create_key(
141
141
result = call_moto (context )
142
142
143
143
# generate keypair for signing, if this is a SIGN_VERIFY key
144
- key_usage = create_key_request .get ("KeyUsage" )
145
- if key_usage == "SIGN_VERIFY" :
144
+ key_usage = create_key_request .get ("KeyUsage" , "ENCRYPT_DECRYPT" )
145
+ key_spec = create_key_request .get ("KeySpec" , "SYMMETRIC_DEFAULT" )
146
+ if not (key_usage == "ENCRYPT_DECRYPT" and key_spec == "SYMMETRIC_DEFAULT" ):
146
147
create_key_request ["KeyId" ] = result ["KeyMetadata" ]["KeyId" ]
147
148
_generate_data_key_pair (create_key_request , create_cipher = False )
148
149
@@ -268,6 +269,7 @@ def list_retirable_grants(
268
269
269
270
return ListGrantsResponse (Grants = in_limit , Truncated = True , NextMarker = marker_id )
270
271
272
+ @handler ("GetPublicKey" )
271
273
def get_public_key (
272
274
self , context : RequestContext , key_id : KeyIdType , grant_tokens : GrantTokenList = None
273
275
) -> GetPublicKeyResponse :
@@ -567,7 +569,7 @@ def _generate_data_key_pair(data, create_cipher=True, add_to_keys=True):
567
569
"KeyId" : key_id ,
568
570
"KeyPairSpec" : key_spec ,
569
571
"KeySpec" : key_spec ,
570
- "KeyUsage" : "SIGN_VERIFY" ,
572
+ "KeyUsage" : data . get ( "KeyUsage" , "ENCRYPT_DECRYPT" ) ,
571
573
"Policy" : data .get ("Policy" ),
572
574
"Region" : region ,
573
575
"Description" : data .get ("Description" ),
0 commit comments