2016-06-23 19:48:37

by Fengguang Wu

[permalink] [raw]
Subject: [cryptodev:master 79/79] (.text+0x330de0): multiple definition of `ecdh_shared_secret'

tree: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
head: 3c4b23901a0c766879dff680cd6bdab47bcdbbd2
commit: 3c4b23901a0c766879dff680cd6bdab47bcdbbd2 [79/79] crypto: ecdh - Add ECDH software support
config: i386-allyesconfig (attached as .config)
compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430
reproduce:
git checkout 3c4b23901a0c766879dff680cd6bdab47bcdbbd2
# save the attached .config to linux build tree
make ARCH=i386

All errors (new ones prefixed by >>):

net/built-in.o: In function `ecdh_shared_secret':
>> (.text+0x330de0): multiple definition of `ecdh_shared_secret'
crypto/built-in.o:(.text+0xb1b0): first defined here

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation


Attachments:
(No filename) (860.00 B)
.config.gz (53.14 kB)
Download all attachments

2016-06-24 06:06:49

by Salvatore Benedetto

[permalink] [raw]
Subject: Re: [cryptodev:master 79/79] (.text+0x330de0): multiple definition of `ecdh_shared_secret'

On Fri, Jun 24, 2016 at 03:47:04AM +0800, kbuild test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
> head: 3c4b23901a0c766879dff680cd6bdab47bcdbbd2
> commit: 3c4b23901a0c766879dff680cd6bdab47bcdbbd2 [79/79] crypto: ecdh - Add ECDH software support
> config: i386-allyesconfig (attached as .config)
> compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430
> reproduce:
> git checkout 3c4b23901a0c766879dff680cd6bdab47bcdbbd2
> # save the attached .config to linux build tree
> make ARCH=i386
>
> All errors (new ones prefixed by >>):
>
> net/built-in.o: In function `ecdh_shared_secret':
> >> (.text+0x330de0): multiple definition of `ecdh_shared_secret'
> crypto/built-in.o:(.text+0xb1b0): first defined here
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation

Hi Herbert,

can you squash the following patch?

Thanks,
Salvatore

---8<---
Rename ecdh_shared_secret

Signed-off-by: Salvatore Benedetto <[email protected]>
---
crypto/ecc.c | 8 ++++----
crypto/ecc.h | 12 ++++++------
crypto/ecdh.c | 8 ++++----
3 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/crypto/ecc.c b/crypto/ecc.c
index 9aedec6..1ba2436 100644
--- a/crypto/ecc.c
+++ b/crypto/ecc.c
@@ -966,10 +966,10 @@ out:
return ret;
}

