isakmp
if ((ph2exchange[etypesw2(isakmp->etype)]
struct isakmp *isakmp = (struct isakmp *)msg->v;
memcpy(&iph1->index.i_ck, &isakmp->i_ck, sizeof(iph1->index.i_ck));
iph1->version = isakmp->v;
struct isakmp *isakmp = (struct isakmp *)msg->v;
iph2->flags = isakmp->flags;
iph2->msgid = isakmp->msgid;
if ((ph2exchange[etypesw2(isakmp->etype)]
struct isakmp *isakmp = (struct isakmp *)buf->v;
np = isakmp->np;
gen = (struct isakmp_gen *)(buf->v + sizeof(*isakmp));
tlen = buf->l - sizeof(struct isakmp);
struct isakmp isakmp;
char buf[sizeof (isakmp) + 4];
char buf[sizeof(isakmp) + 4];
struct isakmp *isakmp;
if (vbuf->l < sizeof(*isakmp))
isakmp = (struct isakmp *)vbuf->v;
memcpy(&isakmp->i_ck, &iph1->index.i_ck, sizeof(cookie_t));
memcpy(&isakmp->r_ck, &iph1->index.r_ck, sizeof(cookie_t));
isakmp->np = nptype;
isakmp->v = iph1->version;
isakmp->etype = etype;
isakmp->flags = flags;
isakmp->msgid = msgid;
isakmp->len = htonl(vbuf->l);
return vbuf->v + sizeof(*isakmp);
memcpy ((char *)&isakmp, x.buf + extralen, sizeof (isakmp));
if (len < sizeof(isakmp) || ntohl(isakmp.len) < sizeof(isakmp)) {
len, ntohl(isakmp.len), sizeof(isakmp));
struct isakmp *isakmp;
if ((len = recvfrom(so_isakmp, (char *)&isakmp, sizeof(isakmp),
isakmp = (struct isakmp *)buf->v;
if (isakmp->flags & ISAKMP_FLAG_E) {
isakmp->flags &= ~ISAKMP_FLAG_E;
if (ntohl(isakmp.len) > 0xffff) {
if ((len = recvfrom(so_isakmp, (char *)&isakmp, sizeof(isakmp),
size_t tlen = sizeof (struct isakmp), n = 0;
if ((tmpbuf = vmalloc(ntohl(isakmp.len) + extralen)) == NULL) {
ntohl(isakmp.len) + extralen);
if ((len = recvfrom(so_isakmp, (char *)&isakmp, sizeof(isakmp),
struct isakmp *isakmp = (struct isakmp *)msg->v;
isakmp_index *index1 = (isakmp_index *)isakmp;
uint32_t msgid = isakmp->msgid;
if (memcmp(&isakmp->i_ck, r_ck0, sizeof(cookie_t)) == 0) {
if (isakmp->v < ISAKMP_VERSION_NUMBER) {
if (ISAKMP_GETMAJORV(isakmp->v) < ISAKMP_MAJOR_VERSION) {
ISAKMP_GETMAJORV(isakmp->v));
if (ISAKMP_GETMINORV(isakmp->v) < ISAKMP_MINOR_VERSION) {
ISAKMP_GETMINORV(isakmp->v));
if (isakmp->flags & ~(ISAKMP_FLAG_E | ISAKMP_FLAG_C | ISAKMP_FLAG_A)) {
"invalid flag 0x%02x.\n", isakmp->flags);
if (ISSET(isakmp->flags, ISAKMP_FLAG_C)) {
if (isakmp->msgid == 0) {
isakmp_info_send_nx(isakmp, remote, local,
if (memcmp(&isakmp->r_ck, r_ck0, sizeof(cookie_t)) == 0 &&
switch (isakmp->etype) {
if (isakmp->msgid != 0) {
if (memcmp(&isakmp->r_ck, r_ck0,
isakmp->etype) < 0)
if (iph1->etype != isakmp->etype) {
s_isakmp_etype(isakmp->etype));
if (isakmp->np == ISAKMP_NPTYPE_FRAG)
isakmp->etype);
if (isakmp->np == ISAKMP_NPTYPE_FRAG)
isakmp_info_send_nx(isakmp, remote, local,
isakmp_pindex((isakmp_index *)&isakmp->i_ck,
isakmp->msgid));
if (isakmp->np == ISAKMP_NPTYPE_FRAG)
if (ISSET(isakmp->flags, ISAKMP_FLAG_C))
if (isakmp->np == ISAKMP_NPTYPE_FRAG)
isakmp->etype, saddr2str(remote));
if (isakmp->np == ISAKMP_NPTYPE_FRAG)
isakmp->etype, saddr2str(remote));
struct isakmp *isakmp = (struct isakmp *)msg->v;
if (ph2exchange[etypesw2(isakmp->etype)]
error = (ph2exchange[etypesw2(isakmp->etype)]
if (ISSET(((struct isakmp *)msg0->v)->flags, ISAKMP_FLAG_E)) {
if (ISSET(((struct isakmp *)msg->v)->flags, ISAKMP_FLAG_E))
memcpy(&iph1->index.r_ck, &((struct isakmp *)msg->v)->r_ck,
memcpy(&iph1->index.r_ck, &((struct isakmp *)msg->v)->r_ck,
struct isakmp *isakmp;
tlen += sizeof(*isakmp) + payload->l;
isakmp = (struct isakmp *)iph2->sendbuf->v;
memcpy(&isakmp->i_ck, &iph1->index.i_ck, sizeof(cookie_t));
memcpy(&isakmp->r_ck, &iph1->index.r_ck, sizeof(cookie_t));
isakmp->np = hash == NULL ? (np & 0xff) : ISAKMP_NPTYPE_HASH;
isakmp->v = iph1->version;
isakmp->etype = ISAKMP_ETYPE_CFG;
isakmp->flags = iph2->flags;
memcpy(&isakmp->msgid, &iph2->msgid, sizeof(isakmp->msgid));
isakmp->len = htonl(tlen);
p = (char *)(isakmp + 1);
if (ISSET(isakmp->flags, ISAKMP_FLAG_E)) {
struct isakmp *packet;
packet = (struct isakmp *)msg->v;
packet = (struct isakmp *)dmsg->v;
hdr = (struct isakmp *)buf->v;
hdr = (struct isakmp *)frag->v;
struct isakmp *isakmp;
if (msg->l < sizeof(*isakmp) + sizeof(*frag)) {
isakmp = (struct isakmp *)msg->v;
frag = (struct isakmp_frag *)(isakmp + 1);
if (msg->l < sizeof(*isakmp) + ntohs(frag->len) ||
struct isakmp *hdr;
if (!ISSET(((struct isakmp *)msg0->v)->flags, ISAKMP_FLAG_E)) {
memcpy(&iph1->index.r_ck, &((struct isakmp *)msg->v)->r_ck,
if (!ISSET(((struct isakmp *)msg0->v)->flags, ISAKMP_FLAG_E)) {
struct isakmp *isakmp;
encrypted = ISSET(((struct isakmp *)msg0->v)->flags, ISAKMP_FLAG_E);
msgid = ((struct isakmp *)msg0->v)->msgid;
ivm = oakley_newiv2(iph1, ((struct isakmp *)msg0->v)->msgid);
if (msg->l < sizeof(*isakmp) + sizeof(*gen)) {
isakmp = (struct isakmp *)msg->v;
gen = (struct isakmp_gen *)((caddr_t)isakmp + sizeof(struct isakmp));
if (isakmp->np != ISAKMP_NPTYPE_HASH) {
if (msg->l < sizeof(*isakmp) + ntohs(gen->len) + sizeof(*nd)) {
if (ntohs(nd->len) > msg->l - (sizeof(struct isakmp) +
hash = oakley_compute_hash1(iph1, isakmp->msgid, payload);
isakmp_info_send_nx(struct isakmp *isakmp, struct sockaddr *remote,
memcpy(&iph1->index.i_ck, &isakmp->i_ck, sizeof(cookie_t));
iph1->version = isakmp->v;
struct isakmp *isakmp;
tlen += sizeof(*isakmp) + payload->l;
isakmp = (struct isakmp *)iph2->sendbuf->v;
memcpy(&isakmp->i_ck, &iph1->index.i_ck, sizeof(cookie_t));
memcpy(&isakmp->r_ck, &iph1->index.r_ck, sizeof(cookie_t));
isakmp->np = hash == NULL ? (np & 0xff) : ISAKMP_NPTYPE_HASH;
isakmp->v = iph1->version;
isakmp->etype = ISAKMP_ETYPE_INFO;
isakmp->flags = iph2->flags;
memcpy(&isakmp->msgid, &iph2->msgid, sizeof(isakmp->msgid));
isakmp->len = htonl(tlen);
p = (char *)(isakmp + 1);
if (ISSET(isakmp->flags, ISAKMP_FLAG_E)) {
extern int isakmp_info_send_nx(struct isakmp *, struct sockaddr *,
len = sizeof(isakmp->msgid) + ntohs(sa->h.len);
memcpy(buf->v, &isakmp->msgid, sizeof(isakmp->msgid));
memcpy(buf->v + sizeof(isakmp->msgid), sa, ntohs(sa->h.len));
struct isakmp *isakmp = (struct isakmp *)msg->v;
struct isakmp *isakmp = (struct isakmp *)msg0->v;
if (!ISSET(((struct isakmp *)msg0->v)->flags, ISAKMP_FLAG_E)) {
tlen = ntohl(isakmp->len) - sizeof(*isakmp);
if (!ISSET(((struct isakmp *)msg0->v)->flags, ISAKMP_FLAG_E)) {
tlen = sizeof(struct isakmp)
struct isakmp *isakmp;
tlen = sizeof(*isakmp)
struct isakmp *isakmp = (struct isakmp *)msg0->v;
if (!ISSET(((struct isakmp *)msg0->v)->flags, ISAKMP_FLAG_E)) {
+ ntohl(isakmp->len) - sizeof(*isakmp);
tlen = sizeof(struct isakmp)
if (!ISSET(((struct isakmp *)msg0->v)->flags, ISAKMP_FLAG_E)) {
pl = msg->v + sizeof(struct isakmp);
len = msg->l - sizeof(struct isakmp);
len = sizeof(struct isakmp) + new->l;
memcpy(buf->v, msg->v, sizeof(struct isakmp));
memcpy(buf->v + sizeof(struct isakmp), new->v, new->l);
((struct isakmp *)buf->v)->len = htonl(buf->l);
pl = msg->v + sizeof(struct isakmp);
len = msg->l - sizeof(struct isakmp);
len = sizeof(struct isakmp) + new->l;
memcpy(buf->v, msg->v, sizeof(struct isakmp));
memcpy(buf->v + sizeof(struct isakmp), new->v, new->l);
((struct isakmp *)buf->v)->len = htonl(buf->l);
const char *isakmp = "isakmp";
nav[nac++] = isakmp;
const char *isakmp = "isakmp";
nav[nac++] = isakmp;