Skip to content

Commit beb0cc2

Browse files
authored
Merge pull request #111 from gilles-peskine-arm/psa-handle-param-order
Pass handle parameter last on key creation
2 parents 1fe90fa + 049c753 commit beb0cc2

File tree

7 files changed

+157
-154
lines changed

7 files changed

+157
-154
lines changed

include/psa/crypto.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -631,9 +631,9 @@ psa_status_t psa_close_key(psa_key_handle_t handle);
631631
* results in this error code.
632632
*/
633633
psa_status_t psa_import_key(const psa_key_attributes_t *attributes,
634-
psa_key_handle_t *handle,
635634
const uint8_t *data,
636-
size_t data_length);
635+
size_t data_length,
636+
psa_key_handle_t *handle);
637637

638638
/**
639639
* \brief Destroy a key.
@@ -3068,9 +3068,9 @@ psa_status_t psa_generator_read(psa_crypto_generator_t *generator,
30683068
* The generator's capacity is decreased by the number of bytes read.
30693069
*
30703070
* \param[in] attributes The attributes for the new key.
3071+
* \param[in,out] generator The generator object to read from.
30713072
* \param[out] handle On success, a handle to the newly created key.
30723073
* \c 0 on failure.
3073-
* \param[in,out] generator The generator object to read from.
30743074
*
30753075
* \retval #PSA_SUCCESS
30763076
* Success.
@@ -3099,8 +3099,8 @@ psa_status_t psa_generator_read(psa_crypto_generator_t *generator,
30993099
* results in this error code.
31003100
*/
31013101
psa_status_t psa_generate_derived_key(const psa_key_attributes_t *attributes,
3102-
psa_key_handle_t *handle,
3103-
psa_crypto_generator_t *generator);
3102+
psa_crypto_generator_t *generator,
3103+
psa_key_handle_t *handle);
31043104

31053105
/** Abort a generator.
31063106
*
@@ -3294,10 +3294,10 @@ psa_status_t psa_key_derivation_input_key(psa_crypto_generator_t *generator,
32943294
* public key type corresponding to the type of
32953295
* private_key. That is, this function performs the
32963296
* equivalent of
3297-
* #psa_import_key(`internal_public_key_handle`,
3298-
* #PSA_KEY_TYPE_PUBLIC_KEY_OF_KEYPAIR(`private_key_type`),
3297+
* #psa_import_key(...,
32993298
* `peer_key`, `peer_key_length`) where
3300-
* `private_key_type` is the type of `private_key`.
3299+
* with key attributes indicating the public key
3300+
* type corresponding to the type of `private_key`.
33013301
* For example, for EC keys, this means that peer_key
33023302
* is interpreted as a point on the curve that the
33033303
* private key is on. The standard formats for public

library/psa_crypto.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1533,9 +1533,9 @@ static psa_status_t psa_check_key_slot_attributes(
15331533
}
15341534

15351535
psa_status_t psa_import_key( const psa_key_attributes_t *attributes,
1536-
psa_key_handle_t *handle,
15371536
const uint8_t *data,
1538-
size_t data_length )
1537+
size_t data_length,
1538+
psa_key_handle_t *handle )
15391539
{
15401540
psa_status_t status;
15411541
psa_key_slot_t *slot = NULL;
@@ -4409,8 +4409,8 @@ static psa_status_t psa_generate_derived_key_internal(
44094409
}
44104410

44114411
psa_status_t psa_generate_derived_key( const psa_key_attributes_t *attributes,
4412-
psa_key_handle_t *handle,
4413-
psa_crypto_generator_t *generator )
4412+
psa_crypto_generator_t *generator,
4413+
psa_key_handle_t *handle )
44144414
{
44154415
psa_status_t status;
44164416
psa_key_slot_t *slot = NULL;

programs/psa/key_ladder_demo.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -252,8 +252,8 @@ static psa_status_t import_key_from_file( psa_key_usage_t usage,
252252
psa_set_key_usage_flags( &attributes, usage );
253253
psa_set_key_algorithm( &attributes, alg );
254254
psa_set_key_type( &attributes, PSA_KEY_TYPE_DERIVE );
255-
PSA_CHECK( psa_import_key( &attributes, master_key_handle,
256-
key_data, key_size ) );
255+
PSA_CHECK( psa_import_key( &attributes, key_data, key_size,
256+
master_key_handle ) );
257257
exit:
258258
if( key_file != NULL )
259259
fclose( key_file );
@@ -306,8 +306,8 @@ static psa_status_t derive_key_ladder( const char *ladder[],
306306
*key_handle = 0;
307307
/* Use the generator obtained from the parent key to create
308308
* the next intermediate key. */
309-
PSA_CHECK( psa_generate_derived_key( &attributes, key_handle,
310-
&generator ) );
309+
PSA_CHECK( psa_generate_derived_key( &attributes, &generator,
310+
key_handle ) );
311311
PSA_CHECK( psa_generator_abort( &generator ) );
312312
}
313313

@@ -343,8 +343,8 @@ static psa_status_t derive_wrapping_key( psa_key_usage_t usage,
343343
WRAPPING_KEY_SALT, WRAPPING_KEY_SALT_LENGTH,
344344
NULL, 0,
345345
PSA_BITS_TO_BYTES( WRAPPING_KEY_BITS ) ) );
346-
PSA_CHECK( psa_generate_derived_key( &attributes, wrapping_key_handle,
347-
&generator ) );
346+
PSA_CHECK( psa_generate_derived_key( &attributes, &generator,
347+
wrapping_key_handle ) );
348348

349349
exit:
350350
psa_generator_abort( &generator );

0 commit comments

Comments
 (0)