ccm.c: Return early when ccm* is used without tag.
Signed-off-by: Minos Galanakis <minos.galanakis@arm.com>
diff --git a/library/ccm.c b/library/ccm.c
index 45ed697..969c6c7 100644
--- a/library/ccm.c
+++ b/library/ccm.c
@@ -170,11 +170,12 @@
}
/* CCM expects non-empty tag.
- * CCM* allows empty tag. For CCM* without tag, ignore plaintext length.
+ * CCM* allows empty tag. For CCM* without tag, the tag calculation is skipped.
*/
if (ctx->tag_len == 0) {
if (ctx->mode == MBEDTLS_CCM_STAR_ENCRYPT || ctx->mode == MBEDTLS_CCM_STAR_DECRYPT) {
ctx->plaintext_len = 0;
+ return 0;
} else {
return MBEDTLS_ERR_CCM_BAD_INPUT;
}