diff mbox series

crypto: sm2 - Provide sm2_compute_z_digest when sm2 is disabled

Message ID ZJZ8/JifEeygojAq@gondor.apana.org.au (mailing list archive)
State Accepted
Delegated to: Herbert Xu
Headers show
Series crypto: sm2 - Provide sm2_compute_z_digest when sm2 is disabled | expand

Commit Message

Herbert Xu June 24, 2023, 5:19 a.m. UTC
On Fri, Jun 23, 2023 at 07:22:29PM +0800, kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
> head:   b335f258e8ddafec0e8ae2201ca78d29ed8f85eb
> commit: e5221fa6a355112ddcc29dc82a94f7c3a1aacc0b [76/81] KEYS: asymmetric: Move sm2 code into x509_public_key
> config: nios2-randconfig-r031-20230622 (https://download.01.org/0day-ci/archive/20230623/202306231917.utO12sx8-lkp@intel.com/config)
> compiler: nios2-linux-gcc (GCC) 12.3.0
> reproduce: (https://download.01.org/0day-ci/archive/20230623/202306231917.utO12sx8-lkp@intel.com/reproduce)

---8<---
When sm2 is disabled we need to provide an implementation of
sm2_compute_z_digest.

Fixes: e5221fa6a355 ("KEYS: asymmetric: Move sm2 code into x509_public_key")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202306231917.utO12sx8-lkp@intel.com/
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Comments

Ard Biesheuvel June 24, 2023, 7:40 a.m. UTC | #1
On Sat, 24 Jun 2023 at 07:20, Herbert Xu <herbert@gondor.apana.org.au> wrote:
>
> On Fri, Jun 23, 2023 at 07:22:29PM +0800, kernel test robot wrote:
> > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
> > head:   b335f258e8ddafec0e8ae2201ca78d29ed8f85eb
> > commit: e5221fa6a355112ddcc29dc82a94f7c3a1aacc0b [76/81] KEYS: asymmetric: Move sm2 code into x509_public_key
> > config: nios2-randconfig-r031-20230622 (https://download.01.org/0day-ci/archive/20230623/202306231917.utO12sx8-lkp@intel.com/config)
> > compiler: nios2-linux-gcc (GCC) 12.3.0
> > reproduce: (https://download.01.org/0day-ci/archive/20230623/202306231917.utO12sx8-lkp@intel.com/reproduce)
>
> ---8<---
> When sm2 is disabled we need to provide an implementation of
> sm2_compute_z_digest.
>
> Fixes: e5221fa6a355 ("KEYS: asymmetric: Move sm2 code into x509_public_key")
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202306231917.utO12sx8-lkp@intel.com/
> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
>
> diff --git a/include/crypto/sm2.h b/include/crypto/sm2.h
> index 7094d75ed54c..04a92c1013c8 100644
> --- a/include/crypto/sm2.h
> +++ b/include/crypto/sm2.h
> @@ -13,7 +13,16 @@
>
>  struct shash_desc;
>
> +#if IS_REACHABLE(CONFIG_CRYPTO_SM2)
>  int sm2_compute_z_digest(struct shash_desc *desc,
>                          const void *key, unsigned int keylen, void *dgst);
> +#else
> +static inline int sm2_compute_z_digest(struct shash_desc *desc,
> +                                      const void *key, unsigned int keylen,
> +                                      void *dgst)
> +{
> +       return -ENOTSUPP;
> +}
> +#endif
>
>  #endif /* _CRYPTO_SM2_H */

How is this supposed to work when
CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y but SM2 is configured as a
module?
Herbert Xu June 24, 2023, 7:46 a.m. UTC | #2
On Sat, Jun 24, 2023 at 09:40:59AM +0200, Ard Biesheuvel wrote:
>
> How is this supposed to work when
> CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y but SM2 is configured as a
> module?

It will fail as it did previously.  I'm just rearranging the code.
Perhaps when another algorithm that requires a non-standard digest
comes up we can think up of a proper abstraction.

Cheers,
Ard Biesheuvel June 24, 2023, 7:47 a.m. UTC | #3
On Sat, 24 Jun 2023 at 09:47, Herbert Xu <herbert@gondor.apana.org.au> wrote:
>
> On Sat, Jun 24, 2023 at 09:40:59AM +0200, Ard Biesheuvel wrote:
> >
> > How is this supposed to work when
> > CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y but SM2 is configured as a
> > module?
>
> It will fail as it did previously.  I'm just rearranging the code.
> Perhaps when another algorithm that requires a non-standard digest
> comes up we can think up of a proper abstraction.
>

Fair enough.
diff mbox series

Patch

diff --git a/include/crypto/sm2.h b/include/crypto/sm2.h
index 7094d75ed54c..04a92c1013c8 100644
--- a/include/crypto/sm2.h
+++ b/include/crypto/sm2.h
@@ -13,7 +13,16 @@ 
 
 struct shash_desc;
 
+#if IS_REACHABLE(CONFIG_CRYPTO_SM2)
 int sm2_compute_z_digest(struct shash_desc *desc,
 			 const void *key, unsigned int keylen, void *dgst);
+#else
+static inline int sm2_compute_z_digest(struct shash_desc *desc,
+				       const void *key, unsigned int keylen,
+				       void *dgst)
+{
+	return -ENOTSUPP;
+}
+#endif
 
 #endif /* _CRYPTO_SM2_H */