maint: update copyright
[gnulib.git] / lib / hmac-sha1.c
index bee7231..8948556 100644 (file)
@@ -1,5 +1,5 @@
 /* hmac-sha1.c -- hashed message authentication codes
-   Copyright (C) 2005 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Simon Josefsson.  */
 
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
+#include <config.h>
 
 #include "hmac.h"
 
+#include "memxor.h"
 #include "sha1.h"
 
 #include <string.h>
@@ -32,7 +30,7 @@
 
 int
 hmac_sha1 (const void *key, size_t keylen,
-          const void *in, size_t inlen, void *resbuf)
+           const void *in, size_t inlen, void *resbuf)
 {
   struct sha1_ctx inner;
   struct sha1_ctx outer;
@@ -40,6 +38,8 @@ hmac_sha1 (const void *key, size_t keylen,
   char block[64];
   char innerhash[20];
 
+  /* Reduce the key's size, so that it becomes <= 64 bytes large.  */
+
   if (keylen > 64)
     {
       struct sha1_ctx keyhash;
@@ -52,6 +52,8 @@ hmac_sha1 (const void *key, size_t keylen,
       keylen = 20;
     }
 
+  /* Compute INNERHASH from KEY and IN.  */
+
   sha1_init_ctx (&inner);
 
   memset (block, IPAD, sizeof (block));
@@ -62,6 +64,8 @@ hmac_sha1 (const void *key, size_t keylen,
 
   sha1_finish_ctx (&inner, innerhash);
 
+  /* Compute result from KEY and INNERHASH.  */
+
   sha1_init_ctx (&outer);
 
   memset (block, OPAD, sizeof (block));