1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-09 17:38:00 +00:00

Expose the structure tag 'crcda_ctx'.

This one isn't used in many places, but it's another 'void *' pointer
that ought to come with an identifying structure tag.
This commit is contained in:
Simon Tatham 2018-09-13 13:00:56 +01:00
parent 3aae1f9d76
commit 65b65bb8ef
3 changed files with 8 additions and 9 deletions

7
ssh.h
View File

@ -322,9 +322,10 @@ unsigned long crc32_compute(const void *s, size_t len);
unsigned long crc32_update(unsigned long crc_input, const void *s, size_t len);
/* SSH CRC compensation attack detector */
void *crcda_make_context(void);
void crcda_free_context(void *handle);
int detect_attack(void *handle, unsigned char *buf, uint32 len,
struct crcda_ctx;
struct crcda_ctx *crcda_make_context(void);
void crcda_free_context(struct crcda_ctx *ctx);
int detect_attack(struct crcda_ctx *ctx, unsigned char *buf, uint32 len,
unsigned char *IV);
/*

View File

@ -20,7 +20,7 @@ struct ssh1_bpp_state {
const struct ssh_cipher *cipher;
void *cipher_ctx;
void *crcda_ctx;
struct crcda_ctx *crcda_ctx;
void *compctx, *decompctx;

View File

@ -55,7 +55,7 @@ struct crcda_ctx {
uint32 n;
};
void *crcda_make_context(void)
struct crcda_ctx *crcda_make_context(void)
{
struct crcda_ctx *ret = snew(struct crcda_ctx);
ret->h = NULL;
@ -63,9 +63,8 @@ void *crcda_make_context(void)
return ret;
}
void crcda_free_context(void *handle)
void crcda_free_context(struct crcda_ctx *ctx)
{
struct crcda_ctx *ctx = (struct crcda_ctx *)handle;
if (ctx) {
sfree(ctx->h);
ctx->h = NULL;
@ -102,9 +101,8 @@ static int check_crc(uchar *S, uchar *buf, uint32 len, uchar *IV)
}
/* Detect a crc32 compensation attack on a packet */
int detect_attack(void *handle, uchar *buf, uint32 len, uchar *IV)
int detect_attack(struct crcda_ctx *ctx, uchar *buf, uint32 len, uchar *IV)
{
struct crcda_ctx *ctx = (struct crcda_ctx *)handle;
register uint32 i, j;
uint32 l;
register uchar *c;