mirror of
https://github.com/apache/nuttx.git
synced 2026-05-24 07:46:16 +08:00
crypto: fix wrong implementation in crypto module
(1) RSA_PKCS15_VERIFY Misspell (2) if iv not provided during decryption, iv should get from data. It was not discovered before because all symmetric decryption comes with iv. Signed-off-by: makejian <makejian@xiaomi.com>
This commit is contained in:
committed by
Alan Carvalho de Assis
parent
7c763f67a6
commit
9769816385
+1
-1
@@ -592,7 +592,7 @@ int cryptodev_key(FAR struct crypt_kop *kop)
|
||||
if (in == 3 && out == 1)
|
||||
break;
|
||||
return -EINVAL;
|
||||
case CRK_RSA_PCKS15_VERIFY:
|
||||
case CRK_RSA_PKCS15_VERIFY:
|
||||
if (in == 5 && out == 0)
|
||||
break;
|
||||
return -EINVAL;
|
||||
|
||||
+3
-3
@@ -97,7 +97,7 @@ int swcr_encdec(FAR struct cryptop *crp, FAR struct cryptodesc *crd,
|
||||
{
|
||||
/* Get IV off buf */
|
||||
|
||||
bcopy(crd->crd_iv, buf + crd->crd_inject, ivlen);
|
||||
bcopy(buf + crd->crd_inject, crd->crd_iv, ivlen);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1164,7 +1164,7 @@ int swcr_kprocess(struct cryptkop *krp)
|
||||
|
||||
switch (krp->krp_op)
|
||||
{
|
||||
case CRK_RSA_PCKS15_VERIFY:
|
||||
case CRK_RSA_PKCS15_VERIFY:
|
||||
if ((krp->krp_status = swcr_rsa_verify(krp)) != 0)
|
||||
{
|
||||
goto done;
|
||||
@@ -1235,6 +1235,6 @@ void swcr_init(void)
|
||||
crypto_register(swcr_id, algs, swcr_newsession,
|
||||
swcr_freesession, swcr_process);
|
||||
|
||||
kalgs[CRK_RSA_PCKS15_VERIFY] = CRYPTO_ALG_FLAG_SUPPORTED;
|
||||
kalgs[CRK_RSA_PKCS15_VERIFY] = CRYPTO_ALG_FLAG_SUPPORTED;
|
||||
crypto_kregister(swcr_id, kalgs, swcr_kprocess);
|
||||
}
|
||||
|
||||
@@ -248,7 +248,7 @@ struct crypt_kop
|
||||
#define CRK_DSA_SIGN 2
|
||||
#define CRK_DSA_VERIFY 3
|
||||
#define CRK_DH_COMPUTE_KEY 4
|
||||
#define CRK_RSA_PCKS15_VERIFY 5
|
||||
#define CRK_RSA_PKCS15_VERIFY 5
|
||||
#define CRK_ALGORITHM_MAX 5 /* Keep updated */
|
||||
|
||||
#define CRF_MOD_EXP (1 << CRK_MOD_EXP)
|
||||
@@ -256,7 +256,7 @@ struct crypt_kop
|
||||
#define CRF_DSA_SIGN (1 << CRK_DSA_SIGN)
|
||||
#define CRF_DSA_VERIFY (1 << CRK_DSA_VERIFY)
|
||||
#define CRF_DH_COMPUTE_KEY (1 << CRK_DH_COMPUTE_KEY)
|
||||
#define CRF_RSA_PCKS15_VERIFY (1 << CRK_RSA_PCKS15_VERIFY)
|
||||
#define CRF_RSA_PKCS15_VERIFY (1 << CRK_RSA_PKCS15_VERIFY)
|
||||
|
||||
struct cryptkop
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user