-int ecdh_shared_secret(unsigned int curve_id, unsigned int ndigits,
- const u8 *private_key, unsigned int private_key_len,
- const u8 *public_key, unsigned int public_key_len,
- u8 *secret, unsigned int secret_len)
+int ecdh_compute_ss(unsigned int curve_id, unsigned int ndigits,
+ const u8 *private_key, unsigned int private_key_len,
+ const u8 *public_key, unsigned int public_key_len,
+ u8 *secret, unsigned int secret_len)
{
int ret = 0;
struct ecc_point *product, *pk;
diff --git a/crypto/ecc.h b/crypto/ecc.h
index b5db4b9..a856175 100644
--- a/crypto/ecc.h
+++ b/crypto/ecc.h
@@ -60,7 +60,7 @@ int ecdh_make_pub_key(const unsigned int curve_id, unsigned int ndigits,
u8 *public_key, unsigned int public_key_len);

/**
- * ecdh_shared_secret() - Compute a shared secret
+ * ecdh_compute_ss() - Compute a shared secret
*
* @curve_id: id representing the curve to use
* @private_key: private key of part A
@@ -70,14 +70,14 @@ int ecdh_make_pub_key(const unsigned int curve_id, unsigned int ndigits,
* @secret: buffer for storing the calculated shared secret
* @secret_len: length of the secret buffer
*
- * Note: It is recommended that you hash the result of ecdh_shared_secret
+ * Note: It is recommended that you hash the result of ecdh_compute_ss
* before using it for symmetric encryption or HMAC.
*
* Returns 0 if the shared secret was generated successfully, a negative value
* if an error occurred.
*/
-int ecdh_shared_secret(unsigned int curve_id, unsigned int ndigits,
- const u8 *private_key, unsigned int private_key_len,
- const u8 *public_key, unsigned int public_key_len,
- u8 *secret, unsigned int secret_len);
+int ecdh_compute_ss(unsigned int curve_id, unsigned int ndigits,
+ const u8 *private_key, unsigned int private_key_len,
+ const u8 *public_key, unsigned int public_key_len,
+ u8 *secret, unsigned int secret_len);
#endif
diff --git a/crypto/ecdh.c b/crypto/ecdh.c
index d3a9eec..7e12a34 100644
--- a/crypto/ecdh.c
+++ b/crypto/ecdh.c
@@ -79,10 +79,10 @@ static int ecdh_compute_value(struct kpp_request *req)
if (copied != 2 * nbytes)
return -EINVAL;

- ret = ecdh_shared_secret(ctx->curve_id, ctx->ndigits,
- (const u8 *)ctx->private_key, nbytes,
- (const u8 *)ctx->public_key, 2 * nbytes,
- (u8 *)ctx->shared_secret, nbytes);
+ ret = ecdh_compute_ss(ctx->curve_id, ctx->ndigits,
+ (const u8 *)ctx->private_key, nbytes,
+ (const u8 *)ctx->public_key, 2 * nbytes,
+ (u8 *)ctx->shared_secret, nbytes);

buf = ctx->shared_secret;
} else {
--
2.7.4

2016-06-24 06:10:17

by Herbert Xu

[permalink] [raw]
Subject: Re: [cryptodev:master 79/79] (.text+0x330de0): multiple definition of `ecdh_shared_secret'

On Fri, Jun 24, 2016 at 07:06:49AM +0100, Salvatore Benedetto wrote:
>
> can you squash the following patch?

No, please prune anything that we don't use from ecc.c.

Thanks,
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

2016-06-24 06:23:22

by Herbert Xu

[permalink] [raw]
Subject: Re: [cryptodev:master 79/79] (.text+0x330de0): multiple definition of `ecdh_shared_secret'

On Fri, Jun 24, 2016 at 02:10:12PM +0800, Herbert Xu wrote:
> On Fri, Jun 24, 2016 at 07:06:49AM +0100, Salvatore Benedetto wrote:
> >
> > can you squash the following patch?
>
> No, please prune anything that we don't use from ecc.c.

I take that back. I see it's actually coming from bluetooth.

How about moving ecc.c to lib so that it's shared between the
two?

Thanks,
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

2016-06-24 06:23:44

by Salvatore Benedetto

[permalink] [raw]
Subject: Re: [cryptodev:master 79/79] (.text+0x330de0): multiple definition of `ecdh_shared_secret'

On Fri, Jun 24, 2016 at 02:10:12PM +0800, Herbert Xu wrote:
> On Fri, Jun 24, 2016 at 07:06:49AM +0100, Salvatore Benedetto wrote:
> >
> > can you squash the following patch?
>
> No, please prune anything that we don't use from ecc.c.

We do use the symbol in question, and I'm pretty sure we use
all of crypto/ecc.c. I was going to send a patch where
I remove the net/bluetooth/ecc.c

How do you want me to proceed with this build failure?
Do you want me to send a new patch so that you can revert
3c4b23901a0c766879dff680cd6bdab47bcdbbd2 ?

Thanks,
Salvatore

> Thanks,
> --
> Email: Herbert Xu <[email protected]>
> Home Page: http://gondor.apana.org.au/~herbert/
> PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
> --
> To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html

2016-06-24 06:25:55

by Herbert Xu

[permalink] [raw]
Subject: Re: [cryptodev:master 79/79] (.text+0x330de0): multiple definition of `ecdh_shared_secret'

On Fri, Jun 24, 2016 at 07:23:42AM +0100, Salvatore Benedetto wrote:
>
> We do use the symbol in question, and I'm pretty sure we use
> all of crypto/ecc.c. I was going to send a patch where
> I remove the net/bluetooth/ecc.c

I see. In that case either rename the symbols in net/bluetooth/ecc.c
since it's going away or just do the bluetooth conversion.

Please send any new patches based on the current tree.

Thanks,
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

2016-06-24 06:36:44

by Salvatore Benedetto

[permalink] [raw]
Subject: Re: [cryptodev:master 79/79] (.text+0x330de0): multiple definition of `ecdh_shared_secret'

On Fri, Jun 24, 2016 at 07:23:16AM +0100, Herbert Xu wrote:
> On Fri, Jun 24, 2016 at 02:10:12PM +0800, Herbert Xu wrote:
> > On Fri, Jun 24, 2016 at 07:06:49AM +0100, Salvatore Benedetto wrote:
> > >
> > > can you squash the following patch?
> >
> > No, please prune anything that we don't use from ecc.c.
>
> I take that back. I see it's actually coming from bluetooth.
>
> How about moving ecc.c to lib so that it's shared between the
> two?

The patch was based on the current tree. I just pulled.
There is not point in moving to lib because bluetooth is
about to be converted to kpp.
That patch I believe will go up the bluetooth tree, so
my suggestion is to simply accept that I fail to properly
name that symbol.

Renaming the symbol in net/bluetooth/ecc which I think will conflict
with the patch where I remove it completely which, again, I believe
will go up the BT tree.

Thanks,
Salvatore

> Thanks,
> --
> Email: Herbert Xu <[email protected]>
> Home Page: http://gondor.apana.org.au/~herbert/
> PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

2016-06-24 06:45:13

by Herbert Xu

[permalink] [raw]
Subject: Re: [cryptodev:master 79/79] (.text+0x330de0): multiple definition of `ecdh_shared_secret'

On Fri, Jun 24, 2016 at 07:36:44AM +0100, Salvatore Benedetto wrote:
>
>
> The patch was based on the current tree. I just pulled.
> There is not point in moving to lib because bluetooth is
> about to be converted to kpp.
> That patch I believe will go up the bluetooth tree, so
> my suggestion is to simply accept that I fail to properly
> name that symbol.
>
> Renaming the symbol in net/bluetooth/ecc which I think will conflict
> with the patch where I remove it completely which, again, I believe
> will go up the BT tree.

OK I will have no option but to revert your patches then.

Cheers,
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

2016-06-24 12:57:29

by Salvatore Benedetto

[permalink] [raw]
Subject: RE: [cryptodev:master 79/79] (.text+0x330de0): multiple definition of `ecdh_shared_secret'



> -----Original Message-----
> From: Herbert Xu [mailto:[email protected]]
> Sent: Friday, June 24, 2016 7:45 AM
> To: Benedetto, Salvatore <[email protected]>
> Cc: [email protected]; Wu, Fengguang
> <[email protected]>; [email protected]
> Subject: Re: [cryptodev:master 79/79] (.text+0x330de0): multiple definition
> of `ecdh_shared_secret'
>
> On Fri, Jun 24, 2016 at 07:36:44AM +0100, Salvatore Benedetto wrote:
> >
> >
> > The patch was based on the current tree. I just pulled.
> > There is not point in moving to lib because bluetooth is about to be
> > converted to kpp.
> > That patch I believe will go up the bluetooth tree, so my suggestion
> > is to simply accept that I fail to properly name that symbol.
> >
> > Renaming the symbol in net/bluetooth/ecc which I think will conflict
> > with the patch where I remove it completely which, again, I believe
> > will go up the BT tree.
>
> OK I will have no option but to revert your patches then.

Please revert the last one only and I'll resend it with the symbol
name fixed. I don't see why you should revert all of them.

I also just sent the BT patch which was changing the symbol name
anyway.

Regards,
Salvatore