projects
/
gnulib.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
strtoumax: fix typo in previous commit.
[gnulib.git]
/
lib
/
hmac-md5.c
diff --git
a/lib/hmac-md5.c
b/lib/hmac-md5.c
index
ecd0714
..
85ffcef
100644
(file)
--- a/
lib/hmac-md5.c
+++ b/
lib/hmac-md5.c
@@
-1,5
+1,5
@@
/* hmac-md5.c -- hashed message authentication codes
/* hmac-md5.c -- hashed message authentication codes
- Copyright (C) 2005 Free Software Foundation, Inc.
+ Copyright (C) 2005
-2006, 2009-2013
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
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
@@
-12,14
+12,11
@@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
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. */
/* Written by Simon Josefsson. */
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
+#include <config.h>
#include "hmac.h"
#include "hmac.h"
@@
-33,7
+30,7
@@
int
hmac_md5 (const void *key, size_t keylen,
int
hmac_md5 (const void *key, size_t keylen,
- const void *in, size_t inlen, void *resbuf)
+
const void *in, size_t inlen, void *resbuf)
{
struct md5_ctx inner;
struct md5_ctx outer;
{
struct md5_ctx inner;
struct md5_ctx outer;
@@
-41,6
+38,8
@@
hmac_md5 (const void *key, size_t keylen,
char block[64];
char innerhash[16];
char block[64];
char innerhash[16];
+ /* Reduce the key's size, so that it becomes <= 64 bytes large. */
+
if (keylen > 64)
{
struct md5_ctx keyhash;
if (keylen > 64)
{
struct md5_ctx keyhash;
@@
-53,6
+52,8
@@
hmac_md5 (const void *key, size_t keylen,
keylen = 16;
}
keylen = 16;
}
+ /* Compute INNERHASH from KEY and IN. */
+
md5_init_ctx (&inner);
memset (block, IPAD, sizeof (block));
md5_init_ctx (&inner);
memset (block, IPAD, sizeof (block));
@@
-63,6
+64,8
@@
hmac_md5 (const void *key, size_t keylen,
md5_finish_ctx (&inner, innerhash);
md5_finish_ctx (&inner, innerhash);
+ /* Compute result from KEY and INNERHASH. */
+
md5_init_ctx (&outer);
memset (block, OPAD, sizeof (block));
md5_init_ctx (&outer);
memset (block, OPAD, sizeof (block));