2019-11-17 22:31:45

by Iuliana Prodan

[permalink] [raw]
Subject: [PATCH 01/12] crypto: add helper function for akcipher_request

Add akcipher_request_cast function to get an akcipher_request struct from
a crypto_async_request struct.

Remove this function from ccp driver.

Signed-off-by: Iuliana Prodan <[email protected]>
---
drivers/crypto/ccp/ccp-crypto-rsa.c | 6 ------
include/crypto/akcipher.h | 6 ++++++
2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/crypto/ccp/ccp-crypto-rsa.c b/drivers/crypto/ccp/ccp-crypto-rsa.c
index 649c91d..3ab659d 100644
--- a/drivers/crypto/ccp/ccp-crypto-rsa.c
+++ b/drivers/crypto/ccp/ccp-crypto-rsa.c
@@ -19,12 +19,6 @@

#include "ccp-crypto.h"

-static inline struct akcipher_request *akcipher_request_cast(
- struct crypto_async_request *req)
-{
- return container_of(req, struct akcipher_request, base);
-}
-
static inline int ccp_copy_and_save_keypart(u8 **kpbuf, unsigned int *kplen,
const u8 *buf, size_t sz)
{
diff --git a/include/crypto/akcipher.h b/include/crypto/akcipher.h
index 6924b09..4365edd 100644
--- a/include/crypto/akcipher.h
+++ b/include/crypto/akcipher.h
@@ -170,6 +170,12 @@ static inline struct crypto_akcipher *crypto_akcipher_reqtfm(
return __crypto_akcipher_tfm(req->base.tfm);
}

+static inline struct akcipher_request *akcipher_request_cast(
+ struct crypto_async_request *req)
+{
+ return container_of(req, struct akcipher_request, base);
+}
+
/**
* crypto_free_akcipher() - free AKCIPHER tfm handle
*
--
2.1.0


2019-11-18 13:31:07

by Corentin Labbe

[permalink] [raw]
Subject: Re: [PATCH 01/12] crypto: add helper function for akcipher_request

On Mon, Nov 18, 2019 at 12:30:34AM +0200, Iuliana Prodan wrote:
> Add akcipher_request_cast function to get an akcipher_request struct from
> a crypto_async_request struct.
>
> Remove this function from ccp driver.
>
> Signed-off-by: Iuliana Prodan <[email protected]>
> ---
> drivers/crypto/ccp/ccp-crypto-rsa.c | 6 ------
> include/crypto/akcipher.h | 6 ++++++
> 2 files changed, 6 insertions(+), 6 deletions(-)
>

I need (and did) the same for future sun8i-ss/sun8i-ce RSA support.
Thanks

Reviewed-by: Corentin Labbe <[email protected]>

2019-11-19 14:28:24

by Horia Geanta

[permalink] [raw]
Subject: Re: [PATCH 01/12] crypto: add helper function for akcipher_request

On 11/18/2019 12:31 AM, Iuliana Prodan wrote:
> Add akcipher_request_cast function to get an akcipher_request struct from
> a crypto_async_request struct.
>
> Remove this function from ccp driver.
>
> Signed-off-by: Iuliana Prodan <[email protected]>
Reviewed-by: Horia Geant? <[email protected]>

Thanks,
Horia

2019-11-19 15:11:09

by Gary R Hook

[permalink] [raw]
Subject: Re: [PATCH 01/12] crypto: add helper function for akcipher_request

On 11/17/19 4:30 PM, Iuliana Prodan wrote:
> Add akcipher_request_cast function to get an akcipher_request struct from
> a crypto_async_request struct.
>
> Remove this function from ccp driver.
>
> Signed-off-by: Iuliana Prodan <[email protected]>

Acked-by: Gary R Hook <[email protected]>

> ---
> drivers/crypto/ccp/ccp-crypto-rsa.c | 6 ------
> include/crypto/akcipher.h | 6 ++++++
> 2 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/crypto/ccp/ccp-crypto-rsa.c b/drivers/crypto/ccp/ccp-crypto-rsa.c
> index 649c91d..3ab659d 100644
> --- a/drivers/crypto/ccp/ccp-crypto-rsa.c
> +++ b/drivers/crypto/ccp/ccp-crypto-rsa.c
> @@ -19,12 +19,6 @@
>
> #include "ccp-crypto.h"
>
> -static inline struct akcipher_request *akcipher_request_cast(
> - struct crypto_async_request *req)
> -{
> - return container_of(req, struct akcipher_request, base);
> -}
> -
> static inline int ccp_copy_and_save_keypart(u8 **kpbuf, unsigned int *kplen,
> const u8 *buf, size_t sz)
> {
> diff --git a/include/crypto/akcipher.h b/include/crypto/akcipher.h
> index 6924b09..4365edd 100644
> --- a/include/crypto/akcipher.h
> +++ b/include/crypto/akcipher.h
> @@ -170,6 +170,12 @@ static inline struct crypto_akcipher *crypto_akcipher_reqtfm(
> return __crypto_akcipher_tfm(req->base.tfm);
> }
>
> +static inline struct akcipher_request *akcipher_request_cast(
> + struct crypto_async_request *req)
> +{
> + return container_of(req, struct akcipher_request, base);
> +}
> +
> /**
> * crypto_free_akcipher() - free AKCIPHER tfm handle
> *
>


2019-11-22 09:09:10

by Herbert Xu

[permalink] [raw]
Subject: Re: [PATCH 01/12] crypto: add helper function for akcipher_request

On Mon, Nov 18, 2019 at 12:30:34AM +0200, Iuliana Prodan wrote:
>
> diff --git a/include/crypto/akcipher.h b/include/crypto/akcipher.h
> index 6924b09..4365edd 100644
> --- a/include/crypto/akcipher.h
> +++ b/include/crypto/akcipher.h
> @@ -170,6 +170,12 @@ static inline struct crypto_akcipher *crypto_akcipher_reqtfm(
> return __crypto_akcipher_tfm(req->base.tfm);
> }
>
> +static inline struct akcipher_request *akcipher_request_cast(
> + struct crypto_async_request *req)
> +{
> + return container_of(req, struct akcipher_request, base);
> +}

This should go into include/crypto/internal/akcipher.h as it's
only used by implementors.

But having reviewed the subsequent patches I think we shouldn't
have this function at all.

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

2019-11-22 10:29:49

by Iuliana Prodan

[permalink] [raw]
Subject: Re: [PATCH 01/12] crypto: add helper function for akcipher_request

On 11/22/2019 11:08 AM, Herbert Xu wrote:
> On Mon, Nov 18, 2019 at 12:30:34AM +0200, Iuliana Prodan wrote:
>>
>> diff --git a/include/crypto/akcipher.h b/include/crypto/akcipher.h
>> index 6924b09..4365edd 100644
>> --- a/include/crypto/akcipher.h
>> +++ b/include/crypto/akcipher.h
>> @@ -170,6 +170,12 @@ static inline struct crypto_akcipher *crypto_akcipher_reqtfm(
>> return __crypto_akcipher_tfm(req->base.tfm);
>> }
>>
>> +static inline struct akcipher_request *akcipher_request_cast(
>> + struct crypto_async_request *req)
>> +{
>> + return container_of(req, struct akcipher_request, base);
>> +}
>
> This should go into include/crypto/internal/akcipher.h as it's
> only used by implementors.
>
> But having reviewed the subsequent patches I think we shouldn't
> have this function at all.
>

Why can't we use this? There are similar functions for
skcipher/aead/ahash and they are all in include/crypto.

Thanks,
Iulia

2019-11-22 10:37:13

by Herbert Xu

[permalink] [raw]
Subject: Re: [PATCH 01/12] crypto: add helper function for akcipher_request

On Fri, Nov 22, 2019 at 10:29:01AM +0000, Iuliana Prodan wrote:
>
> Why can't we use this? There are similar functions for
> skcipher/aead/ahash and they are all in include/crypto.

Because we don't want drivers to use the underlying crypto_request
at all. All drivers should be using the aead_request and others.

Only infrastructure code such as crypto_engine may use the base
type internally.

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