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

From: James Bottomley
Date: Mon Oct 18 2021 - 09:37:02 EST


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.

James