+/* $OpenBSD: deattack.c,v 1.13 2001/03/01 02:45:10 deraadt Exp $ */
+
/*
- * $OpenBSD: deattack.c,v 1.7 2000/06/20 01:39:41 markus Exp $
* Cryptographic attack detector for ssh - source code
*
* Copyright (c) 1998 CORE SDI S.A., Buenos Aires, Argentina.
#include "includes.h"
#include "deattack.h"
-#include "ssh.h"
+#include "log.h"
#include "crc32.h"
#include "getput.h"
#include "xmalloc.h"
/* Hash function (Input keys are cipher results) */
#define HASH(x) GET_32BIT(x)
-#define CMP(a,b) (memcmp(a, b, SSH_BLOCKSIZE))
+#define CMP(a, b) (memcmp(a, b, SSH_BLOCKSIZE))
void
crc_update(u_int32_t *a, u_int32_t b)
{
b ^= *a;
- *a = crc32((unsigned char *) &b, sizeof(b));
+ *a = ssh_crc32((u_char *) &b, sizeof(b));
}
/* detect if a block is used in a particular pattern */
int
-check_crc(unsigned char *S, unsigned char *buf, u_int32_t len,
- unsigned char *IV)
+check_crc(u_char *S, u_char *buf, u_int32_t len,
+ u_char *IV)
{
u_int32_t crc;
- unsigned char *c;
+ u_char *c;
crc = 0;
if (IV && !CMP(S, IV)) {
/* Detect a crc32 compensation attack on a packet */
int
-detect_attack(unsigned char *buf, u_int32_t len, unsigned char *IV)
+detect_attack(u_char *buf, u_int32_t len, u_char *IV)
{
static u_int16_t *h = (u_int16_t *) NULL;
- static u_int16_t n = HASH_MINSIZE / HASH_ENTRYSIZE;
+ static u_int32_t n = HASH_MINSIZE / HASH_ENTRYSIZE;
register u_int32_t i, j;
u_int32_t l;
- register unsigned char *c;
- unsigned char *d;
+ register u_char *c;
+ u_char *d;
if (len > (SSH_MAXBLOCKS * SSH_BLOCKSIZE) ||
len % SSH_BLOCKSIZE != 0) {