@ -247,6 +247,29 @@ int hash_parse_string(const char *algo_name, const char *str, uint8_t *result)
return 0 ;
}
int hash_block ( const char * algo_name , const void * data , unsigned int len ,
uint8_t * output , int * output_size )
{
struct hash_algo * algo ;
int ret ;
ret = hash_lookup_algo ( algo_name , & algo ) ;
if ( ret )
return ret ;
if ( output_size & & * output_size < algo - > digest_size ) {
debug ( " Output buffer size %d too small (need %d bytes) " ,
* output_size , algo - > digest_size ) ;
return - ENOSPC ;
}
if ( output_size )
* output_size = algo - > digest_size ;
algo - > hash_func_ws ( data , len , output , algo - > chunk_size ) ;
return 0 ;
}
# if defined(CONFIG_CMD_HASH) || defined(CONFIG_CMD_SHA1SUM) || defined(CONFIG_CMD_CRC32)
/**
* store_result : Store the resulting sum to an address or variable
*
@ -359,7 +382,7 @@ static int parse_verify_sum(struct hash_algo *algo, char *verify_str,
return 0 ;
}
void hash_show ( struct hash_algo * algo , ulong addr , ulong len , uint8_t * output )
static void hash_show ( struct hash_algo * algo , ulong addr , ulong len , uint8_t * output )
{
int i ;
@ -368,28 +391,6 @@ void hash_show(struct hash_algo *algo, ulong addr, ulong len, uint8_t *output)
printf ( " %02x " , output [ i ] ) ;
}
int hash_block ( const char * algo_name , const void * data , unsigned int len ,
uint8_t * output , int * output_size )
{
struct hash_algo * algo ;
int ret ;
ret = hash_lookup_algo ( algo_name , & algo ) ;
if ( ret )
return ret ;
if ( output_size & & * output_size < algo - > digest_size ) {
debug ( " Output buffer size %d too small (need %d bytes) " ,
* output_size , algo - > digest_size ) ;
return - ENOSPC ;
}
if ( output_size )
* output_size = algo - > digest_size ;
algo - > hash_func_ws ( data , len , output , algo - > chunk_size ) ;
return 0 ;
}
int hash_command ( const char * algo_name , int flags , cmd_tbl_t * cmdtp , int flag ,
int argc , char * const argv [ ] )
{
@ -473,3 +474,4 @@ int hash_command(const char *algo_name, int flags, cmd_tbl_t *cmdtp, int flag,
return 0 ;
}
# endif
# endif