Lines Matching refs:crp
95 static int ipcomp_input_cb(struct cryptop *crp);
96 static int ipcomp_output_cb(struct cryptop *crp);
201 struct cryptop *crp; in ipcomp_input() local
235 crp = crypto_getreq(cryptoid, M_NOWAIT); in ipcomp_input()
236 if (crp == NULL) { in ipcomp_input()
246 crypto_freereq(crp); in ipcomp_input()
251 crp->crp_op = CRYPTO_OP_DECOMPRESS; in ipcomp_input()
252 crp->crp_payload_start = skip + hlen; in ipcomp_input()
253 crp->crp_payload_length = m->m_pkthdr.len - (skip + hlen); in ipcomp_input()
256 crp->crp_flags = CRYPTO_F_CBIFSYNC; in ipcomp_input()
257 crypto_use_mbuf(crp, m); in ipcomp_input()
258 crp->crp_callback = ipcomp_input_cb; in ipcomp_input()
259 crp->crp_opaque = xd; in ipcomp_input()
269 crp->crp_session = xd->cryptoid = sav->tdb_cryptoid; in ipcomp_input()
272 return crypto_dispatch(crp); in ipcomp_input()
283 ipcomp_input_cb(struct cryptop *crp) in ipcomp_input_cb() argument
296 m = crp->crp_buf.cb_mbuf; in ipcomp_input_cb()
297 xd = crp->crp_opaque; in ipcomp_input_cb()
309 if (crp->crp_etype) { in ipcomp_input_cb()
310 if (crp->crp_etype == EAGAIN) { in ipcomp_input_cb()
312 if (ipsec_updateid(sav, &crp->crp_session, &cryptoid) != 0) in ipcomp_input_cb()
314 xd->cryptoid = crp->crp_session; in ipcomp_input_cb()
316 return (crypto_dispatch(crp)); in ipcomp_input_cb()
319 DPRINTF(("%s: crypto error %d\n", __func__, crp->crp_etype)); in ipcomp_input_cb()
320 error = crp->crp_etype; in ipcomp_input_cb()
332 clen = crp->crp_olen; /* Length of data after processing */ in ipcomp_input_cb()
336 crypto_freereq(crp), crp = NULL; in ipcomp_input_cb()
390 if (crp != NULL) in ipcomp_input_cb()
391 crypto_freereq(crp); in ipcomp_input_cb()
404 struct cryptop *crp; in ipcomp_output() local
481 crp = crypto_getreq(cryptoid, M_NOWAIT); in ipcomp_output()
482 if (crp == NULL) { in ipcomp_output()
490 crp->crp_op = CRYPTO_OP_COMPRESS; in ipcomp_output()
491 crp->crp_payload_start = skip; in ipcomp_output()
492 crp->crp_payload_length = ralen; in ipcomp_output()
499 crypto_freereq(crp); in ipcomp_output()
513 crp->crp_flags = CRYPTO_F_CBIFSYNC; in ipcomp_output()
514 crypto_use_mbuf(crp, m); in ipcomp_output()
515 crp->crp_callback = ipcomp_output_cb; in ipcomp_output()
516 crp->crp_opaque = xd; in ipcomp_output()
518 return crypto_dispatch(crp); in ipcomp_output()
531 ipcomp_output_cb(struct cryptop *crp) in ipcomp_output_cb() argument
542 m = crp->crp_buf.cb_mbuf; in ipcomp_output_cb()
543 xd = crp->crp_opaque; in ipcomp_output_cb()
553 if (crp->crp_etype) { in ipcomp_output_cb()
554 if (crp->crp_etype == EAGAIN) { in ipcomp_output_cb()
556 if (ipsec_updateid(sav, &crp->crp_session, &cryptoid) != 0) in ipcomp_output_cb()
558 xd->cryptoid = crp->crp_session; in ipcomp_output_cb()
560 return (crypto_dispatch(crp)); in ipcomp_output_cb()
563 DPRINTF(("%s: crypto error %d\n", __func__, crp->crp_etype)); in ipcomp_output_cb()
564 error = crp->crp_etype; in ipcomp_output_cb()
576 if (crp->crp_payload_length > crp->crp_olen) { in ipcomp_output_cb()
644 __func__, crp->crp_payload_length, crp->crp_olen)); in ipcomp_output_cb()
651 crypto_freereq(crp); in ipcomp_output_cb()
662 crypto_freereq(crp); in ipcomp_output_cb()