crypto: ecdh - fix 'ecdh_init'

NIST P192 is not unregistered if failed to register NIST P256,
actually it need to unregister the algorithms already registered.

Signed-off-by: Hui Tang <tanghui20@huawei.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
Hui Tang 2021-05-22 10:44:29 +08:00 committed by Herbert Xu
parent 6889fc2104
commit 8fd28fa504
1 changed files with 10 additions and 1 deletions

View File

@ -183,7 +183,16 @@ static int ecdh_init(void)
ret = crypto_register_kpp(&ecdh_nist_p192); ret = crypto_register_kpp(&ecdh_nist_p192);
ecdh_nist_p192_registered = ret == 0; ecdh_nist_p192_registered = ret == 0;
return crypto_register_kpp(&ecdh_nist_p256); ret = crypto_register_kpp(&ecdh_nist_p256);
if (ret)
goto nist_p256_error;
return 0;
nist_p256_error:
if (ecdh_nist_p192_registered)
crypto_unregister_kpp(&ecdh_nist_p192);
return ret;
} }
static void ecdh_exit(void) static void ecdh_exit(void)