Home | History | Annotate | Download | only in opencrypto

Lines Matching defs:cse

227 	struct csession *cse;
313 cse = csefind(fcr, ses);
314 if (cse == NULL) {
318 csedelete(fcr, cse);
320 csefree(cse);
345 cse = csefind(fcr, cop->ses);
347 if (cse == NULL) {
351 error = cryptodev_op(cse, cop, curlwp);
454 cryptodev_op(struct csession *cse, struct crypt_op *cop, struct lwp *l)
466 if (cse->txform) {
467 if (cop->len < cse->txform->blocksize
468 + (cop->iv ? 0 : cse->txform->ivsize) ||
469 (cop->len - (cop->iv ? 0 : cse->txform->ivsize))
470 % cse->txform->blocksize != 0)
474 if (cse->tcomp == NULL && cse->txform == NULL && cse->thash == NULL)
478 CRYPTO_SESID2LID(cse->sid), iov_len);
479 if ((cse->tcomp) && cop->dst_len) {
487 (void)memset(&cse->uio, 0, sizeof(cse->uio));
488 cse->uio.uio_iovcnt = 1;
489 cse->uio.uio_resid = 0;
490 cse->uio.uio_rw = UIO_WRITE;
491 cse->uio.uio_iov = cse->iovec;
492 UIO_SETUP_SYSSPACE(&cse->uio);
493 memset(&cse->iovec, 0, sizeof(cse->iovec));
497 cse->uio.uio_iov[0].iov_len = iov_len;
499 cse->uio.uio_iov[0].iov_base = kmem_alloc(iov_len, KM_SLEEP);
500 cse->uio.uio_resid = cse->uio.uio_iov[0].iov_len;
502 CRYPTO_SESID2LID(cse->sid),
503 cse->uio.uio_iov[0].iov_base, iov_len);
505 crp = crypto_getreq((cse->tcomp != NULL) + (cse->txform != NULL) + (cse->thash != NULL));
510 DPRINTF("lid[%u]: crp %p\n", CRYPTO_SESID2LID(cse->sid), crp);
519 if (cse->tcomp) {
523 if (cse->thash) {
525 if (cse->txform && crda)
528 if (cse->txform) {
530 } else if (!cse->tcomp) {
537 CRYPTO_SESID2LID(cse->sid),
538 cse->uio.uio_iov[0].iov_len,
541 if ((error = copyin(cop->src, cse->uio.uio_iov[0].iov_base, cop->len)))
565 crdc->crd_alg = cse->comp_alg;
569 CRYPTO_SESID2LID(cse->sid), crdc->crd_alg);
577 crda->crd_alg = cse->mac;
578 crda->crd_key = cse->mackey;
579 crda->crd_klen = cse->mackeylen * 8;
597 if (cse->cipher == CRYPTO_AES_GCM_16 && crda)
599 else if (cse->cipher == CRYPTO_AES_GMAC)
602 crde->crd_alg = cse->cipher;
603 crde->crd_key = cse->key;
604 crde->crd_klen = cse->keylen * 8;
611 crp->crp_buf = (void *)&cse->uio;
613 crp->crp_sid = cse->sid;
614 crp->crp_opaque = cse;
621 if (cse->txform->ivsize == 0) {
625 if ((error = copyin(cop->iv, cse->tmp_iv,
626 cse->txform->ivsize)))
628 (void)memcpy(crde->crd_iv, cse->tmp_iv, cse->txform->ivsize);
632 if (cse->txform->ivsize == 0) {
637 crde->crd_skip = cse->txform->ivsize;
638 crde->crd_len -= cse->txform->ivsize;
647 crp->crp_mac = cse->tmp_mac;
654 DPRINTF("cse->sid[%d]: sleeping on cv %p for crp %p\n",
655 (uint32_t)cse->sid, &crp->crp_cv, crp);
667 if (cse->error) {
668 DPRINTF("cse->error %d\n", cse->error);
669 error = cse->error;
687 (error = copyout(cse->uio.uio_iov[0].iov_base, cop->dst, dst_len)))
694 (error = copyout(crp->crp_mac, cop->mac, cse->thash->authsize))) {
704 if (cse->uio.uio_iov[0].iov_base) {
705 kmem_free(cse->uio.uio_iov[0].iov_base,iov_len);
714 struct csession *cse = crp->crp_opaque;
717 cse->error = crp->crp_etype;
726 struct csession *cse = crp->crp_opaque;
729 cse->error = crp->crp_etype;
896 struct csession *cse;
899 while ((cse = TAILQ_FIRST(&fcr->csessions))) {
900 TAILQ_REMOVE(&fcr->csessions, cse, next);
902 csefree(cse);
924 struct csession *cse, *cnext, *ret = NULL;
927 TAILQ_FOREACH_SAFE(cse, &fcr->csessions, next, cnext)
928 if (cse->ses == ses)
929 ret = cse;
938 struct csession *cse, *cnext;
942 TAILQ_FOREACH_SAFE(cse, &fcr->csessions, next, cnext) {
943 if (cse == cse_del) {
944 TAILQ_REMOVE(&fcr->csessions, cse, next);
952 cseadd(struct fcrypt *fcr, struct csession *cse)
957 TAILQ_INSERT_TAIL(&fcr->csessions, cse, next);
958 cse->ses = fcr->sesn++;
960 return cse;
969 struct csession *cse;
971 cse = pool_get(&csepl, PR_NOWAIT);
972 if (cse == NULL)
974 cse->key = key;
975 cse->keylen = keylen/8;
976 cse->mackey = mackey;
977 cse->mackeylen = mackeylen/8;
978 cse->sid = sid;
979 cse->cipher = cipher;
980 cse->mac = mac;
981 cse->comp_alg = comp_alg;
982 cse->txform = txform;
983 cse->thash = thash;
984 cse->tcomp = tcomp;
985 cse->error = 0;
986 if (cseadd(fcr, cse))
987 return cse;
989 pool_put(&csepl, cse);
995 csefree(struct csession *cse)
998 crypto_freesession(cse->sid);
999 if (cse->key)
1000 free(cse->key, M_XDATA);
1001 if (cse->mackey)
1002 free(cse->mackey, M_XDATA);
1003 pool_put(&csepl, cse);
1081 struct csession *cse;
1087 cse = csefind(fcr, cnop[req].ses);
1088 if (cse == NULL) {
1101 if (cse->txform) {
1102 if (cnop[req].len < cse->txform->blocksize -
1103 (cnop[req].iv ? 0 : cse->txform->ivsize) ||
1105 (cnop[req].iv ? 0 : cse->txform->ivsize))
1106 % cse->txform->blocksize) {
1112 if (cse->txform == NULL &&
1113 cse->thash == NULL &&
1114 cse->tcomp == NULL) {
1125 crp = crypto_getreq((cse->txform != NULL) +
1126 (cse->thash != NULL) +
1127 (cse->tcomp != NULL));
1135 if ((cse->tcomp) && cnop[req].dst_len) {
1155 if (cse->tcomp) {
1159 if (cse->thash) {
1161 if (cse->txform && crda)
1164 if (cse->txform) {
1166 } else if (!cse->tcomp) {
1196 crdc->crd_alg = cse->comp_alg;
1199 DPRINTF("cse->sid[%d]: crdc setup for comp_alg %d"
1201 (uint32_t)cse->sid, crdc->crd_alg,
1210 crda->crd_alg = cse->mac;
1211 crda->crd_key = cse->mackey;
1212 crda->crd_klen = cse->mackeylen * 8;
1223 crde->crd_alg = cse->cipher;
1236 crde->crd_key = cse->key;
1237 crde->crd_klen = cse->keylen * 8;
1245 crp->crp_sid = cse->sid;
1246 crp->crp_opaque = cse;
1260 cse->cipher == CRYPTO_ARC4) { /* XXX use flag? */
1265 cse->txform->ivsize))) {
1270 cse->txform->ivsize);
1274 if (cse->cipher == CRYPTO_ARC4) { /* XXX use flag? */
1279 crde->crd_skip = cse->txform->ivsize;
1280 crde->crd_len -= cse->txform->ivsize;
1289 crp->crp_mac=cse->tmp_mac;
1463 struct csession *cse;
1658 cse = csecreate(fcr, sid, crie.cri_key, crie.cri_klen,
1661 if (cse != NULL) {
1662 sop->ses = cse->ses;
1713 struct csession *cse;
1718 cse = csefind(fcr, sesid[req]);
1719 if (cse == NULL)
1721 csedelete(fcr, cse);
1723 csefree(cse);
1740 struct csession *cse;
1763 cse = (struct csession *)crp->crp_opaque;
1766 cse = csefind(fcr, cse->ses);
1767 if (cse != NULL) {
1795 cse = (struct csession *)crp->crp_opaque;
1805 if (cse->error) {
1806 crypt_res[req].status = cse->error;
1817 cse->thash->authsize)))
1886 struct csession *cse;
1894 cse = (struct csession *)crp->crp_opaque;
1896 cse = csefind(fcr, cse->ses);
1897 if (cse == NULL) {
1908 if (cse->error) {
1909 crypt_res->status = cse->error;
1920 cse->thash->authsize)))