Lines Matching refs:crp

618 cryptodev_cb(struct cryptop *crp)  in cryptodev_cb()  argument
620 struct cryptop_data *cod = crp->crp_opaque; in cryptodev_cb()
639 struct cryptop *crp = NULL; in cryptodev_op() local
673 crp = crypto_getreq(cse->cses, M_WAITOK); in cryptodev_op()
680 crp->crp_payload_start = 0; in cryptodev_op()
681 crp->crp_payload_length = cop->len; in cryptodev_op()
683 crp->crp_digest_start = cop->len; in cryptodev_op()
690 crp->crp_op = CRYPTO_OP_COMPRESS; in cryptodev_op()
693 crp->crp_op = CRYPTO_OP_DECOMPRESS; in cryptodev_op()
710 crp->crp_op = CRYPTO_OP_ENCRYPT; in cryptodev_op()
713 crp->crp_op = CRYPTO_OP_DECRYPT; in cryptodev_op()
726 crp->crp_op = CRYPTO_OP_COMPUTE_DIGEST; in cryptodev_op()
728 crp->crp_digest_start = 0; in cryptodev_op()
746 crp->crp_op = CRYPTO_OP_ENCRYPT | in cryptodev_op()
750 crp->crp_op = CRYPTO_OP_DECRYPT | in cryptodev_op()
765 crp->crp_flags = CRYPTO_F_CBIMM | (cop->flags & COP_F_BATCH); in cryptodev_op()
766 crypto_use_buf(crp, cod->buf, cop->len + cse->hashsize); in cryptodev_op()
768 crypto_use_output_buf(crp, cod->obuf, cop->len + cse->hashsize); in cryptodev_op()
769 crp->crp_callback = cryptodev_cb; in cryptodev_op()
770 crp->crp_opaque = cod; in cryptodev_op()
778 error = copyin(cop->iv, crp->crp_iv, cse->ivsize); in cryptodev_op()
783 crp->crp_flags |= CRYPTO_F_IV_SEPARATE; in cryptodev_op()
785 if (crp->crp_payload_length < cse->ivsize) { in cryptodev_op()
790 crp->crp_iv_start = 0; in cryptodev_op()
791 crp->crp_payload_length -= cse->ivsize; in cryptodev_op()
792 if (crp->crp_payload_length != 0) in cryptodev_op()
793 crp->crp_payload_start = cse->ivsize; in cryptodev_op()
797 if (crp->crp_op & CRYPTO_OP_VERIFY_DIGEST) { in cryptodev_op()
798 error = copyin(cop->mac, cod->buf + crp->crp_digest_start, in cryptodev_op()
813 error = crypto_dispatch(crp); in cryptodev_op()
824 if (crp->crp_etype == EAGAIN) { in cryptodev_op()
825 crp->crp_etype = 0; in cryptodev_op()
830 if (crp->crp_etype != 0) { in cryptodev_op()
832 error = crp->crp_etype; in cryptodev_op()
838 cod->buf + crp->crp_payload_start, dst, in cryptodev_op()
839 crp->crp_payload_length); in cryptodev_op()
846 if (cop->mac != NULL && (crp->crp_op & CRYPTO_OP_VERIFY_DIGEST) == 0) { in cryptodev_op()
848 crp->crp_digest_start, cop->mac, cse->hashsize); in cryptodev_op()
856 crypto_freereq(crp); in cryptodev_op()
867 struct cryptop *crp = NULL; in cryptodev_aead() local
901 crp = crypto_getreq(cse->cses, M_WAITOK); in cryptodev_aead()
911 crp->crp_aad = cod->aad; in cryptodev_aead()
912 crp->crp_aad_start = 0; in cryptodev_aead()
913 crp->crp_aad_length = caead->aadlen; in cryptodev_aead()
916 crp->crp_payload_start = 0; in cryptodev_aead()
918 crp->crp_payload_start = caead->aadlen; in cryptodev_aead()
919 error = copyin(caead->src, cod->buf + crp->crp_payload_start, in cryptodev_aead()
925 crp->crp_payload_length = caead->len; in cryptodev_aead()
927 crp->crp_digest_start = crp->crp_payload_output_start + in cryptodev_aead()
930 crp->crp_digest_start = crp->crp_payload_start + caead->len; in cryptodev_aead()
938 crp->crp_op = CRYPTO_OP_ENCRYPT | in cryptodev_aead()
942 crp->crp_op = CRYPTO_OP_DECRYPT | in cryptodev_aead()
957 crp->crp_flags = CRYPTO_F_CBIMM | (caead->flags & COP_F_BATCH); in cryptodev_aead()
958 crypto_use_buf(crp, cod->buf, crp->crp_payload_start + caead->len + in cryptodev_aead()
961 crypto_use_output_buf(crp, cod->obuf, caead->len + in cryptodev_aead()
963 crp->crp_callback = cryptodev_cb; in cryptodev_aead()
964 crp->crp_opaque = cod; in cryptodev_aead()
987 error = copyin(caead->iv, crp->crp_iv, cse->ivsize); in cryptodev_aead()
992 crp->crp_flags |= CRYPTO_F_IV_SEPARATE; in cryptodev_aead()
999 if (crp->crp_op & CRYPTO_OP_VERIFY_DIGEST) { in cryptodev_aead()
1000 error = copyin(caead->tag, cod->buf + crp->crp_digest_start, in cryptodev_aead()
1015 error = crypto_dispatch(crp); in cryptodev_aead()
1026 if (crp->crp_etype == EAGAIN) { in cryptodev_aead()
1027 crp->crp_etype = 0; in cryptodev_aead()
1032 if (crp->crp_etype != 0) { in cryptodev_aead()
1033 error = crp->crp_etype; in cryptodev_aead()
1040 cod->buf + crp->crp_payload_start, dst, in cryptodev_aead()
1041 crp->crp_payload_length); in cryptodev_aead()
1048 if ((crp->crp_op & CRYPTO_OP_VERIFY_DIGEST) == 0) { in cryptodev_aead()
1050 crp->crp_digest_start, caead->tag, cse->hashsize); in cryptodev_aead()
1058 crypto_freereq(crp); in cryptodev_aead()