There is no such an algorithm name as sm3-256. This is an ambiguity caused by the definition of the macro HASH_ALGO_SM3_256. The sed command is only a special case of sm3, so sm3 is used to replace the sm3-256 algorithm name. Signed-off-by: Tianjia Zhang <tianjia.zhang@xxxxxxxxxxxxxxxxx> Reviewed-by: Petr Vorel <pvorel@xxxxxxx> --- src/.gitignore | 1 + src/hash_info.gen | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/.gitignore b/src/.gitignore index 38e8e3c..69d2988 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -1 +1,2 @@ hash_info.h +tmp_hash_info.h diff --git a/src/hash_info.gen b/src/hash_info.gen index 5f7a97f..08d4a94 100755 --- a/src/hash_info.gen +++ b/src/hash_info.gen @@ -84,9 +84,10 @@ echo "};" echo "const char *const hash_algo_name[HASH_ALGO__LAST] = {" sed -n 's/HASH_ALGO_\(.*\),/\1 \L\1\E/p' $HASH_INFO | \ while read a b; do - # Normalize text hash name: if it contains underscore between - # digits replace it with a dash, other underscores are removed. - b=$(echo "$b" | sed "s/\([0-9]\)_\([0-9]\)/\1-\2/g;s/_//g") + # Normalize text hash name: sm3 algorithm name is different from + # the macro definition, which is also the only special case of an + # underscore between digits. Remove all other underscores. + b=$(echo "$b" | sed "s/sm3_256/sm3/g;s/_//g") printf '\t%-26s = "%s",\n' "[HASH_ALGO_$a]" "$b" done echo "};" -- 2.19.1.3.ge56e4f7