Lines Matching refs:mhp
1689 key_gather_mbuf(struct mbuf *m, const struct sadb_msghdr *mhp, in key_gather_mbuf() argument
1699 IPSEC_ASSERT(mhp != NULL, ("null msghdr")); in key_gather_mbuf()
1707 if (idx == SADB_EXT_RESERVED && mhp->msg == NULL) in key_gather_mbuf()
1710 (mhp->ext[idx] == NULL || mhp->extlen[idx] == 0)) in key_gather_mbuf()
1726 len = mhp->extlen[idx]; in key_gather_mbuf()
1732 m_copydata(m, mhp->extoff[idx], mhp->extlen[idx], in key_gather_mbuf()
1735 n = m_copym(m, mhp->extoff[idx], mhp->extlen[idx], in key_gather_mbuf()
1779 key_spdadd(struct socket *so, struct mbuf *m, const struct sadb_msghdr *mhp) in key_spdadd() argument
1790 IPSEC_ASSERT(mhp != NULL, ("null msghdr")); in key_spdadd()
1791 IPSEC_ASSERT(mhp->msg != NULL, ("null msg")); in key_spdadd()
1793 if (mhp->ext[SADB_EXT_ADDRESS_SRC] == NULL || in key_spdadd()
1794 mhp->ext[SADB_EXT_ADDRESS_DST] == NULL || in key_spdadd()
1795 mhp->ext[SADB_X_EXT_POLICY] == NULL) { in key_spdadd()
1799 if (mhp->extlen[SADB_EXT_ADDRESS_SRC] < sizeof(struct sadb_address) || in key_spdadd()
1800 mhp->extlen[SADB_EXT_ADDRESS_DST] < sizeof(struct sadb_address) || in key_spdadd()
1801 mhp->extlen[SADB_X_EXT_POLICY] < sizeof(struct sadb_x_policy)) { in key_spdadd()
1806 if (mhp->ext[SADB_EXT_LIFETIME_HARD] != NULL) { in key_spdadd()
1807 if (mhp->extlen[SADB_EXT_LIFETIME_HARD] in key_spdadd()
1813 lft = (struct sadb_lifetime *)mhp->ext[SADB_EXT_LIFETIME_HARD]; in key_spdadd()
1816 src0 = (struct sadb_address *)mhp->ext[SADB_EXT_ADDRESS_SRC]; in key_spdadd()
1817 dst0 = (struct sadb_address *)mhp->ext[SADB_EXT_ADDRESS_DST]; in key_spdadd()
1818 xpl0 = (struct sadb_x_policy *)mhp->ext[SADB_X_EXT_POLICY]; in key_spdadd()
1842 mhp->msg->sadb_msg_errno = EINVAL; in key_spdadd()
1855 if (mhp->msg->sadb_msg_type != SADB_X_SPDSETIDX in key_spdadd()
1857 && mhp->extlen[SADB_X_EXT_POLICY] <= sizeof(*xpl0)) { in key_spdadd()
1870 if (mhp->msg->sadb_msg_type == SADB_X_SPDUPDATE) { in key_spdadd()
1935 if (mhp->msg->sadb_msg_type == SADB_X_SPDUPDATE) { in key_spdadd()
1957 n = key_gather_mbuf(m, mhp, 2, 5, SADB_EXT_RESERVED, in key_spdadd()
1961 n = key_gather_mbuf(m, mhp, 2, 4, SADB_EXT_RESERVED, in key_spdadd()
2042 const struct sadb_msghdr *mhp) in key_spddelete() argument
2051 IPSEC_ASSERT(mhp != NULL, ("null msghdr")); in key_spddelete()
2052 IPSEC_ASSERT(mhp->msg != NULL, ("null msg")); in key_spddelete()
2054 if (mhp->ext[SADB_EXT_ADDRESS_SRC] == NULL || in key_spddelete()
2055 mhp->ext[SADB_EXT_ADDRESS_DST] == NULL || in key_spddelete()
2056 mhp->ext[SADB_X_EXT_POLICY] == NULL) { in key_spddelete()
2061 if (mhp->extlen[SADB_EXT_ADDRESS_SRC] < sizeof(struct sadb_address) || in key_spddelete()
2062 mhp->extlen[SADB_EXT_ADDRESS_DST] < sizeof(struct sadb_address) || in key_spddelete()
2063 mhp->extlen[SADB_X_EXT_POLICY] < sizeof(struct sadb_x_policy)) { in key_spddelete()
2069 src0 = (struct sadb_address *)mhp->ext[SADB_EXT_ADDRESS_SRC]; in key_spddelete()
2070 dst0 = (struct sadb_address *)mhp->ext[SADB_EXT_ADDRESS_DST]; in key_spddelete()
2071 xpl0 = (struct sadb_x_policy *)mhp->ext[SADB_X_EXT_POLICY]; in key_spddelete()
2122 n = key_gather_mbuf(m, mhp, 1, 4, SADB_EXT_RESERVED, in key_spddelete()
2150 const struct sadb_msghdr *mhp) in key_spddelete2() argument
2157 IPSEC_ASSERT(mhp != NULL, ("null msghdr")); in key_spddelete2()
2158 IPSEC_ASSERT(mhp->msg != NULL, ("null msg")); in key_spddelete2()
2160 if (mhp->ext[SADB_X_EXT_POLICY] == NULL || in key_spddelete2()
2161 mhp->extlen[SADB_X_EXT_POLICY] < sizeof(struct sadb_x_policy)) { in key_spddelete2()
2166 id = ((struct sadb_x_policy *)mhp->ext[SADB_X_EXT_POLICY])->sadb_x_policy_id; in key_spddelete2()
2208 n->m_next = m_copym(m, mhp->extoff[SADB_X_EXT_POLICY], in key_spddelete2()
2209 mhp->extlen[SADB_X_EXT_POLICY], M_NOWAIT); in key_spddelete2()
2241 key_spdget(struct socket *so, struct mbuf *m, const struct sadb_msghdr *mhp) in key_spdget() argument
2249 IPSEC_ASSERT(mhp != NULL, ("null msghdr")); in key_spdget()
2250 IPSEC_ASSERT(mhp->msg != NULL, ("null msg")); in key_spdget()
2252 if (mhp->ext[SADB_X_EXT_POLICY] == NULL || in key_spdget()
2253 mhp->extlen[SADB_X_EXT_POLICY] < sizeof(struct sadb_x_policy)) { in key_spdget()
2259 id = ((struct sadb_x_policy *)mhp->ext[SADB_X_EXT_POLICY])->sadb_x_policy_id; in key_spdget()
2267 n = key_setdumpsp(sp, SADB_X_SPDGET, mhp->msg->sadb_msg_seq, in key_spdget()
2268 mhp->msg->sadb_msg_pid); in key_spdget()
2353 key_spdflush(struct socket *so, struct mbuf *m, const struct sadb_msghdr *mhp) in key_spdflush() argument
2361 IPSEC_ASSERT(mhp != NULL, ("null msghdr")); in key_spdflush()
2362 IPSEC_ASSERT(mhp->msg != NULL, ("null msg")); in key_spdflush()
2402 key_spddump(struct socket *so, struct mbuf *m, const struct sadb_msghdr *mhp) in key_spddump() argument
2411 IPSEC_ASSERT(mhp != NULL, ("null msghdr")); in key_spddump()
2412 IPSEC_ASSERT(mhp->msg != NULL, ("null msg")); in key_spddump()
2432 mhp->msg->sadb_msg_pid); in key_spddump()
2750 key_newsav(struct mbuf *m, const struct sadb_msghdr *mhp, in key_newsav() argument
2757 IPSEC_ASSERT(mhp != NULL, ("null msghdr")); in key_newsav()
2758 IPSEC_ASSERT(mhp->msg != NULL, ("null msg")); in key_newsav()
2768 switch (mhp->msg->sadb_msg_type) { in key_newsav()
2774 if (mhp->msg->sadb_msg_seq == 0) in key_newsav()
2779 newsav->seq = mhp->msg->sadb_msg_seq; in key_newsav()
2784 if (mhp->ext[SADB_EXT_SA] == NULL) { in key_newsav()
2792 xsa = (const struct sadb_sa *)mhp->ext[SADB_EXT_SA]; in key_newsav()
2794 newsav->seq = mhp->msg->sadb_msg_seq; in key_newsav()
2805 if (mhp->msg->sadb_msg_type != SADB_GETSPI) { in key_newsav()
2806 *errp = key_setsaval(newsav, m, mhp); in key_newsav()
2818 newsav->pid = mhp->msg->sadb_msg_pid; in key_newsav()
3015 const struct sadb_msghdr *mhp) in key_setsaval() argument
3020 IPSEC_ASSERT(mhp != NULL, ("null msghdr")); in key_setsaval()
3021 IPSEC_ASSERT(mhp->msg != NULL, ("null msg")); in key_setsaval()
3042 if (mhp->ext[SADB_EXT_SA] != NULL) { in key_setsaval()
3045 sa0 = (const struct sadb_sa *)mhp->ext[SADB_EXT_SA]; in key_setsaval()
3046 if (mhp->extlen[SADB_EXT_SA] < sizeof(*sa0)) { in key_setsaval()
3072 if (mhp->ext[SADB_EXT_KEY_AUTH] != NULL) { in key_setsaval()
3076 key0 = (const struct sadb_key *)mhp->ext[SADB_EXT_KEY_AUTH]; in key_setsaval()
3077 len = mhp->extlen[SADB_EXT_KEY_AUTH]; in key_setsaval()
3084 switch (mhp->msg->sadb_msg_satype) { in key_setsaval()
3114 if (mhp->ext[SADB_EXT_KEY_ENCRYPT] != NULL) { in key_setsaval()
3118 key0 = (const struct sadb_key *)mhp->ext[SADB_EXT_KEY_ENCRYPT]; in key_setsaval()
3119 len = mhp->extlen[SADB_EXT_KEY_ENCRYPT]; in key_setsaval()
3126 switch (mhp->msg->sadb_msg_satype) { in key_setsaval()
3164 switch (mhp->msg->sadb_msg_satype) { in key_setsaval()
3180 __func__, mhp->msg->sadb_msg_satype)); in key_setsaval()
3204 lft0 = (struct sadb_lifetime *)mhp->ext[SADB_EXT_LIFETIME_HARD]; in key_setsaval()
3206 if (mhp->extlen[SADB_EXT_LIFETIME_HARD] < sizeof(*lft0)) { in key_setsaval()
3219 lft0 = (struct sadb_lifetime *)mhp->ext[SADB_EXT_LIFETIME_SOFT]; in key_setsaval()
3221 if (mhp->extlen[SADB_EXT_LIFETIME_SOFT] < sizeof(*lft0)) { in key_setsaval()
4557 key_getspi(struct socket *so, struct mbuf *m, const struct sadb_msghdr *mhp) in key_getspi() argument
4571 IPSEC_ASSERT(mhp != NULL, ("null msghdr")); in key_getspi()
4572 IPSEC_ASSERT(mhp->msg != NULL, ("null msg")); in key_getspi()
4574 if (mhp->ext[SADB_EXT_ADDRESS_SRC] == NULL || in key_getspi()
4575 mhp->ext[SADB_EXT_ADDRESS_DST] == NULL) { in key_getspi()
4580 if (mhp->extlen[SADB_EXT_ADDRESS_SRC] < sizeof(struct sadb_address) || in key_getspi()
4581 mhp->extlen[SADB_EXT_ADDRESS_DST] < sizeof(struct sadb_address)) { in key_getspi()
4586 if (mhp->ext[SADB_X_EXT_SA2] != NULL) { in key_getspi()
4587 mode = ((struct sadb_x_sa2 *)mhp->ext[SADB_X_EXT_SA2])->sadb_x_sa2_mode; in key_getspi()
4588 reqid = ((struct sadb_x_sa2 *)mhp->ext[SADB_X_EXT_SA2])->sadb_x_sa2_reqid; in key_getspi()
4594 src0 = (struct sadb_address *)(mhp->ext[SADB_EXT_ADDRESS_SRC]); in key_getspi()
4595 dst0 = (struct sadb_address *)(mhp->ext[SADB_EXT_ADDRESS_DST]); in key_getspi()
4598 if ((proto = key_satype2proto(mhp->msg->sadb_msg_satype)) == 0) { in key_getspi()
4650 if (mhp->ext[SADB_X_EXT_NAT_T_OAI] != NULL) in key_getspi()
4652 if (mhp->ext[SADB_X_EXT_NAT_T_OAR] != NULL) in key_getspi()
4655 if (mhp->ext[SADB_X_EXT_NAT_T_TYPE] != NULL && in key_getspi()
4656 mhp->ext[SADB_X_EXT_NAT_T_SPORT] != NULL && in key_getspi()
4657 mhp->ext[SADB_X_EXT_NAT_T_DPORT] != NULL) { in key_getspi()
4661 if (mhp->extlen[SADB_X_EXT_NAT_T_TYPE] < sizeof(*type) || in key_getspi()
4662 mhp->extlen[SADB_X_EXT_NAT_T_SPORT] < sizeof(*sport) || in key_getspi()
4663 mhp->extlen[SADB_X_EXT_NAT_T_DPORT] < sizeof(*dport)) { in key_getspi()
4670 mhp->ext[SADB_X_EXT_NAT_T_SPORT]; in key_getspi()
4672 mhp->ext[SADB_X_EXT_NAT_T_DPORT]; in key_getspi()
4682 spi = key_do_getnewspi((struct sadb_spirange *)mhp->ext[SADB_EXT_SPIRANGE], in key_getspi()
4698 newsav = KEY_NEWSAV(m, mhp, newsah, &error); in key_getspi()
4708 if (mhp->msg->sadb_msg_seq != 0) { in key_getspi()
4710 if ((acq = key_getacqbyseq(mhp->msg->sadb_msg_seq)) != NULL) { in key_getspi()
4754 n->m_next = key_gather_mbuf(m, mhp, 0, 2, SADB_EXT_ADDRESS_SRC, in key_getspi()
4867 key_update(struct socket *so, struct mbuf *m, const struct sadb_msghdr *mhp) in key_update() argument
4887 IPSEC_ASSERT(mhp != NULL, ("null msghdr")); in key_update()
4888 IPSEC_ASSERT(mhp->msg != NULL, ("null msg")); in key_update()
4891 if ((proto = key_satype2proto(mhp->msg->sadb_msg_satype)) == 0) { in key_update()
4897 if (mhp->ext[SADB_EXT_SA] == NULL || in key_update()
4898 mhp->ext[SADB_EXT_ADDRESS_SRC] == NULL || in key_update()
4899 mhp->ext[SADB_EXT_ADDRESS_DST] == NULL || in key_update()
4900 (mhp->msg->sadb_msg_satype == SADB_SATYPE_ESP && in key_update()
4901 mhp->ext[SADB_EXT_KEY_ENCRYPT] == NULL) || in key_update()
4902 (mhp->msg->sadb_msg_satype == SADB_SATYPE_AH && in key_update()
4903 mhp->ext[SADB_EXT_KEY_AUTH] == NULL) || in key_update()
4904 (mhp->ext[SADB_EXT_LIFETIME_HARD] != NULL && in key_update()
4905 mhp->ext[SADB_EXT_LIFETIME_SOFT] == NULL) || in key_update()
4906 (mhp->ext[SADB_EXT_LIFETIME_HARD] == NULL && in key_update()
4907 mhp->ext[SADB_EXT_LIFETIME_SOFT] != NULL)) { in key_update()
4912 if (mhp->extlen[SADB_EXT_SA] < sizeof(struct sadb_sa) || in key_update()
4913 mhp->extlen[SADB_EXT_ADDRESS_SRC] < sizeof(struct sadb_address) || in key_update()
4914 mhp->extlen[SADB_EXT_ADDRESS_DST] < sizeof(struct sadb_address)) { in key_update()
4919 if (mhp->ext[SADB_X_EXT_SA2] != NULL) { in key_update()
4920 mode = ((struct sadb_x_sa2 *)mhp->ext[SADB_X_EXT_SA2])->sadb_x_sa2_mode; in key_update()
4921 reqid = ((struct sadb_x_sa2 *)mhp->ext[SADB_X_EXT_SA2])->sadb_x_sa2_reqid; in key_update()
4928 sa0 = (struct sadb_sa *)mhp->ext[SADB_EXT_SA]; in key_update()
4929 src0 = (struct sadb_address *)(mhp->ext[SADB_EXT_ADDRESS_SRC]); in key_update()
4930 dst0 = (struct sadb_address *)(mhp->ext[SADB_EXT_ADDRESS_DST]); in key_update()
4946 if (mhp->ext[SADB_X_EXT_NAT_T_TYPE] != NULL && in key_update()
4947 mhp->ext[SADB_X_EXT_NAT_T_SPORT] != NULL && in key_update()
4948 mhp->ext[SADB_X_EXT_NAT_T_DPORT] != NULL) { in key_update()
4950 if (mhp->extlen[SADB_X_EXT_NAT_T_TYPE] < sizeof(*type) || in key_update()
4951 mhp->extlen[SADB_X_EXT_NAT_T_SPORT] < sizeof(*sport) || in key_update()
4952 mhp->extlen[SADB_X_EXT_NAT_T_DPORT] < sizeof(*dport)) { in key_update()
4959 mhp->ext[SADB_X_EXT_NAT_T_TYPE]; in key_update()
4961 mhp->ext[SADB_X_EXT_NAT_T_SPORT]; in key_update()
4963 mhp->ext[SADB_X_EXT_NAT_T_DPORT]; in key_update()
4968 if (mhp->ext[SADB_X_EXT_NAT_T_OAI] != NULL && in key_update()
4969 mhp->ext[SADB_X_EXT_NAT_T_OAR] != NULL) { in key_update()
4970 if (mhp->extlen[SADB_X_EXT_NAT_T_OAI] < sizeof(*iaddr) || in key_update()
4971 mhp->extlen[SADB_X_EXT_NAT_T_OAR] < sizeof(*raddr)) { in key_update()
4976 iaddr = (struct sadb_address *)mhp->ext[SADB_X_EXT_NAT_T_OAI]; in key_update()
4977 raddr = (struct sadb_address *)mhp->ext[SADB_X_EXT_NAT_T_OAR]; in key_update()
4982 if (mhp->ext[SADB_X_EXT_NAT_T_FRAG] != NULL) { in key_update()
4983 if (mhp->extlen[SADB_X_EXT_NAT_T_FRAG] < sizeof(*frag)) { in key_update()
4989 mhp->ext[SADB_X_EXT_NAT_T_FRAG]; in key_update()
5003 error = key_setident(sah, m, mhp); in key_update()
5009 if (mhp->msg->sadb_msg_seq != 0 in key_update()
5010 && (sav = key_getsavbyseq(sah, mhp->msg->sadb_msg_seq)) == NULL) { in key_update()
5012 "exists.\n", __func__, mhp->msg->sadb_msg_seq)); in key_update()
5042 if (sav->pid != mhp->msg->sadb_msg_pid) { in key_update()
5044 __func__, sav->pid, mhp->msg->sadb_msg_pid)); in key_update()
5049 error = key_setsaval(sav, m, mhp); in key_update()
5082 if ((mhp->msg->sadb_msg_errno = key_mature(sav)) != 0) { in key_update()
5091 n = key_getmsgbuf_x1(m, mhp); in key_update()
5152 key_add(struct socket *so, struct mbuf *m, const struct sadb_msghdr *mhp) in key_add() argument
5171 IPSEC_ASSERT(mhp != NULL, ("null msghdr")); in key_add()
5172 IPSEC_ASSERT(mhp->msg != NULL, ("null msg")); in key_add()
5175 if ((proto = key_satype2proto(mhp->msg->sadb_msg_satype)) == 0) { in key_add()
5181 if (mhp->ext[SADB_EXT_SA] == NULL || in key_add()
5182 mhp->ext[SADB_EXT_ADDRESS_SRC] == NULL || in key_add()
5183 mhp->ext[SADB_EXT_ADDRESS_DST] == NULL || in key_add()
5184 (mhp->msg->sadb_msg_satype == SADB_SATYPE_ESP && in key_add()
5185 mhp->ext[SADB_EXT_KEY_ENCRYPT] == NULL) || in key_add()
5186 (mhp->msg->sadb_msg_satype == SADB_SATYPE_AH && in key_add()
5187 mhp->ext[SADB_EXT_KEY_AUTH] == NULL) || in key_add()
5188 (mhp->ext[SADB_EXT_LIFETIME_HARD] != NULL && in key_add()
5189 mhp->ext[SADB_EXT_LIFETIME_SOFT] == NULL) || in key_add()
5190 (mhp->ext[SADB_EXT_LIFETIME_HARD] == NULL && in key_add()
5191 mhp->ext[SADB_EXT_LIFETIME_SOFT] != NULL)) { in key_add()
5196 if (mhp->extlen[SADB_EXT_SA] < sizeof(struct sadb_sa) || in key_add()
5197 mhp->extlen[SADB_EXT_ADDRESS_SRC] < sizeof(struct sadb_address) || in key_add()
5198 mhp->extlen[SADB_EXT_ADDRESS_DST] < sizeof(struct sadb_address)) { in key_add()
5204 if (mhp->ext[SADB_X_EXT_SA2] != NULL) { in key_add()
5205 mode = ((struct sadb_x_sa2 *)mhp->ext[SADB_X_EXT_SA2])->sadb_x_sa2_mode; in key_add()
5206 reqid = ((struct sadb_x_sa2 *)mhp->ext[SADB_X_EXT_SA2])->sadb_x_sa2_reqid; in key_add()
5212 sa0 = (struct sadb_sa *)mhp->ext[SADB_EXT_SA]; in key_add()
5213 src0 = (struct sadb_address *)mhp->ext[SADB_EXT_ADDRESS_SRC]; in key_add()
5214 dst0 = (struct sadb_address *)mhp->ext[SADB_EXT_ADDRESS_DST]; in key_add()
5230 if (mhp->ext[SADB_X_EXT_NAT_T_TYPE] != NULL && in key_add()
5231 mhp->ext[SADB_X_EXT_NAT_T_SPORT] != NULL && in key_add()
5232 mhp->ext[SADB_X_EXT_NAT_T_DPORT] != NULL) { in key_add()
5235 if (mhp->extlen[SADB_X_EXT_NAT_T_TYPE] < sizeof(*type) || in key_add()
5236 mhp->extlen[SADB_X_EXT_NAT_T_SPORT] < sizeof(*sport) || in key_add()
5237 mhp->extlen[SADB_X_EXT_NAT_T_DPORT] < sizeof(*dport)) { in key_add()
5244 mhp->ext[SADB_X_EXT_NAT_T_TYPE]; in key_add()
5246 mhp->ext[SADB_X_EXT_NAT_T_SPORT]; in key_add()
5248 mhp->ext[SADB_X_EXT_NAT_T_DPORT]; in key_add()
5259 if (mhp->ext[SADB_X_EXT_NAT_T_OAI] != NULL && in key_add()
5260 mhp->ext[SADB_X_EXT_NAT_T_OAR] != NULL) { in key_add()
5261 if (mhp->extlen[SADB_X_EXT_NAT_T_OAI] < sizeof(*iaddr) || in key_add()
5262 mhp->extlen[SADB_X_EXT_NAT_T_OAR] < sizeof(*raddr)) { in key_add()
5267 iaddr = (struct sadb_address *)mhp->ext[SADB_X_EXT_NAT_T_OAI]; in key_add()
5268 raddr = (struct sadb_address *)mhp->ext[SADB_X_EXT_NAT_T_OAR]; in key_add()
5273 if (mhp->ext[SADB_X_EXT_NAT_T_FRAG] != NULL) { in key_add()
5274 if (mhp->extlen[SADB_X_EXT_NAT_T_FRAG] < sizeof(*frag)) { in key_add()
5280 mhp->ext[SADB_X_EXT_NAT_T_FRAG]; in key_add()
5297 error = key_setident(newsah, m, mhp); in key_add()
5311 newsav = KEY_NEWSAV(m, mhp, newsah, &error); in key_add()
5350 n = key_getmsgbuf_x1(m, mhp); in key_add()
5364 const struct sadb_msghdr *mhp) in key_setident() argument
5371 IPSEC_ASSERT(mhp != NULL, ("null msghdr")); in key_setident()
5372 IPSEC_ASSERT(mhp->msg != NULL, ("null msg")); in key_setident()
5375 if (mhp->ext[SADB_EXT_IDENTITY_SRC] == NULL && in key_setident()
5376 mhp->ext[SADB_EXT_IDENTITY_DST] == NULL) { in key_setident()
5382 if (mhp->ext[SADB_EXT_IDENTITY_SRC] == NULL || in key_setident()
5383 mhp->ext[SADB_EXT_IDENTITY_DST] == NULL) { in key_setident()
5388 idsrc = (const struct sadb_ident *)mhp->ext[SADB_EXT_IDENTITY_SRC]; in key_setident()
5389 iddst = (const struct sadb_ident *)mhp->ext[SADB_EXT_IDENTITY_DST]; in key_setident()
5390 idsrclen = mhp->extlen[SADB_EXT_IDENTITY_SRC]; in key_setident()
5391 iddstlen = mhp->extlen[SADB_EXT_IDENTITY_DST]; in key_setident()
5437 key_getmsgbuf_x1(struct mbuf *m, const struct sadb_msghdr *mhp) in key_getmsgbuf_x1() argument
5442 IPSEC_ASSERT(mhp != NULL, ("null msghdr")); in key_getmsgbuf_x1()
5443 IPSEC_ASSERT(mhp->msg != NULL, ("null msg")); in key_getmsgbuf_x1()
5446 n = key_gather_mbuf(m, mhp, 1, 9, SADB_EXT_RESERVED, in key_getmsgbuf_x1()
5478 key_delete(struct socket *so, struct mbuf *m, const struct sadb_msghdr *mhp) in key_delete() argument
5489 IPSEC_ASSERT(mhp != NULL, ("null msghdr")); in key_delete()
5490 IPSEC_ASSERT(mhp->msg != NULL, ("null msg")); in key_delete()
5493 if ((proto = key_satype2proto(mhp->msg->sadb_msg_satype)) == 0) { in key_delete()
5499 if (mhp->ext[SADB_EXT_ADDRESS_SRC] == NULL || in key_delete()
5500 mhp->ext[SADB_EXT_ADDRESS_DST] == NULL) { in key_delete()
5506 if (mhp->extlen[SADB_EXT_ADDRESS_SRC] < sizeof(struct sadb_address) || in key_delete()
5507 mhp->extlen[SADB_EXT_ADDRESS_DST] < sizeof(struct sadb_address)) { in key_delete()
5513 if (mhp->ext[SADB_EXT_SA] == NULL) { in key_delete()
5520 return key_delete_all(so, m, mhp, proto); in key_delete()
5521 } else if (mhp->extlen[SADB_EXT_SA] < sizeof(struct sadb_sa)) { in key_delete()
5527 sa0 = (struct sadb_sa *)mhp->ext[SADB_EXT_SA]; in key_delete()
5528 src0 = (struct sadb_address *)(mhp->ext[SADB_EXT_ADDRESS_SRC]); in key_delete()
5529 dst0 = (struct sadb_address *)(mhp->ext[SADB_EXT_ADDRESS_DST]); in key_delete()
5545 if (mhp->ext[SADB_X_EXT_NAT_T_SPORT] != NULL && in key_delete()
5546 mhp->ext[SADB_X_EXT_NAT_T_DPORT] != NULL) { in key_delete()
5549 if (mhp->extlen[SADB_X_EXT_NAT_T_SPORT] < sizeof(*sport) || in key_delete()
5550 mhp->extlen[SADB_X_EXT_NAT_T_DPORT] < sizeof(*dport)) { in key_delete()
5557 mhp->ext[SADB_X_EXT_NAT_T_SPORT]; in key_delete()
5559 mhp->ext[SADB_X_EXT_NAT_T_DPORT]; in key_delete()
5599 n = key_gather_mbuf(m, mhp, 1, 4, SADB_EXT_RESERVED, in key_delete()
5623 const struct sadb_msghdr *mhp, u_int16_t proto) in key_delete_all() argument
5631 src0 = (struct sadb_address *)(mhp->ext[SADB_EXT_ADDRESS_SRC]); in key_delete_all()
5632 dst0 = (struct sadb_address *)(mhp->ext[SADB_EXT_ADDRESS_DST]); in key_delete_all()
5649 if (mhp->ext[SADB_X_EXT_NAT_T_SPORT] != NULL && in key_delete_all()
5650 mhp->ext[SADB_X_EXT_NAT_T_DPORT] != NULL) { in key_delete_all()
5653 if (mhp->extlen[SADB_X_EXT_NAT_T_SPORT] < sizeof(*sport) || in key_delete_all()
5654 mhp->extlen[SADB_X_EXT_NAT_T_DPORT] < sizeof(*dport)) { in key_delete_all()
5661 mhp->ext[SADB_X_EXT_NAT_T_SPORT]; in key_delete_all()
5663 mhp->ext[SADB_X_EXT_NAT_T_DPORT]; in key_delete_all()
5711 n = key_gather_mbuf(m, mhp, 1, 3, SADB_EXT_RESERVED, in key_delete_all()
5743 key_get(struct socket *so, struct mbuf *m, const struct sadb_msghdr *mhp) in key_get() argument
5754 IPSEC_ASSERT(mhp != NULL, ("null msghdr")); in key_get()
5755 IPSEC_ASSERT(mhp->msg != NULL, ("null msg")); in key_get()
5758 if ((proto = key_satype2proto(mhp->msg->sadb_msg_satype)) == 0) { in key_get()
5764 if (mhp->ext[SADB_EXT_SA] == NULL || in key_get()
5765 mhp->ext[SADB_EXT_ADDRESS_SRC] == NULL || in key_get()
5766 mhp->ext[SADB_EXT_ADDRESS_DST] == NULL) { in key_get()
5771 if (mhp->extlen[SADB_EXT_SA] < sizeof(struct sadb_sa) || in key_get()
5772 mhp->extlen[SADB_EXT_ADDRESS_SRC] < sizeof(struct sadb_address) || in key_get()
5773 mhp->extlen[SADB_EXT_ADDRESS_DST] < sizeof(struct sadb_address)) { in key_get()
5779 sa0 = (struct sadb_sa *)mhp->ext[SADB_EXT_SA]; in key_get()
5780 src0 = (struct sadb_address *)mhp->ext[SADB_EXT_ADDRESS_SRC]; in key_get()
5781 dst0 = (struct sadb_address *)mhp->ext[SADB_EXT_ADDRESS_DST]; in key_get()
5798 if (mhp->ext[SADB_X_EXT_NAT_T_SPORT] != NULL && in key_get()
5799 mhp->ext[SADB_X_EXT_NAT_T_DPORT] != NULL) { in key_get()
5802 if (mhp->extlen[SADB_X_EXT_NAT_T_SPORT] < sizeof(*sport) || in key_get()
5803 mhp->extlen[SADB_X_EXT_NAT_T_DPORT] < sizeof(*dport)) { in key_get()
5810 mhp->ext[SADB_X_EXT_NAT_T_SPORT]; in key_get()
5812 mhp->ext[SADB_X_EXT_NAT_T_DPORT]; in key_get()
5854 n = key_setdumpsa(sav, SADB_GET, satype, mhp->msg->sadb_msg_seq, in key_get()
5855 mhp->msg->sadb_msg_pid); in key_get()
6484 key_acquire2(struct socket *so, struct mbuf *m, const struct sadb_msghdr *mhp) in key_acquire2() argument
6494 IPSEC_ASSERT(mhp != NULL, ("null msghdr")); in key_acquire2()
6495 IPSEC_ASSERT(mhp->msg != NULL, ("null msg")); in key_acquire2()
6503 if (mhp->msg->sadb_msg_len == PFKEY_UNIT64(sizeof(struct sadb_msg))) { in key_acquire2()
6507 if (mhp->msg->sadb_msg_seq == 0) { in key_acquire2()
6514 if ((acq = key_getacqbyseq(mhp->msg->sadb_msg_seq)) == NULL) { in key_acquire2()
6535 if ((proto = key_satype2proto(mhp->msg->sadb_msg_satype)) == 0) { in key_acquire2()
6541 if (mhp->ext[SADB_EXT_ADDRESS_SRC] == NULL || in key_acquire2()
6542 mhp->ext[SADB_EXT_ADDRESS_DST] == NULL || in key_acquire2()
6543 mhp->ext[SADB_EXT_PROPOSAL] == NULL) { in key_acquire2()
6549 if (mhp->extlen[SADB_EXT_ADDRESS_SRC] < sizeof(struct sadb_address) || in key_acquire2()
6550 mhp->extlen[SADB_EXT_ADDRESS_DST] < sizeof(struct sadb_address) || in key_acquire2()
6551 mhp->extlen[SADB_EXT_PROPOSAL] < sizeof(struct sadb_prop)) { in key_acquire2()
6558 src0 = (struct sadb_address *)mhp->ext[SADB_EXT_ADDRESS_SRC]; in key_acquire2()
6559 dst0 = (struct sadb_address *)mhp->ext[SADB_EXT_ADDRESS_DST]; in key_acquire2()
6576 if (mhp->ext[SADB_X_EXT_NAT_T_SPORT] != NULL && in key_acquire2()
6577 mhp->ext[SADB_X_EXT_NAT_T_DPORT] != NULL) { in key_acquire2()
6580 if (mhp->extlen[SADB_X_EXT_NAT_T_SPORT] < sizeof(*sport) || in key_acquire2()
6581 mhp->extlen[SADB_X_EXT_NAT_T_DPORT] < sizeof(*dport)) { in key_acquire2()
6588 mhp->ext[SADB_X_EXT_NAT_T_SPORT]; in key_acquire2()
6590 mhp->ext[SADB_X_EXT_NAT_T_DPORT]; in key_acquire2()
6618 __func__, mhp->msg->sadb_msg_errno)); in key_acquire2()
6639 key_register(struct socket *so, struct mbuf *m, const struct sadb_msghdr *mhp) in key_register() argument
6645 IPSEC_ASSERT(mhp != NULL, ("null msghdr")); in key_register()
6646 IPSEC_ASSERT(mhp->msg != NULL, ("null msg")); in key_register()
6649 if (mhp->msg->sadb_msg_satype >= sizeof(V_regtree)/sizeof(V_regtree[0])) in key_register()
6653 if (mhp->msg->sadb_msg_satype == SADB_SATYPE_UNSPEC) in key_register()
6658 LIST_FOREACH(reg, &V_regtree[mhp->msg->sadb_msg_satype], chain) { in key_register()
6679 LIST_INSERT_HEAD(&V_regtree[mhp->msg->sadb_msg_satype], newreg, chain); in key_register()
6967 key_flush(struct socket *so, struct mbuf *m, const struct sadb_msghdr *mhp) in key_flush() argument
6977 IPSEC_ASSERT(mhp != NULL, ("null msghdr")); in key_flush()
6978 IPSEC_ASSERT(mhp->msg != NULL, ("null msg")); in key_flush()
6981 if ((proto = key_satype2proto(mhp->msg->sadb_msg_satype)) == 0) { in key_flush()
6994 if (mhp->msg->sadb_msg_satype != SADB_SATYPE_UNSPEC in key_flush()
7047 key_dump(struct socket *so, struct mbuf *m, const struct sadb_msghdr *mhp) in key_dump() argument
7061 IPSEC_ASSERT(mhp != NULL, ("null msghdr")); in key_dump()
7062 IPSEC_ASSERT(mhp->msg != NULL, ("null msg")); in key_dump()
7065 if ((proto = key_satype2proto(mhp->msg->sadb_msg_satype)) == 0) { in key_dump()
7075 if (mhp->msg->sadb_msg_satype != SADB_SATYPE_UNSPEC in key_dump()
7097 if (mhp->msg->sadb_msg_satype != SADB_SATYPE_UNSPEC in key_dump()
7115 --cnt, mhp->msg->sadb_msg_pid); in key_dump()
7136 key_promisc(struct socket *so, struct mbuf *m, const struct sadb_msghdr *mhp) in key_promisc() argument
7142 IPSEC_ASSERT(mhp != NULL, ("null msghdr")); in key_promisc()
7143 IPSEC_ASSERT(mhp->msg != NULL, ("null msg")); in key_promisc()
7145 olen = PFKEY_UNUNIT64(mhp->msg->sadb_msg_len); in key_promisc()
7160 mhp->msg->sadb_msg_errno = 0; in key_promisc()
7161 switch (mhp->msg->sadb_msg_satype) { in key_promisc()
7164 kp->kp_promisc = mhp->msg->sadb_msg_satype; in key_promisc()
7171 mhp->msg->sadb_msg_errno = 0; in key_promisc()
7487 key_align(struct mbuf *m, struct sadb_msghdr *mhp) in key_align() argument
7496 IPSEC_ASSERT(mhp != NULL, ("null msghdr")); in key_align()
7501 bzero(mhp, sizeof(*mhp)); in key_align()
7503 mhp->msg = mtod(m, struct sadb_msg *); in key_align()
7504 mhp->ext[0] = (struct sadb_ext *)mhp->msg; /*XXX backward compat */ in key_align()
7506 end = PFKEY_UNUNIT64(mhp->msg->sadb_msg_len); in key_align()
7549 if (mhp->ext[ext->sadb_ext_type] != NULL) { in key_align()
7580 mhp->ext[ext->sadb_ext_type] = ext; in key_align()
7581 mhp->extoff[ext->sadb_ext_type] = off; in key_align()
7582 mhp->extlen[ext->sadb_ext_type] = extlen; in key_align()