mirror of
				https://github.com/cuberite/polarssl.git
				synced 2025-11-04 04:32:24 -05:00 
			
		
		
		
	Merge pull request #5180 from daverodgman/key_derivation_output_key_error_code
Improve PSA error return code for psa_key_derivation_output_key
This commit is contained in:
		
						commit
						5a57a51ea5
					
				@ -4763,6 +4763,9 @@ psa_status_t psa_key_derivation_output_key( const psa_key_attributes_t *attribut
 | 
			
		||||
    if( psa_get_key_bits( attributes ) == 0 )
 | 
			
		||||
        return( PSA_ERROR_INVALID_ARGUMENT );
 | 
			
		||||
 | 
			
		||||
    if( operation->alg == PSA_ALG_NONE )
 | 
			
		||||
        return( PSA_ERROR_BAD_STATE );
 | 
			
		||||
 | 
			
		||||
    if( ! operation->can_output_key )
 | 
			
		||||
        return( PSA_ERROR_NOT_PERMITTED );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -4262,7 +4262,7 @@ PSA key derivation: HKDF-SHA-256, bad key type, key output
 | 
			
		||||
depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256
 | 
			
		||||
# Whether we get NOT_PERMITTED or BAD_STATE for the output is an implementation
 | 
			
		||||
# detail.
 | 
			
		||||
derive_input:PSA_ALG_HKDF(PSA_ALG_SHA_256):PSA_KEY_DERIVATION_INPUT_SALT:PSA_KEY_TYPE_NONE:"":PSA_SUCCESS:PSA_KEY_DERIVATION_INPUT_SECRET:PSA_KEY_TYPE_RAW_DATA:"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":PSA_ERROR_INVALID_ARGUMENT:PSA_KEY_DERIVATION_INPUT_INFO:PSA_KEY_TYPE_NONE:"":PSA_ERROR_BAD_STATE:PSA_KEY_TYPE_RAW_DATA:PSA_ERROR_NOT_PERMITTED
 | 
			
		||||
derive_input:PSA_ALG_HKDF(PSA_ALG_SHA_256):PSA_KEY_DERIVATION_INPUT_SALT:PSA_KEY_TYPE_NONE:"":PSA_SUCCESS:PSA_KEY_DERIVATION_INPUT_SECRET:PSA_KEY_TYPE_RAW_DATA:"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":PSA_ERROR_INVALID_ARGUMENT:PSA_KEY_DERIVATION_INPUT_INFO:PSA_KEY_TYPE_NONE:"":PSA_ERROR_BAD_STATE:PSA_KEY_TYPE_RAW_DATA:PSA_ERROR_BAD_STATE
 | 
			
		||||
 | 
			
		||||
PSA key derivation: HKDF-SHA-256, direct secret, direct output
 | 
			
		||||
depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256
 | 
			
		||||
 | 
			
		||||
@ -5934,7 +5934,7 @@ void derive_input( int alg_arg,
 | 
			
		||||
    if( output_key_type != PSA_KEY_TYPE_NONE )
 | 
			
		||||
    {
 | 
			
		||||
        psa_reset_key_attributes( &attributes );
 | 
			
		||||
        psa_set_key_type( &attributes, PSA_KEY_TYPE_RAW_DATA );
 | 
			
		||||
        psa_set_key_type( &attributes, output_key_type );
 | 
			
		||||
        psa_set_key_bits( &attributes, 8 );
 | 
			
		||||
        actual_output_status =
 | 
			
		||||
            psa_key_derivation_output_key( &attributes, &operation,
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user