chiark
/
gitweb
/
~ian
/
secnet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
test: udp-preload: Proof of concept wrapping
[secnet.git]
/
site.c
diff --git
a/site.c
b/site.c
index 2a89880c7e9e167bb6afeff2a0131512d3f7602d..eb146e1baabd1c3e031c86b4960f2d7fd27d35b8 100644
(file)
--- a/
site.c
+++ b/
site.c
@@
-806,10
+806,16
@@
static bool_t check_msg(struct site *st, uint32_t type, struct msg *m,
return False;
}
return False;
}
-static bool_t
generate_msg1(struct site *st, const struct msg *prompt_maybe_0
)
+static bool_t
kex_init(struct site *st
)
{
st->random->generate(st->random->st,NONCELEN,st->localN);
{
st->random->generate(st->random->st,NONCELEN,st->localN);
- return generate_msg(st,LABEL_MSG1,"site:MSG1",prompt_maybe_0);
+ return True;
+}
+
+static bool_t generate_msg1(struct site *st, const struct msg *prompt_maybe_0)
+{
+ return
+ generate_msg(st,LABEL_MSG1,"site:MSG1",prompt_maybe_0);
}
static bool_t process_msg1(struct site *st, struct buffer_if *msg1,
}
static bool_t process_msg1(struct site *st, struct buffer_if *msg1,
@@
-829,8
+835,8
@@
static bool_t process_msg1(struct site *st, struct buffer_if *msg1,
static bool_t generate_msg2(struct site *st,
const struct msg *prompt_may_be_null)
{
static bool_t generate_msg2(struct site *st,
const struct msg *prompt_may_be_null)
{
- st->random->generate(st->random->st,NONCELEN,st->localN);
-
return
generate_msg(st,LABEL_MSG2,"site:MSG2",prompt_may_be_null);
+ return
+
generate_msg(st,LABEL_MSG2,"site:MSG2",prompt_may_be_null);
}
static bool_t process_msg2(struct site *st, struct buffer_if *msg2,
}
static bool_t process_msg2(struct site *st, struct buffer_if *msg2,
@@
-1593,12
+1599,14
@@
static bool_t enter_new_state(struct site *st, uint32_t next,
switch(next) {
case SITE_SENTMSG1:
state_assert(st,st->state==SITE_RUN || st->state==SITE_RESOLVE);
switch(next) {
case SITE_SENTMSG1:
state_assert(st,st->state==SITE_RUN || st->state==SITE_RESOLVE);
+ if (!kex_init(st)) return False;
gen=generate_msg1;
st->msg1_crossed_logged = False;
break;
case SITE_SENTMSG2:
state_assert(st,st->state==SITE_RUN || st->state==SITE_RESOLVE ||
st->state==SITE_SENTMSG1 || st->state==SITE_WAIT);
gen=generate_msg1;
st->msg1_crossed_logged = False;
break;
case SITE_SENTMSG2:
state_assert(st,st->state==SITE_RUN || st->state==SITE_RESOLVE ||
st->state==SITE_SENTMSG1 || st->state==SITE_WAIT);
+ if (!kex_init(st)) return False;
gen=generate_msg2;
break;
case SITE_SENTMSG3:
gen=generate_msg2;
break;
case SITE_SENTMSG3: