• Stefan Berger's avatar
    crypto: ecdh - Initialize ctx->private_key in proper byte order · 01474b70
    Stefan Berger authored
    The private key in ctx->private_key is currently initialized in reverse
    byte order in ecdh_set_secret and whenever the key is needed in proper
    byte order the variable priv is introduced and the bytes from
    ctx->private_key are copied into priv while being byte-swapped
    (ecc_swap_digits). To get rid of the unnecessary byte swapping initialize
    ctx->private_key in proper byte order and clean up all functions that were
    previously using priv or were called with ctx->private_key:
    
    - ecc_gen_privkey: Directly initialize the passed ctx->private_key with
      random bytes filling all the digits of the private key. Get rid of the
      priv variable. This function only has ecdh_set_secret as a caller to
      create NIST P192/256/384 private keys.
    
    - crypto_ecdh_shared_secret: Called only from ecdh_compute_value with
      ctx->private_key. Get rid of the priv variable and work with the passed
      private_key directly.
    
    - ecc_make_pub_key: Called only from ecdh_compute_value with
      ctx->private_key. Get rid of the priv variable and work with the passed
      private_key directly.
    
    Cc: Salvatore Benedetto <salvatore.benedetto@intel.com>
    Signed-off-by: default avatarStefan Berger <stefanb@linux.ibm.com>
    Acked-by: default avatarJarkko Sakkinen <jarkko@kernel.org>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    01474b70
ecc.c 43 KB