lkml.org 
[lkml]   [2020]   [Mar]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5/6] crypto: ccree - use crypto_ipsec_check_assoclen()
    Date
    Use crypto_ipsec_check_assoclen() instead of home grown functions.
    Clean up some unneeded code as a result. Delete stale comments
    while we're at it.

    Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
    ---
    drivers/crypto/ccree/cc_aead.c | 73 ++++++++++------------------------
    1 file changed, 20 insertions(+), 53 deletions(-)

    diff --git a/drivers/crypto/ccree/cc_aead.c b/drivers/crypto/ccree/cc_aead.c
    index cce103e3b822..ede16e37d453 100644
    --- a/drivers/crypto/ccree/cc_aead.c
    +++ b/drivers/crypto/ccree/cc_aead.c
    @@ -6,6 +6,8 @@
    #include <crypto/algapi.h>
    #include <crypto/internal/aead.h>
    #include <crypto/authenc.h>
    +#include <crypto/gcm.h>
    +#include <linux/rtnetlink.h>
    #include <crypto/internal/des.h>
    #include <linux/rtnetlink.h>
    #include "cc_driver.h"
    @@ -60,11 +62,6 @@ struct cc_aead_ctx {
    enum drv_hash_mode auth_mode;
    };

    -static inline bool valid_assoclen(struct aead_request *req)
    -{
    - return ((req->assoclen == 16) || (req->assoclen == 20));
    -}
    -
    static void cc_aead_exit(struct crypto_aead *tfm)
    {
    struct cc_aead_ctx *ctx = crypto_aead_ctx(tfm);
    @@ -2050,15 +2047,11 @@ static int cc_rfc4309_ccm_encrypt(struct aead_request *req)
    /* Very similar to cc_aead_encrypt() above. */

    struct aead_req_ctx *areq_ctx = aead_request_ctx(req);
    - struct crypto_aead *tfm = crypto_aead_reqtfm(req);
    - struct cc_aead_ctx *ctx = crypto_aead_ctx(tfm);
    - struct device *dev = drvdata_to_dev(ctx->drvdata);
    - int rc = -EINVAL;
    + int rc;

    - if (!valid_assoclen(req)) {
    - dev_dbg(dev, "invalid Assoclen:%u\n", req->assoclen);
    + rc = crypto_ipsec_check_assoclen(req->assoclen);
    + if (rc)
    goto out;
    - }

    memset(areq_ctx, 0, sizeof(*areq_ctx));

    @@ -2099,16 +2092,12 @@ static int cc_aead_decrypt(struct aead_request *req)

    static int cc_rfc4309_ccm_decrypt(struct aead_request *req)
    {
    - struct crypto_aead *tfm = crypto_aead_reqtfm(req);
    - struct cc_aead_ctx *ctx = crypto_aead_ctx(tfm);
    - struct device *dev = drvdata_to_dev(ctx->drvdata);
    struct aead_req_ctx *areq_ctx = aead_request_ctx(req);
    - int rc = -EINVAL;
    + int rc;

    - if (!valid_assoclen(req)) {
    - dev_dbg(dev, "invalid Assoclen:%u\n", req->assoclen);
    + rc = crypto_ipsec_check_assoclen(req->assoclen);
    + if (rc)
    goto out;
    - }

    memset(areq_ctx, 0, sizeof(*areq_ctx));

    @@ -2216,18 +2205,12 @@ static int cc_rfc4543_gcm_setauthsize(struct crypto_aead *authenc,

    static int cc_rfc4106_gcm_encrypt(struct aead_request *req)
    {
    - /* Very similar to cc_aead_encrypt() above. */
    -
    - struct crypto_aead *tfm = crypto_aead_reqtfm(req);
    - struct cc_aead_ctx *ctx = crypto_aead_ctx(tfm);
    - struct device *dev = drvdata_to_dev(ctx->drvdata);
    struct aead_req_ctx *areq_ctx = aead_request_ctx(req);
    - int rc = -EINVAL;
    + int rc;

    - if (!valid_assoclen(req)) {
    - dev_dbg(dev, "invalid Assoclen:%u\n", req->assoclen);
    + rc = crypto_ipsec_check_assoclen(req->assoclen);
    + if (rc)
    goto out;
    - }

    memset(areq_ctx, 0, sizeof(*areq_ctx));

    @@ -2248,17 +2231,12 @@ static int cc_rfc4106_gcm_encrypt(struct aead_request *req)

    static int cc_rfc4543_gcm_encrypt(struct aead_request *req)
    {
    - /* Very similar to cc_aead_encrypt() above. */
    - struct crypto_aead *tfm = crypto_aead_reqtfm(req);
    - struct cc_aead_ctx *ctx = crypto_aead_ctx(tfm);
    - struct device *dev = drvdata_to_dev(ctx->drvdata);
    struct aead_req_ctx *areq_ctx = aead_request_ctx(req);
    - int rc = -EINVAL;
    + int rc;

    - if (!valid_assoclen(req)) {
    - dev_dbg(dev, "invalid Assoclen:%u\n", req->assoclen);
    + rc = crypto_ipsec_check_assoclen(req->assoclen);
    + if (rc)
    goto out;
    - }

    memset(areq_ctx, 0, sizeof(*areq_ctx));

    @@ -2281,18 +2259,12 @@ static int cc_rfc4543_gcm_encrypt(struct aead_request *req)

    static int cc_rfc4106_gcm_decrypt(struct aead_request *req)
    {
    - /* Very similar to cc_aead_decrypt() above. */
    -
    - struct crypto_aead *tfm = crypto_aead_reqtfm(req);
    - struct cc_aead_ctx *ctx = crypto_aead_ctx(tfm);
    - struct device *dev = drvdata_to_dev(ctx->drvdata);
    struct aead_req_ctx *areq_ctx = aead_request_ctx(req);
    - int rc = -EINVAL;
    + int rc;

    - if (!valid_assoclen(req)) {
    - dev_dbg(dev, "invalid Assoclen:%u\n", req->assoclen);
    + rc = crypto_ipsec_check_assoclen(req->assoclen);
    + if (rc)
    goto out;
    - }

    memset(areq_ctx, 0, sizeof(*areq_ctx));

    @@ -2313,17 +2285,12 @@ static int cc_rfc4106_gcm_decrypt(struct aead_request *req)

    static int cc_rfc4543_gcm_decrypt(struct aead_request *req)
    {
    - /* Very similar to cc_aead_decrypt() above. */
    - struct crypto_aead *tfm = crypto_aead_reqtfm(req);
    - struct cc_aead_ctx *ctx = crypto_aead_ctx(tfm);
    - struct device *dev = drvdata_to_dev(ctx->drvdata);
    struct aead_req_ctx *areq_ctx = aead_request_ctx(req);
    - int rc = -EINVAL;
    + int rc;

    - if (!valid_assoclen(req)) {
    - dev_dbg(dev, "invalid Assoclen:%u\n", req->assoclen);
    + rc = crypto_ipsec_check_assoclen(req->assoclen);
    + if (rc)
    goto out;
    - }

    memset(areq_ctx, 0, sizeof(*areq_ctx));

    --
    2.25.1
    \
     
     \ /
      Last update: 2020-03-08 16:58    [W:2.555 / U:0.120 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site