Skip to content

Commit 8946e05

Browse files
committed
[Review OP-TEE#2] Check OID hash algorithm returned
Minor fix rsassa.c Signed-off-by: Clement Faure <clement.faure@nxp.com>
1 parent 7b68ce3 commit 8946e05

File tree

1 file changed

+20
-2
lines changed
  • core/drivers/crypto/crypto_api/acipher

1 file changed

+20
-2
lines changed

core/drivers/crypto/crypto_api/acipher/rsassa.c

+20-2
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,23 @@
2222

2323
#include "local.h"
2424

25+
static struct drvcrypt_oid *rsassa_get_hash_oid_alg(uint32_t algo)
26+
{
27+
uint32_t main_alg = TEE_ALG_GET_MAIN_ALG(algo);
28+
29+
switch (main_alg) {
30+
case TEE_MAIN_ALGO_MD5:
31+
case TEE_MAIN_ALGO_SHA1:
32+
case TEE_MAIN_ALGO_SHA224:
33+
case TEE_MAIN_ALGO_SHA256:
34+
case TEE_MAIN_ALGO_SHA384:
35+
case TEE_MAIN_ALGO_SHA512:
36+
return &drvcrypt_hash_oid[main_alg];
37+
default:
38+
return NULL;
39+
}
40+
}
41+
2542
/*
2643
* PKCS#1 V1.5 - Encode the message in Distinguished Encoding Rules
2744
* (DER) format.
@@ -37,8 +54,9 @@ static TEE_Result emsa_pkcs1_v1_5_encode(struct drvcrypt_rsa_ssa *ssa_data,
3754
size_t ps_size = 0;
3855
uint8_t *buf = NULL;
3956

40-
hash_oid =
41-
&drvcrypt_hash_oid[TEE_ALG_GET_MAIN_ALG(ssa_data->hash_algo)];
57+
hash_oid = rsassa_get_hash_oid_alg(ssa_data->hash_algo);
58+
if (!hash_oid)
59+
return TEE_ERROR_NOT_SUPPORTED;
4260

4361
/*
4462
* Calculate the PS size

0 commit comments

Comments
 (0)