[SECNET PATCH 09/12] Introduce transform_apply_seqdupe
Ian Jackson
ijackson at chiark.greenend.org.uk
Wed May 15 23:13:34 BST 2019
This distinguishes the two cases. Right now they are still handled
the same everywhere.
No functional change.
Signed-off-by: Ian Jackson <ijackson at chiark.greenend.org.uk>
---
secnet.h | 7 +++++--
transform-common.h | 2 +-
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/secnet.h b/secnet.h
index 21b94c0..e253a14 100644
--- a/secnet.h
+++ b/secnet.h
@@ -548,12 +548,15 @@ typedef enum {
transform_apply_ok = 0, /* all is well (everyone may assume==0) */
transform_apply_err = 1, /* any other problem */
transform_apply_seqrange = 2,
- /* message decrypted but sequence number was out of range */
+ /* message decrypted but sequence number was out of recent range */
+ transform_apply_seqdupe = 3,
+ /* message decrypted but was dupe of recent packet */
} transform_apply_return;
static inline bool_t
transform_apply_return_badseq(transform_apply_return problem) {
- return problem == transform_apply_seqrange;
+ return problem == transform_apply_seqrange ||
+ problem == transform_apply_seqdupe;
}
typedef transform_apply_return transform_apply_fn(void *st,
diff --git a/transform-common.h b/transform-common.h
index 2e78833..74e08ea 100644
--- a/transform-common.h
+++ b/transform-common.h
@@ -53,7 +53,7 @@ typedef uint32_t recvbitmap_type;
recvbitmap_type recvbit=(uint32_t)1 << skew; \
if (ti->recvbitmap & recvbit) { \
*errmsg="seqnum: duplicate"; \
- return transform_apply_seqrange; \
+ return transform_apply_seqdupe; \
} \
ti->recvbitmap |= recvbit; \
} \
--
2.11.0
More information about the sgo-software-discuss
mailing list