[PATCH 1/2] crypto: use SM3 instead of SM3_256

Tianjia Zhang tianjia.zhang at linux.alibaba.com
Tue Oct 19 09:39:49 UTC 2021


Hi Jarkko,

On 10/18/21 9:41 PM, Jarkko Sakkinen wrote:
> On Mon, 2021-10-18 at 09:32 -0400, James Bottomley wrote:
>> On Mon, 2021-10-18 at 16:27 +0300, Jarkko Sakkinen wrote:
>>> On Mon, 2021-10-18 at 09:05 -0400, James Bottomley wrote:
>>>> On Sat, 2021-10-09 at 21:08 +0800, Tianjia Zhang wrote:
>>>> [...]
>>>>> diff --git a/include/uapi/linux/hash_info.h
>>>>> b/include/uapi/linux/hash_info.h
>>>>> index 74a8609fcb4d..1355525dd4aa 100644
>>>>> --- a/include/uapi/linux/hash_info.h
>>>>> +++ b/include/uapi/linux/hash_info.h
>>>>> @@ -32,7 +32,7 @@ enum hash_algo {
>>>>>          HASH_ALGO_TGR_128,
>>>>>          HASH_ALGO_TGR_160,
>>>>>          HASH_ALGO_TGR_192,
>>>>> -       HASH_ALGO_SM3_256,
>>>>> +       HASH_ALGO_SM3,
>>>>>          HASH_ALGO_STREEBOG_256,
>>>>>          HASH_ALGO_STREEBOG_512,
>>>>>          HASH_ALGO__LAST
>>>>
>>>> This is another one you can't do: all headers in UAPI are exports
>>>> to userspace and the definitions constitute an ABI.  If you simply
>>>> do a rename, every userspace program that uses the current
>>>> definition will immediately break on compile.  You could add
>>>> HASH_ALGO_SM3, but you can't remove HASH_ALGO_SM3_256
>>>>
>>>> James
>>>
>>> So: shouldn't then also the old symbol continue to work also
>>> semantically?
>>
>> Yes, that's the point: you can add a new definition ... in this case an
>> alias for the old one, but you can't remove a definition that's been
>> previously exported.
> 
> Thanks, this of course obvious :-) I forgot temporarily that crypto
> has uapi interface. Tianjia, this patch set break production systems,
> so no chance we would ever merge it in this form.
> 
> Why not just do this:
> 
> ...
> HASH_ALGO_SM3_256,
> HASH_ALOG_SM3 = HASH_ALOG_SM_256,
> ...
> 
> There is not good reason to mod the implementation because both symbols
> are kept.
> 
> /Jarkko
> 

Very good suggestion, I will do this in the next version patch. Maybe 
this is more appropriate:

   HASH_ALGO_SM3,
   HASH_ALGO_SM3_256 = HASH_ALGO_SM3,

Best regards,
Tianjia



More information about the Linux-security-module-archive mailing list