cse               143 crypto/cryptodev.c 	struct csession *cse;
cse               257 crypto/cryptodev.c 		cse = csecreate(fcr, sid, crie.cri_key, crie.cri_klen,
cse               261 crypto/cryptodev.c 		if (cse == NULL) {
cse               266 crypto/cryptodev.c 		sop->ses = cse->ses;
cse               278 crypto/cryptodev.c 		cse = csefind(fcr, ses);
cse               279 crypto/cryptodev.c 		if (cse == NULL)
cse               281 crypto/cryptodev.c 		csedelete(fcr, cse);
cse               282 crypto/cryptodev.c 		error = csefree(cse);
cse               286 crypto/cryptodev.c 		cse = csefind(fcr, cop->ses);
cse               287 crypto/cryptodev.c 		if (cse == NULL)
cse               289 crypto/cryptodev.c 		error = cryptodev_op(cse, cop, p);
cse               304 crypto/cryptodev.c cryptodev_op(struct csession *cse, struct crypt_op *cop, struct proc *p)
cse               314 crypto/cryptodev.c 	if (cse->txform) {
cse               315 crypto/cryptodev.c 		if (cop->len == 0 || (cop->len % cse->txform->blocksize) != 0)
cse               319 crypto/cryptodev.c 	bzero(&cse->uio, sizeof(cse->uio));
cse               320 crypto/cryptodev.c 	cse->uio.uio_iovcnt = 1;
cse               321 crypto/cryptodev.c 	cse->uio.uio_resid = 0;
cse               322 crypto/cryptodev.c 	cse->uio.uio_segflg = UIO_SYSSPACE;
cse               323 crypto/cryptodev.c 	cse->uio.uio_rw = UIO_WRITE;
cse               324 crypto/cryptodev.c 	cse->uio.uio_procp = p;
cse               325 crypto/cryptodev.c 	cse->uio.uio_iov = cse->iovec;
cse               326 crypto/cryptodev.c 	bzero(&cse->iovec, sizeof(cse->iovec));
cse               327 crypto/cryptodev.c 	cse->uio.uio_iov[0].iov_len = cop->len;
cse               328 crypto/cryptodev.c 	cse->uio.uio_iov[0].iov_base = malloc(cop->len, M_XDATA, M_WAITOK);
cse               329 crypto/cryptodev.c 	for (i = 0; i < cse->uio.uio_iovcnt; i++)
cse               330 crypto/cryptodev.c 		cse->uio.uio_resid += cse->uio.uio_iov[0].iov_len;
cse               333 crypto/cryptodev.c 	crp = crypto_getreq((cse->txform != NULL) + (cse->thash != NULL));
cse               339 crypto/cryptodev.c 	if (cse->thash) {
cse               341 crypto/cryptodev.c 		if (cse->txform)
cse               344 crypto/cryptodev.c 		if (cse->txform)
cse               352 crypto/cryptodev.c 	if ((error = copyin(cop->src, cse->uio.uio_iov[0].iov_base, cop->len)))
cse               360 crypto/cryptodev.c 		crda->crd_alg = cse->mac;
cse               361 crypto/cryptodev.c 		crda->crd_key = cse->mackey;
cse               362 crypto/cryptodev.c 		crda->crd_klen = cse->mackeylen * 8;
cse               373 crypto/cryptodev.c 		crde->crd_alg = cse->cipher;
cse               374 crypto/cryptodev.c 		crde->crd_key = cse->key;
cse               375 crypto/cryptodev.c 		crde->crd_klen = cse->keylen * 8;
cse               379 crypto/cryptodev.c 	crp->crp_buf = (caddr_t)&cse->uio;
cse               381 crypto/cryptodev.c 	crp->crp_sid = cse->sid;
cse               382 crypto/cryptodev.c 	crp->crp_opaque = cse;
cse               389 crypto/cryptodev.c 		if (cse->cipher == CRYPTO_ARC4) { /* XXX use flag? */
cse               393 crypto/cryptodev.c 		if ((error = copyin(cop->iv, cse->tmp_iv, cse->txform->blocksize)))
cse               395 crypto/cryptodev.c 		bcopy(cse->tmp_iv, crde->crd_iv, cse->txform->blocksize);
cse               398 crypto/cryptodev.c 	} else if (cse->cipher == CRYPTO_ARC4) { /* XXX use flag? */
cse               402 crypto/cryptodev.c 		crde->crd_skip = cse->txform->blocksize;
cse               403 crypto/cryptodev.c 		crde->crd_len -= cse->txform->blocksize;
cse               411 crypto/cryptodev.c 		crp->crp_mac = cse->tmp_mac;
cse               436 crypto/cryptodev.c 		error = tsleep(cse, PSOCK, "crydev", 0);
cse               444 crypto/cryptodev.c 	if (cse->error) {
cse               445 crypto/cryptodev.c 		error = cse->error;
cse               455 crypto/cryptodev.c 	    (error = copyout(cse->uio.uio_iov[0].iov_base, cop->dst, cop->len)))
cse               459 crypto/cryptodev.c 	    (error = copyout(crp->crp_mac, cop->mac, cse->thash->authsize)))
cse               465 crypto/cryptodev.c 	if (cse->uio.uio_iov[0].iov_base)
cse               466 crypto/cryptodev.c 		free(cse->uio.uio_iov[0].iov_base, M_XDATA);
cse               474 crypto/cryptodev.c 	struct csession *cse = crp->crp_opaque;
cse               476 crypto/cryptodev.c 	cse->error = crp->crp_etype;
cse               481 crypto/cryptodev.c 	wakeup(cse);
cse               620 crypto/cryptodev.c 	struct csession *cse;
cse               622 crypto/cryptodev.c 	while ((cse = TAILQ_FIRST(&fcr->csessions))) {
cse               623 crypto/cryptodev.c 		TAILQ_REMOVE(&fcr->csessions, cse, next);
cse               624 crypto/cryptodev.c 		(void)csefree(cse);
cse               708 crypto/cryptodev.c 	struct csession *cse;
cse               710 crypto/cryptodev.c 	TAILQ_FOREACH(cse, &fcr->csessions, next)
cse               711 crypto/cryptodev.c 		if (cse->ses == ses)
cse               712 crypto/cryptodev.c 			return (cse);
cse               719 crypto/cryptodev.c 	struct csession *cse;
cse               721 crypto/cryptodev.c 	TAILQ_FOREACH(cse, &fcr->csessions, next) {
cse               722 crypto/cryptodev.c 		if (cse == cse_del) {
cse               723 crypto/cryptodev.c 			TAILQ_REMOVE(&fcr->csessions, cse, next);
cse               731 crypto/cryptodev.c cseadd(struct fcrypt *fcr, struct csession *cse)
cse               733 crypto/cryptodev.c 	TAILQ_INSERT_TAIL(&fcr->csessions, cse, next);
cse               734 crypto/cryptodev.c 	cse->ses = fcr->sesn++;
cse               735 crypto/cryptodev.c 	return (cse);
cse               743 crypto/cryptodev.c 	struct csession *cse;
cse               745 crypto/cryptodev.c 	MALLOC(cse, struct csession *, sizeof(struct csession),
cse               747 crypto/cryptodev.c 	if (cse == NULL)
cse               749 crypto/cryptodev.c 	cse->key = key;
cse               750 crypto/cryptodev.c 	cse->keylen = keylen/8;
cse               751 crypto/cryptodev.c 	cse->mackey = mackey;
cse               752 crypto/cryptodev.c 	cse->mackeylen = mackeylen/8;
cse               753 crypto/cryptodev.c 	cse->sid = sid;
cse               754 crypto/cryptodev.c 	cse->cipher = cipher;
cse               755 crypto/cryptodev.c 	cse->mac = mac;
cse               756 crypto/cryptodev.c 	cse->txform = txform;
cse               757 crypto/cryptodev.c 	cse->thash = thash;
cse               758 crypto/cryptodev.c 	cseadd(fcr, cse);
cse               759 crypto/cryptodev.c 	return (cse);
cse               763 crypto/cryptodev.c csefree(struct csession *cse)
cse               767 crypto/cryptodev.c 	error = crypto_freesession(cse->sid);
cse               768 crypto/cryptodev.c 	if (cse->key)
cse               769 crypto/cryptodev.c 		FREE(cse->key, M_XDATA);
cse               770 crypto/cryptodev.c 	if (cse->mackey)
cse               771 crypto/cryptodev.c 		FREE(cse->mackey, M_XDATA);
cse               772 crypto/cryptodev.c 	FREE(cse, M_XDATA);