lkml.org 
[lkml]   [2021]   [Feb]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v8 3/9] crypto: atmel-ecc - move curve_id of ECDH from the key to algorithm name
    Date
    As curve id of ECDH will be moved from its key into algorithm name,
    we cannot use 'curve_id' in 'struct ecdh', so we should modify ECDH
    driver in atmel, and make ECDH algorithm name be the same as crypto
    (like 'ecdh-nist-pxxx');

    Signed-off-by: Meng Yu <yumeng18@huawei.com>
    Reviewed-by: Zaibo Xu <xuzaibo@huawei.com>
    ---
    drivers/crypto/atmel-ecc.c | 14 +++++++-------
    1 file changed, 7 insertions(+), 7 deletions(-)

    diff --git a/drivers/crypto/atmel-ecc.c b/drivers/crypto/atmel-ecc.c
    index 9bd8e51..9ade6ad 100644
    --- a/drivers/crypto/atmel-ecc.c
    +++ b/drivers/crypto/atmel-ecc.c
    @@ -104,7 +104,7 @@ static int atmel_ecdh_set_secret(struct crypto_kpp *tfm, const void *buf,
    return -EINVAL;
    }

    - ctx->n_sz = atmel_ecdh_supported_curve(params.curve_id);
    + ctx->n_sz = atmel_ecdh_supported_curve(ctx->curve_id);
    if (!ctx->n_sz || params.key_size) {
    /* fallback to ecdh software implementation */
    ctx->do_fallback = true;
    @@ -125,7 +125,6 @@ static int atmel_ecdh_set_secret(struct crypto_kpp *tfm, const void *buf,
    goto free_cmd;

    ctx->do_fallback = false;
    - ctx->curve_id = params.curve_id;

    atmel_i2c_init_genkey_cmd(cmd, DATA_SLOT_2);

    @@ -263,6 +262,7 @@ static int atmel_ecdh_init_tfm(struct crypto_kpp *tfm)
    struct crypto_kpp *fallback;
    struct atmel_ecdh_ctx *ctx = kpp_tfm_ctx(tfm);

    + ctx->curve_id = ECC_CURVE_NIST_P256;
    ctx->client = atmel_ecc_i2c_client_alloc();
    if (IS_ERR(ctx->client)) {
    pr_err("tfm - i2c_client binding failed\n");
    @@ -306,7 +306,7 @@ static unsigned int atmel_ecdh_max_size(struct crypto_kpp *tfm)
    return ATMEL_ECC_PUBKEY_SIZE;
    }

    -static struct kpp_alg atmel_ecdh = {
    +static struct kpp_alg atmel_ecdh_nist_p256 = {
    .set_secret = atmel_ecdh_set_secret,
    .generate_public_key = atmel_ecdh_generate_public_key,
    .compute_shared_secret = atmel_ecdh_compute_shared_secret,
    @@ -315,7 +315,7 @@ static struct kpp_alg atmel_ecdh = {
    .max_size = atmel_ecdh_max_size,
    .base = {
    .cra_flags = CRYPTO_ALG_NEED_FALLBACK,
    - .cra_name = "ecdh",
    + .cra_name = "ecdh-nist-p256",
    .cra_driver_name = "atmel-ecdh",
    .cra_priority = ATMEL_ECC_PRIORITY,
    .cra_module = THIS_MODULE,
    @@ -340,14 +340,14 @@ static int atmel_ecc_probe(struct i2c_client *client,
    &driver_data.i2c_client_list);
    spin_unlock(&driver_data.i2c_list_lock);

    - ret = crypto_register_kpp(&atmel_ecdh);
    + ret = crypto_register_kpp(&atmel_ecdh_nist_p256);
    if (ret) {
    spin_lock(&driver_data.i2c_list_lock);
    list_del(&i2c_priv->i2c_client_list_node);
    spin_unlock(&driver_data.i2c_list_lock);

    dev_err(&client->dev, "%s alg registration failed\n",
    - atmel_ecdh.base.cra_driver_name);
    + atmel_ecdh_nist_p256.base.cra_driver_name);
    } else {
    dev_info(&client->dev, "atmel ecc algorithms registered in /proc/crypto\n");
    }
    @@ -365,7 +365,7 @@ static int atmel_ecc_remove(struct i2c_client *client)
    return -EBUSY;
    }

    - crypto_unregister_kpp(&atmel_ecdh);
    + crypto_unregister_kpp(&atmel_ecdh_nist_p256);

    spin_lock(&driver_data.i2c_list_lock);
    list_del(&i2c_priv->i2c_client_list_node);
    --
    2.8.1
    \
     
     \ /
      Last update: 2021-02-08 10:52    [W:3.635 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site