chiark / gitweb /
Introduce transform_apply_return_badseq
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 14 May 2019 23:39:42 +0000 (00:39 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 18 May 2019 01:16:37 +0000 (02:16 +0100)
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>
secnet.h
site.c

index 361c49e4e364c21deb68574078c0a48839207018..21b94c090b7a28ab5ed0c6c7d7c5cab8eebf7031 100644 (file)
--- 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 bc902ad92397c3fcf94a3bdab1e7ff0ff559a78d..acbc2b62c99b9ed43e48b43a3d473becfdd404c3 100644 (file)
--- 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;
 }