/* hmac-sha1.c -- hashed message authentication codes
- Copyright (C) 2005 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2006 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
/* 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>
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;
keylen = 20;
}
+ /* Compute INNERHASH from KEY and IN. */
+
sha1_init_ctx (&inner);
memset (block, IPAD, sizeof (block));
sha1_finish_ctx (&inner, innerhash);
+ /* Compute result from KEY and INNERHASH. */
+
sha1_init_ctx (&outer);
memset (block, OPAD, sizeof (block));