Skip to content

Commit d02e278

Browse files
committed
[#451] Error checking
1 parent 6061f41 commit d02e278

File tree

3 files changed

+10
-2
lines changed

3 files changed

+10
-2
lines changed

include/crypto_error.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,8 +154,9 @@
154154
#define CRYPTO_LIB_ERR_TM_SECONDARY_HDR_SIZE (-80)
155155
#define CRYPTO_LIB_ERR_TM_SECONDARY_HDR_VN (-81)
156156
#define CRYPTO_LIB_ERR_TC_FRAME_LENGTH_MISMATCH (-82)
157+
#define CRYPTO_LIB_ERR_SHPLF_LEN_LESS_THAN_MIN_PAD_SIZE (-83)
157158

158-
#define CRYPTO_CORE_ERROR_CODES_MAX -82
159+
#define CRYPTO_CORE_ERROR_CODES_MAX -83
159160

160161
// Define codes for returning MDB Strings, and determining error based on strings
161162
#define CAM_ERROR_CODES 600

src/core/crypto_error.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,8 @@ char *crypto_enum_errlist_core[] = {(char *)"CRYPTO_LIB_SUCCESS",
103103
(char *)"CRYPTO_LIB_ERR_INVALID_FHECF",
104104
(char *)"CRYPTO_LIB_ERR_TM_SECONDARY_HDR_SIZE",
105105
(char *)"CRYPTO_LIB_ERR_TM_SECONDARY_HDR_VN",
106-
(char *)"CRYPTO_LIB_ERR_TC_FRAME_LENGTH_MISMATCH"};
106+
(char *)"CRYPTO_LIB_ERR_TC_FRAME_LENGTH_MISMATCH",
107+
(char *)"CRYPTO_LIB_ERR_SHPLF_LEN_LESS_THAN_MIN_PAD_SIZE"};
107108

108109
char *crypto_enum_errlist_config[] = {
109110
(char *)"CRYPTO_CONFIGURATION_NOT_COMPLETE",

src/core/crypto_tc.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1034,6 +1034,12 @@ int32_t Crypto_TC_ApplySecurity_Cam(const uint8_t *p_in_frame, const uint16_t in
10341034
break;
10351035
}
10361036
#endif
1037+
if ((encryption_cipher == CRYPTO_CIPHER_AES256_CBC || encryption_cipher == CRYPTO_CIPHER_AES256_CBC_MAC) && sa_ptr->shplf_len == 0)
1038+
{
1039+
status = CRYPTO_LIB_ERR_SHPLF_LEN_LESS_THAN_MIN_PAD_SIZE;
1040+
mc_if->mc_log(status);
1041+
return status;
1042+
}
10371043

10381044
// Determine if segment header exists and FECF exists
10391045
uint8_t segment_hdr_len = TC_SEGMENT_HDR_SIZE;

0 commit comments

Comments
 (0)