Fix documentation for mbedtls_gcm_finish()
Fix implementation and documentation missmatch for the function
arguments to mbedtls_gcm_finish(). Also, removed redundant if condition
that always evaluates to true.
diff --git a/ChangeLog b/ChangeLog
index cf5ba2c..e91bc2f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -23,6 +23,8 @@
* Fixed the sample applications gen_key.c, cert_req.c and cert_write.c for
builds where the configuration POLARSSL_PEM_WRITE_C is not defined. Found
by inestlerode. #559.
+ * Fix documentation and implementation missmatch for function arguments of
+ mbedtls_gcm_finish(). Found by cmiatpaar.
Changes
* Add compile time option for relaxed X509 time verification to enable
diff --git a/include/polarssl/gcm.h b/include/polarssl/gcm.h
index 5a94722..3326919 100644
--- a/include/polarssl/gcm.h
+++ b/include/polarssl/gcm.h
@@ -186,8 +186,8 @@
* 16 bytes.
*
* \param ctx GCM context
- * \param tag buffer for holding the tag (may be NULL if tag_len is 0)
- * \param tag_len length of the tag to generate
+ * \param tag buffer for holding the tag
+ * \param tag_len length of the tag to generate (must be at least 4)
*
* \return 0 if successful or POLARSSL_ERR_GCM_BAD_INPUT
*/
diff --git a/library/gcm.c b/library/gcm.c
index 83f2fd2..33306e5 100644
--- a/library/gcm.c
+++ b/library/gcm.c
@@ -410,8 +410,7 @@
if( tag_len > 16 || tag_len < 4 )
return( POLARSSL_ERR_GCM_BAD_INPUT );
- if( tag_len != 0 )
- memcpy( tag, ctx->base_ectr, tag_len );
+ memcpy( tag, ctx->base_ectr, tag_len );
if( orig_len || orig_add_len )
{