if (type_is_msg34(type)) {
buf_append_uint16(&st->buffer,st->mtu_target);
}
+ struct sigprivkey_if *privkey=st->privkey;
append_string_xinfo_done(&st->buffer,&xia);
buf_append_string(&st->buffer,st->remotename);
buf_append_string(&st->buffer,dhpub);
free(dhpub);
- bool_t ok=st->privkey->sign(st->privkey->st,
- st->buffer.start,
- st->buffer.size,
- &st->buffer);
+ bool_t ok=privkey->sign(privkey->st,
+ st->buffer.start,
+ st->buffer.size,
+ &st->buffer);
if (!ok) goto fail;
return True;
CHECK_AVAIL(msg,m->pklen);
m->pk=buf_unprepend(msg,m->pklen);
m->hashlen=msg->start-m->hashstart;
+ struct sigpubkey_if *pubkey=st->pubkey;
- if (!st->pubkey->unpick(st->pubkey->st,msg,&m->sig)) {
+ if (!pubkey->unpick(pubkey->st,msg,&m->sig)) {
return False;
}
static bool_t process_msg3_msg4(struct site *st, struct msg *m)
{
+ struct sigpubkey_if *pubkey=st->pubkey;
+
/* Check signature and store g^x mod m */
- if (!st->pubkey->check(st->pubkey->st,
- m->hashstart,m->hashlen,
- &m->sig)) {
+ if (!pubkey->check(pubkey->st,
+ m->hashstart,m->hashlen,
+ &m->sig)) {
slog(st,LOG_SEC,"msg3/msg4 signature failed check!");
return False;
}
st->log=find_cl_if(dict,"log",CL_LOG,True,"site",loc);
st->random=find_cl_if(dict,"random",CL_RANDOMSRC,True,"site",loc);
+ struct hash_if *hash=0;
st->privkey=find_cl_if(dict,"local-key",CL_SIGPRIVKEY,True,"site",loc);
st->addresses=dict_read_string_array(dict,"address",False,"site",loc,0);
if (st->addresses)
st->dh=find_cl_if(dict,"dh",CL_DH,True,"site",loc);
- struct hash_if *hash=0;
SETUP_SETHASH(st->privkey);
SETUP_SETHASH(st->pubkey);