Lines Matching refs:crp
177 ktls_ocf_callback_sync(struct cryptop *crp __unused) in ktls_ocf_callback_sync()
183 ktls_ocf_callback_async(struct cryptop *crp) in ktls_ocf_callback_async() argument
187 oo = crp->crp_opaque; in ktls_ocf_callback_async()
196 ktls_ocf_dispatch(struct ktls_ocf_session *os, struct cryptop *crp) in ktls_ocf_dispatch() argument
205 crp->crp_opaque = &oo; in ktls_ocf_dispatch()
207 async = !CRYPTO_SESS_SYNC(crp->crp_session); in ktls_ocf_dispatch()
208 crp->crp_callback = async ? ktls_ocf_callback_async : in ktls_ocf_dispatch()
211 error = crypto_dispatch(crp); in ktls_ocf_dispatch()
221 if (crp->crp_etype != EAGAIN) { in ktls_ocf_dispatch()
222 error = crp->crp_etype; in ktls_ocf_dispatch()
226 crp->crp_etype = 0; in ktls_ocf_dispatch()
234 ktls_ocf_dispatch_async_cb(struct cryptop *crp) in ktls_ocf_dispatch_async_cb() argument
239 state = crp->crp_opaque; in ktls_ocf_dispatch_async_cb()
240 if (crp->crp_etype == EAGAIN) { in ktls_ocf_dispatch_async_cb()
241 crp->crp_etype = 0; in ktls_ocf_dispatch_async_cb()
243 error = crypto_dispatch(crp); in ktls_ocf_dispatch_async_cb()
245 crypto_destroyreq(crp); in ktls_ocf_dispatch_async_cb()
251 error = crp->crp_etype; in ktls_ocf_dispatch_async_cb()
252 crypto_destroyreq(crp); in ktls_ocf_dispatch_async_cb()
259 struct cryptop *crp) in ktls_ocf_dispatch_async() argument
263 crp->crp_opaque = state; in ktls_ocf_dispatch_async()
264 crp->crp_callback = ktls_ocf_dispatch_async_cb; in ktls_ocf_dispatch_async()
265 error = crypto_dispatch(crp); in ktls_ocf_dispatch_async()
267 crypto_destroyreq(crp); in ktls_ocf_dispatch_async()
279 struct cryptop *crp; in ktls_ocf_tls_cbc_encrypt() local
291 crp = &state->crp; in ktls_ocf_tls_cbc_encrypt()
342 crypto_initreq(crp, os->mac_sid); in ktls_ocf_tls_cbc_encrypt()
343 crp->crp_payload_start = 0; in ktls_ocf_tls_cbc_encrypt()
344 crp->crp_payload_length = sizeof(*ad) + tls_comp_len; in ktls_ocf_tls_cbc_encrypt()
345 crp->crp_digest_start = crp->crp_payload_length; in ktls_ocf_tls_cbc_encrypt()
346 crp->crp_op = CRYPTO_OP_COMPUTE_DIGEST; in ktls_ocf_tls_cbc_encrypt()
347 crp->crp_flags = CRYPTO_F_CBIMM; in ktls_ocf_tls_cbc_encrypt()
348 crypto_use_uio(crp, uio); in ktls_ocf_tls_cbc_encrypt()
349 error = ktls_ocf_dispatch(os, crp); in ktls_ocf_tls_cbc_encrypt()
351 crypto_destroyreq(crp); in ktls_ocf_tls_cbc_encrypt()
369 crypto_initreq(crp, os->sid); in ktls_ocf_tls_cbc_encrypt()
370 crp->crp_payload_start = m->m_epg_hdrlen; in ktls_ocf_tls_cbc_encrypt()
371 crp->crp_payload_length = tls_comp_len + m->m_epg_trllen; in ktls_ocf_tls_cbc_encrypt()
372 KASSERT(crp->crp_payload_length % AES_BLOCK_LEN == 0, in ktls_ocf_tls_cbc_encrypt()
374 crypto_use_single_mbuf(crp, m); in ktls_ocf_tls_cbc_encrypt()
375 crp->crp_op = CRYPTO_OP_ENCRYPT; in ktls_ocf_tls_cbc_encrypt()
376 crp->crp_flags = CRYPTO_F_CBIMM | CRYPTO_F_IV_SEPARATE; in ktls_ocf_tls_cbc_encrypt()
378 memcpy(crp->crp_iv, os->iv, AES_BLOCK_LEN); in ktls_ocf_tls_cbc_encrypt()
380 memcpy(crp->crp_iv, hdr + 1, AES_BLOCK_LEN); in ktls_ocf_tls_cbc_encrypt()
388 uio->uio_resid = crp->crp_payload_length; in ktls_ocf_tls_cbc_encrypt()
389 crypto_use_output_uio(crp, uio); in ktls_ocf_tls_cbc_encrypt()
400 error = ktls_ocf_dispatch(os, crp); in ktls_ocf_tls_cbc_encrypt()
402 crypto_destroyreq(crp); in ktls_ocf_tls_cbc_encrypt()
440 struct cryptop crp; in ktls_ocf_tls_cbc_decrypt() local
463 crypto_initreq(&crp, os->sid); in ktls_ocf_tls_cbc_decrypt()
464 crp.crp_iv_start = sizeof(*hdr); in ktls_ocf_tls_cbc_decrypt()
465 crp.crp_payload_start = tls->params.tls_hlen; in ktls_ocf_tls_cbc_decrypt()
466 crp.crp_payload_length = tls_len - AES_BLOCK_LEN; in ktls_ocf_tls_cbc_decrypt()
467 crypto_use_mbuf(&crp, m); in ktls_ocf_tls_cbc_decrypt()
468 crp.crp_op = CRYPTO_OP_DECRYPT; in ktls_ocf_tls_cbc_decrypt()
469 crp.crp_flags = CRYPTO_F_CBIMM; in ktls_ocf_tls_cbc_decrypt()
473 error = ktls_ocf_dispatch(os, &crp); in ktls_ocf_tls_cbc_decrypt()
474 crypto_destroyreq(&crp); in ktls_ocf_tls_cbc_decrypt()
525 crypto_initreq(&crp, os->mac_sid); in ktls_ocf_tls_cbc_decrypt()
526 crp.crp_payload_start = 0; in ktls_ocf_tls_cbc_decrypt()
527 crp.crp_payload_length = sizeof(ad) + tls_comp_len; in ktls_ocf_tls_cbc_decrypt()
528 crp.crp_digest_start = crp.crp_payload_length; in ktls_ocf_tls_cbc_decrypt()
529 crp.crp_op = CRYPTO_OP_VERIFY_DIGEST; in ktls_ocf_tls_cbc_decrypt()
530 crp.crp_flags = CRYPTO_F_CBIMM; in ktls_ocf_tls_cbc_decrypt()
531 crypto_use_uio(&crp, &uio); in ktls_ocf_tls_cbc_decrypt()
532 error = ktls_ocf_dispatch(os, &crp); in ktls_ocf_tls_cbc_decrypt()
534 crypto_destroyreq(&crp); in ktls_ocf_tls_cbc_decrypt()
552 struct cryptop *crp; in ktls_ocf_tls12_aead_encrypt() local
559 crp = &state->crp; in ktls_ocf_tls12_aead_encrypt()
562 crypto_initreq(crp, os->sid); in ktls_ocf_tls12_aead_encrypt()
566 memcpy(crp->crp_iv, tls->params.iv, TLS_AEAD_GCM_LEN); in ktls_ocf_tls12_aead_encrypt()
567 memcpy(crp->crp_iv + TLS_AEAD_GCM_LEN, hdr + 1, in ktls_ocf_tls12_aead_encrypt()
575 memcpy(crp->crp_iv, tls->params.iv, tls->params.iv_len); in ktls_ocf_tls12_aead_encrypt()
576 *(uint64_t *)(crp->crp_iv + 4) ^= htobe64(m->m_epg_seqno); in ktls_ocf_tls12_aead_encrypt()
587 crp->crp_aad = ad; in ktls_ocf_tls12_aead_encrypt()
588 crp->crp_aad_length = sizeof(*ad); in ktls_ocf_tls12_aead_encrypt()
591 crypto_use_single_mbuf(crp, m); in ktls_ocf_tls12_aead_encrypt()
592 crp->crp_payload_start = m->m_epg_hdrlen; in ktls_ocf_tls12_aead_encrypt()
593 crp->crp_payload_length = tls_comp_len; in ktls_ocf_tls12_aead_encrypt()
596 crp->crp_digest_start = crp->crp_payload_length; in ktls_ocf_tls12_aead_encrypt()
603 uio->uio_resid = crp->crp_payload_length + tls->params.tls_tlen; in ktls_ocf_tls12_aead_encrypt()
604 crypto_use_output_uio(crp, uio); in ktls_ocf_tls12_aead_encrypt()
606 crp->crp_digest_start = crp->crp_payload_start + in ktls_ocf_tls12_aead_encrypt()
607 crp->crp_payload_length; in ktls_ocf_tls12_aead_encrypt()
609 crp->crp_op = CRYPTO_OP_ENCRYPT | CRYPTO_OP_COMPUTE_DIGEST; in ktls_ocf_tls12_aead_encrypt()
610 crp->crp_flags = CRYPTO_F_CBIMM | CRYPTO_F_IV_SEPARATE; in ktls_ocf_tls12_aead_encrypt()
620 error = ktls_ocf_dispatch(os, crp); in ktls_ocf_tls12_aead_encrypt()
621 crypto_destroyreq(crp); in ktls_ocf_tls12_aead_encrypt()
623 error = ktls_ocf_dispatch_async(state, crp); in ktls_ocf_tls12_aead_encrypt()
633 struct cryptop crp; in ktls_ocf_tls12_aead_decrypt() local
646 crypto_initreq(&crp, os->sid); in ktls_ocf_tls12_aead_decrypt()
650 memcpy(crp.crp_iv, tls->params.iv, TLS_AEAD_GCM_LEN); in ktls_ocf_tls12_aead_decrypt()
651 memcpy(crp.crp_iv + TLS_AEAD_GCM_LEN, hdr + 1, in ktls_ocf_tls12_aead_decrypt()
659 memcpy(crp.crp_iv, tls->params.iv, tls->params.iv_len); in ktls_ocf_tls12_aead_decrypt()
660 *(uint64_t *)(crp.crp_iv + 4) ^= htobe64(seqno); in ktls_ocf_tls12_aead_decrypt()
674 crp.crp_aad = &ad; in ktls_ocf_tls12_aead_decrypt()
675 crp.crp_aad_length = sizeof(ad); in ktls_ocf_tls12_aead_decrypt()
677 crp.crp_payload_start = tls->params.tls_hlen; in ktls_ocf_tls12_aead_decrypt()
678 crp.crp_payload_length = tls_comp_len; in ktls_ocf_tls12_aead_decrypt()
679 crp.crp_digest_start = crp.crp_payload_start + crp.crp_payload_length; in ktls_ocf_tls12_aead_decrypt()
681 crp.crp_op = CRYPTO_OP_DECRYPT | CRYPTO_OP_VERIFY_DIGEST; in ktls_ocf_tls12_aead_decrypt()
682 crp.crp_flags = CRYPTO_F_CBIMM | CRYPTO_F_IV_SEPARATE; in ktls_ocf_tls12_aead_decrypt()
683 crypto_use_mbuf(&crp, m); in ktls_ocf_tls12_aead_decrypt()
689 error = ktls_ocf_dispatch(os, &crp); in ktls_ocf_tls12_aead_decrypt()
691 crypto_destroyreq(&crp); in ktls_ocf_tls12_aead_decrypt()
729 struct cryptop crp; in ktls_ocf_tls12_aead_recrypt() local
743 crypto_initreq(&crp, os->recrypt_sid); in ktls_ocf_tls12_aead_recrypt()
749 memcpy(crp.crp_iv, tls->params.iv, TLS_AEAD_GCM_LEN); in ktls_ocf_tls12_aead_recrypt()
750 memcpy(crp.crp_iv + TLS_AEAD_GCM_LEN, hdr + 1, sizeof(uint64_t)); in ktls_ocf_tls12_aead_recrypt()
751 be32enc(crp.crp_iv + AES_GCM_IV_LEN, 2); in ktls_ocf_tls12_aead_recrypt()
754 crp.crp_op = CRYPTO_OP_ENCRYPT; in ktls_ocf_tls12_aead_recrypt()
755 crp.crp_flags = CRYPTO_F_CBIMM | CRYPTO_F_IV_SEPARATE; in ktls_ocf_tls12_aead_recrypt()
756 crypto_use_mbuf(&crp, m); in ktls_ocf_tls12_aead_recrypt()
757 crp.crp_payload_start = tls->params.tls_hlen; in ktls_ocf_tls12_aead_recrypt()
758 crp.crp_payload_length = payload_len; in ktls_ocf_tls12_aead_recrypt()
761 crypto_use_output_buf(&crp, buf, payload_len); in ktls_ocf_tls12_aead_recrypt()
764 error = ktls_ocf_dispatch(os, &crp); in ktls_ocf_tls12_aead_recrypt()
766 crypto_destroyreq(&crp); in ktls_ocf_tls12_aead_recrypt()
790 struct cryptop *crp; in ktls_ocf_tls13_aead_encrypt() local
796 crp = &state->crp; in ktls_ocf_tls13_aead_encrypt()
799 crypto_initreq(crp, os->sid); in ktls_ocf_tls13_aead_encrypt()
802 memcpy(crp->crp_iv, tls->params.iv, tls->params.iv_len); in ktls_ocf_tls13_aead_encrypt()
803 *(uint64_t *)(crp->crp_iv + 4) ^= htobe64(m->m_epg_seqno); in ktls_ocf_tls13_aead_encrypt()
811 crp->crp_aad = ad; in ktls_ocf_tls13_aead_encrypt()
812 crp->crp_aad_length = sizeof(*ad); in ktls_ocf_tls13_aead_encrypt()
815 crypto_use_single_mbuf(crp, m); in ktls_ocf_tls13_aead_encrypt()
816 crp->crp_payload_start = m->m_epg_hdrlen; in ktls_ocf_tls13_aead_encrypt()
817 crp->crp_payload_length = m->m_len - in ktls_ocf_tls13_aead_encrypt()
822 crp->crp_payload_length++; in ktls_ocf_tls13_aead_encrypt()
825 crp->crp_digest_start = crp->crp_payload_length; in ktls_ocf_tls13_aead_encrypt()
833 crypto_use_output_uio(crp, uio); in ktls_ocf_tls13_aead_encrypt()
835 crp->crp_digest_start = crp->crp_payload_start + in ktls_ocf_tls13_aead_encrypt()
836 crp->crp_payload_length; in ktls_ocf_tls13_aead_encrypt()
838 crp->crp_op = CRYPTO_OP_ENCRYPT | CRYPTO_OP_COMPUTE_DIGEST; in ktls_ocf_tls13_aead_encrypt()
839 crp->crp_flags = CRYPTO_F_CBIMM | CRYPTO_F_IV_SEPARATE; in ktls_ocf_tls13_aead_encrypt()
850 error = ktls_ocf_dispatch(os, crp); in ktls_ocf_tls13_aead_encrypt()
851 crypto_destroyreq(crp); in ktls_ocf_tls13_aead_encrypt()
853 error = ktls_ocf_dispatch_async(state, crp); in ktls_ocf_tls13_aead_encrypt()
863 struct cryptop crp; in ktls_ocf_tls13_aead_decrypt() local
878 crypto_initreq(&crp, os->sid); in ktls_ocf_tls13_aead_decrypt()
881 memcpy(crp.crp_iv, tls->params.iv, tls->params.iv_len); in ktls_ocf_tls13_aead_decrypt()
882 *(uint64_t *)(crp.crp_iv + 4) ^= htobe64(seqno); in ktls_ocf_tls13_aead_decrypt()
889 crp.crp_aad = &ad; in ktls_ocf_tls13_aead_decrypt()
890 crp.crp_aad_length = sizeof(ad); in ktls_ocf_tls13_aead_decrypt()
892 crp.crp_payload_start = tls->params.tls_hlen; in ktls_ocf_tls13_aead_decrypt()
893 crp.crp_payload_length = tls_len - tag_len; in ktls_ocf_tls13_aead_decrypt()
894 crp.crp_digest_start = crp.crp_payload_start + crp.crp_payload_length; in ktls_ocf_tls13_aead_decrypt()
896 crp.crp_op = CRYPTO_OP_DECRYPT | CRYPTO_OP_VERIFY_DIGEST; in ktls_ocf_tls13_aead_decrypt()
897 crp.crp_flags = CRYPTO_F_CBIMM | CRYPTO_F_IV_SEPARATE; in ktls_ocf_tls13_aead_decrypt()
898 crypto_use_mbuf(&crp, m); in ktls_ocf_tls13_aead_decrypt()
904 error = ktls_ocf_dispatch(os, &crp); in ktls_ocf_tls13_aead_decrypt()
906 crypto_destroyreq(&crp); in ktls_ocf_tls13_aead_decrypt()
916 struct cryptop crp; in ktls_ocf_tls13_aead_recrypt() local
930 crypto_initreq(&crp, os->recrypt_sid); in ktls_ocf_tls13_aead_recrypt()
936 memcpy(crp.crp_iv, tls->params.iv, tls->params.iv_len); in ktls_ocf_tls13_aead_recrypt()
937 *(uint64_t *)(crp.crp_iv + 4) ^= htobe64(seqno); in ktls_ocf_tls13_aead_recrypt()
938 be32enc(crp.crp_iv + 12, 2); in ktls_ocf_tls13_aead_recrypt()
941 crp.crp_op = CRYPTO_OP_ENCRYPT; in ktls_ocf_tls13_aead_recrypt()
942 crp.crp_flags = CRYPTO_F_CBIMM | CRYPTO_F_IV_SEPARATE; in ktls_ocf_tls13_aead_recrypt()
943 crypto_use_mbuf(&crp, m); in ktls_ocf_tls13_aead_recrypt()
944 crp.crp_payload_start = tls->params.tls_hlen; in ktls_ocf_tls13_aead_recrypt()
945 crp.crp_payload_length = payload_len; in ktls_ocf_tls13_aead_recrypt()
948 crypto_use_output_buf(&crp, buf, payload_len); in ktls_ocf_tls13_aead_recrypt()
951 error = ktls_ocf_dispatch(os, &crp); in ktls_ocf_tls13_aead_recrypt()
953 crypto_destroyreq(&crp); in ktls_ocf_tls13_aead_recrypt()