version 1.9, 2006/03/25 13:17:02 |
version 1.10, 2006/03/30 09:58:15 |
|
|
#include <openssl/hmac.h> |
#include <openssl/hmac.h> |
|
|
#include "xmalloc.h" |
#include "xmalloc.h" |
#include "getput.h" |
|
#include "log.h" |
#include "log.h" |
#include "cipher.h" |
#include "cipher.h" |
#include "kex.h" |
#include "kex.h" |
#include "mac.h" |
#include "mac.h" |
|
#include "misc.h" |
|
|
struct { |
struct { |
char *name; |
char *name; |
|
|
if (mac->mac_len > sizeof(m)) |
if (mac->mac_len > sizeof(m)) |
fatal("mac_compute: mac too long"); |
fatal("mac_compute: mac too long"); |
HMAC_Init(&c, mac->key, mac->key_len, mac->md); |
HMAC_Init(&c, mac->key, mac->key_len, mac->md); |
PUT_32BIT(b, seqno); |
put_u32(b, seqno); |
HMAC_Update(&c, b, sizeof(b)); |
HMAC_Update(&c, b, sizeof(b)); |
HMAC_Update(&c, data, datalen); |
HMAC_Update(&c, data, datalen); |
HMAC_Final(&c, m, NULL); |
HMAC_Final(&c, m, NULL); |