From: Ian Jackson Date: Tue, 14 May 2019 23:39:42 +0000 (+0100) Subject: Introduce transform_apply_return_badseq X-Git-Tag: v0.4.4~11 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=secnet.git;a=commitdiff_plain;h=31dd07884afd1f1d87d398bf344e1ba3a71e293b Introduce transform_apply_return_badseq This abstraction will allow us to distinguish two problems in a moment. No functional change. Signed-off-by: Ian Jackson --- diff --git a/secnet.h b/secnet.h index 361c49e..21b94c0 100644 --- a/secnet.h +++ b/secnet.h @@ -551,6 +551,11 @@ typedef enum { /* message decrypted but sequence number was out of range */ } transform_apply_return; +static inline bool_t +transform_apply_return_badseq(transform_apply_return problem) { + return problem == transform_apply_seqrange; +} + typedef transform_apply_return transform_apply_fn(void *st, struct buffer_if *buf, const char **errmsg); diff --git a/site.c b/site.c index bc902ad..acbc2b6 100644 --- a/site.c +++ b/site.c @@ -1093,8 +1093,8 @@ decrypt_msg0(struct site *st, struct buffer_if *msg0, "peer has used new key","auxiliary key",LOG_SEC); return 0; } - if (problem==transform_apply_seqrange) - goto skew; + if (transform_apply_return_badseq(problem)) + goto badseq; buffer_copy(msg0, &st->scratch); problem = call_transform_reverse(st,st->auxiliary_key.transform, @@ -1118,8 +1118,8 @@ decrypt_msg0(struct site *st, struct buffer_if *msg0, } return 0; } - if (problem==transform_apply_seqrange) - goto skew; + if (transform_apply_return_badseq(problem)) + goto badseq; if (st->state==SITE_SENTMSG5) { buffer_copy(msg0, &st->scratch); @@ -1134,8 +1134,8 @@ decrypt_msg0(struct site *st, struct buffer_if *msg0, activate_new_key(st); return 0; /* do process the data in this packet */ } - if (problem==transform_apply_seqrange) - goto skew; + if (transform_apply_return_badseq(problem)) + goto badseq; } slog(st,LOG_SEC,"transform: %s (aux: %s, new: %s)", @@ -1145,8 +1145,8 @@ decrypt_msg0(struct site *st, struct buffer_if *msg0, assert(problem); return problem; - skew: - slog(st,LOG_DROP,"transform: %s (merely skew)",transform_err); + badseq: + slog(st,LOG_DROP,"transform: %s (bad seq.)",transform_err); assert(problem); return problem; }