diff --git a/library/ccm.c b/library/ccm.c index a6eed4a56c..9f97ca9fc2 100644 --- a/library/ccm.c +++ b/library/ccm.c @@ -480,6 +480,10 @@ int mbedtls_ccm_finish(mbedtls_ccm_context *ctx, return MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; } + if (!(ctx->state & CCM_STATE__STARTED)) { + return MBEDTLS_ERR_CCM_BAD_INPUT; + } + if (ctx->add_len > 0 && !(ctx->state & CCM_STATE__AUTH_DATA_FINISHED)) { return MBEDTLS_ERR_CCM_BAD_INPUT; }