summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
3cdb830)
This abstraction will allow us to distinguish two problems in a
moment.
No functional change.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
/* message decrypted but sequence number was out of range */
} transform_apply_return;
/* 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);
typedef transform_apply_return transform_apply_fn(void *st,
struct buffer_if *buf, const char **errmsg);
"peer has used new key","auxiliary key",LOG_SEC);
return 0;
}
"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,
buffer_copy(msg0, &st->scratch);
problem = call_transform_reverse(st,st->auxiliary_key.transform,
- 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);
if (st->state==SITE_SENTMSG5) {
buffer_copy(msg0, &st->scratch);
activate_new_key(st);
return 0; /* do process the data in this packet */
}
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)",
}
slog(st,LOG_SEC,"transform: %s (aux: %s, new: %s)",
assert(problem);
return problem;
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;
}
assert(problem);
return problem;
}