Lines Matching refs:mp

74 static mblk_t *do_encrypt(queue_t *q, mblk_t *mp);
75 static mblk_t *do_decrypt(queue_t *q, mblk_t *mp);
437 des_cfb_encrypt(queue_t *q, struct tmodinfo *tmi, mblk_t *mp)
442 lastoutput = optr = (char *)mp->b_rptr;
443 iptr = (char *)mp->b_rptr;
446 while (iptr < (char *)mp->b_wptr) {
468 mp->b_datap->db_type = M_ERROR;
469 mp->b_rptr = mp->b_datap->db_base;
470 *mp->b_rptr = EIO;
471 mp->b_wptr = mp->b_rptr + sizeof (char);
472 freemsg(mp->b_cont);
473 mp->b_cont = NULL;
474 qreply(WR(q), mp);
519 return (mp);
532 des_cfb_decrypt(queue_t *q, struct tmodinfo *tmi, mblk_t *mp)
540 len = MBLKL(mp);
543 lastinput = iptr = (char *)mp->b_rptr;
561 while (iptr < (char *)mp->b_wptr) {
581 mp->b_datap->db_type = M_ERROR;
582 mp->b_rptr = mp->b_datap->db_base;
583 *mp->b_rptr = EIO;
584 mp->b_wptr = mp->b_rptr + sizeof (char);
585 freemsg(mp->b_cont);
586 mp->b_cont = NULL;
587 qreply(WR(q), mp);
622 if (lastinput < (char *)mp->b_wptr) {
625 cp = (((char *)mp->b_wptr - lastinput) >
628 (char *)mp->b_wptr - lastinput);
640 return (mp);
976 mblk_t *mp, int length,
988 ASSERT(mp != NULL);
995 dd.cd_mp = mp;
1045 mblk_t *mp, int length,
1057 ASSERT(mp != NULL);
1064 dd.cd_mp = mp;
1572 aes_decrypt(queue_t *q, struct tmodinfo *tmi, mblk_t *mp,
1581 inlen = (size_t)MBLKL(mp);
1588 bcopy(mp->b_rptr + DEFAULT_AES_BLOCKLEN * (nblocks - 2),
1593 result = aes_cbc_cts_decrypt(tmi, mp->b_rptr, enclen);
1605 (char *)mp->b_rptr, enclen,
1614 if (bcmp(hmacbuff, mp->b_rptr + enclen,
1622 mp->b_wptr = mp->b_rptr + enclen;
1625 mp->b_rptr += DEFAULT_AES_BLOCKLEN;
1633 mp->b_datap->db_type = M_ERROR;
1634 mp->b_rptr = mp->b_datap->db_base;
1635 *mp->b_rptr = EIO;
1636 mp->b_wptr = mp->b_rptr + sizeof (char);
1637 freemsg(mp->b_cont);
1638 mp->b_cont = NULL;
1639 qreply(WR(q), mp);
1642 return (mp);
1654 aes_encrypt(queue_t *q, struct tmodinfo *tmi, mblk_t *mp,
1662 inlen = (size_t)MBLKL(mp);
1666 ASSERT(MBLKSIZE(mp) >= cipherlen);
1671 mp->b_rptr -= DEFAULT_AES_BLOCKLEN;
1674 (void) random_get_pseudo_bytes((uint8_t *)mp->b_rptr,
1684 (char *)mp->b_rptr, DEFAULT_AES_BLOCKLEN + inlen,
1693 result = aes_cbc_cts_encrypt(tmi, mp->b_rptr,
1703 bcopy(hmacbuff, mp->b_rptr + DEFAULT_AES_BLOCKLEN + inlen,
1706 mp->b_wptr = mp->b_rptr + cipherlen;
1717 bcopy(mp->b_rptr + (nblocks - 2) * DEFAULT_AES_BLOCKLEN,
1723 mp->b_datap->db_type = M_ERROR;
1724 mp->b_rptr = mp->b_datap->db_base;
1725 *mp->b_rptr = EIO;
1726 mp->b_wptr = mp->b_rptr + sizeof (char);
1727 freemsg(mp->b_cont);
1728 mp->b_cont = NULL;
1729 qreply(WR(q), mp);
1732 return (mp);
1745 arcfour_hmac_md5_decrypt(queue_t *q, struct tmodinfo *tmi, mblk_t *mp,
1778 inlen = (size_t)MBLKL(mp);
1786 ASSERT(MBLKSIZE(mp) >= cipherlen);
1852 (char *)mp->b_rptr, hash->hash_len,
1901 v1.iov_base = (char *)mp->b_rptr + hash->hash_len;
1928 (char *)mp->b_rptr + hash->hash_len, cipherlen,
1938 if (bcmp(cksum, mp->b_rptr, hash->hash_len) != 0) {
1948 mp->b_rptr += hash->hash_len + hash->confound_len;
1956 mp->b_datap->db_type = M_ERROR;
1957 mp->b_rptr = mp->b_datap->db_base;
1958 *mp->b_rptr = EIO;
1959 mp->b_wptr = mp->b_rptr + sizeof (char);
1960 freemsg(mp->b_cont);
1961 mp->b_cont = NULL;
1962 qreply(WR(q), mp);
1965 return (mp);
1978 arcfour_hmac_md5_encrypt(queue_t *q, struct tmodinfo *tmi, mblk_t *mp,
2014 inlen = (size_t)MBLKL(mp);
2018 ASSERT(MBLKSIZE(mp) >= cipherlen);
2024 mp->b_rptr -= (hash->confound_len + hash->hash_len);
2027 bzero(mp->b_rptr, (size_t)hash->hash_len);
2030 bzero(mp->b_wptr, MBLKTAIL(mp));
2078 (uint8_t *)(mp->b_rptr + hash->hash_len),
2093 (char *)mp->b_rptr + hash->hash_len,
2095 (char *)mp->b_rptr, hash->hash_len);
2128 (char *)mp->b_rptr, hash->hash_len,
2170 v1.iov_base = (char *)mp->b_rptr + hash->hash_len;
2196 mp->b_datap->db_type = M_ERROR;
2197 mp->b_rptr = mp->b_datap->db_base;
2198 *mp->b_rptr = EIO;
2199 mp->b_wptr = mp->b_rptr + sizeof (char);
2200 freemsg(mp->b_cont);
2201 mp->b_cont = NULL;
2202 qreply(WR(q), mp);
2205 return (mp);
2235 des_cbc_encrypt(queue_t *q, struct tmodinfo *tmi, mblk_t *mp, hash_info_t *hash)
2248 inlen = (size_t)MBLKL(mp);
2256 ASSERT(MBLKSIZE(mp) >= cipherlen);
2259 bzero(mp->b_wptr, MBLKTAIL(mp));
2267 mp->b_rptr -= hash->confound_len;
2269 mp->b_rptr -= (hash->confound_len + hash->hash_len);
2272 bzero(mp->b_rptr + hash->confound_len, (size_t)hash->hash_len);
2277 (void) random_get_pseudo_bytes((uint8_t *)mp->b_rptr,
2289 result = hash->hashfunc(cksum, mp->b_rptr,
2296 bcopy(cksum, (mp->b_rptr + hash->confound_len),
2325 mp->b_wptr = mp->b_rptr + plainlen;
2328 (void *)mp, (size_t)plainlen,
2329 (char *)(mp->b_rptr + plainlen),
2332 ASSERT(mp->b_rptr + cipherlen <= DB_LIM(mp));
2333 mp->b_wptr = mp->b_rptr + cipherlen;
2334 result = kef_crypt(&tmi->enc_data, (void *)mp,
2346 mp->b_datap->db_type = M_ERROR;
2347 mp->b_rptr = mp->b_datap->db_base;
2348 *mp->b_rptr = EIO;
2349 mp->b_wptr = mp->b_rptr + sizeof (char);
2350 freemsg(mp->b_cont);
2351 mp->b_cont = NULL;
2352 qreply(WR(q), mp);
2359 bcopy(mp->b_wptr - tmi->enc_data.ivlen,
2363 mp->b_wptr = mp->b_rptr + cipherlen;
2366 return (mp);
2397 des_cbc_decrypt(queue_t *q, struct tmodinfo *tmi, mblk_t *mp, hash_info_t *hash)
2406 inlen = MBLKL(mp);
2408 optr = mp->b_rptr;
2436 mp->b_wptr = mp->b_rptr + decrypt_len;
2443 bcopy(mp->b_rptr + decrypt_len - tmi->dec_data.ivlen,
2447 result = kef_decr_hmac(&tmi->dec_data, mp, decrypt_len,
2455 bcopy(mp->b_wptr - tmi->enc_data.ivlen, nextiv,
2458 result = kef_crypt(&tmi->dec_data, (void *)mp,
2467 mp->b_datap->db_type = M_ERROR;
2468 mp->b_rptr = mp->b_datap->db_base;
2469 *mp->b_rptr = EIO;
2470 mp->b_wptr = mp->b_rptr + sizeof (char);
2471 freemsg(mp->b_cont);
2472 mp->b_cont = NULL;
2473 qreply(WR(q), mp);
2487 bcopy(mp->b_rptr + inlen - hash->hash_len, cksum,
2494 DB_LIM(mp));
2508 mp->b_datap->db_type = M_ERROR;
2509 mp->b_rptr = mp->b_datap->db_base;
2510 *mp->b_rptr = EIO;
2511 mp->b_wptr = mp->b_rptr + sizeof (char);
2512 freemsg(mp->b_cont);
2513 mp->b_cont = NULL;
2514 qreply(WR(q), mp);
2524 mp->b_rptr += hash->confound_len;
2526 mp->b_rptr += hash->confound_len + hash->hash_len;
2529 ASSERT(mp->b_rptr + datalen <= DB_LIM(mp));
2530 mp->b_wptr = mp->b_rptr + datalen;
2532 return (mp);
2536 do_decrypt(queue_t *q, mblk_t *mp)
2543 outmp = des_cfb_decrypt(q, tmi, mp);
2546 outmp = mp;
2549 outmp = des_cbc_decrypt(q, tmi, mp, &null_hash);
2552 outmp = des_cbc_decrypt(q, tmi, mp, &md5_hash);
2555 outmp = des_cbc_decrypt(q, tmi, mp, &crc32_hash);
2558 outmp = des_cbc_decrypt(q, tmi, mp, &sha1_hash);
2562 outmp = arcfour_hmac_md5_decrypt(q, tmi, mp, &md5_hash);
2566 outmp = aes_decrypt(q, tmi, mp, &sha1_hash);
2581 do_encrypt(queue_t *q, mblk_t *mp)
2588 outmp = des_cfb_encrypt(q, tmi, mp);
2591 outmp = des_cbc_encrypt(q, tmi, mp, &null_hash);
2594 outmp = des_cbc_encrypt(q, tmi, mp, &md5_hash);
2597 outmp = des_cbc_encrypt(q, tmi, mp, &crc32_hash);
2600 outmp = des_cbc_encrypt(q, tmi, mp, &sha1_hash);
2604 outmp = arcfour_hmac_md5_encrypt(q, tmi, mp, &md5_hash);
2608 outmp = aes_encrypt(q, tmi, mp, &sha1_hash);
2611 outmp = mp;
2958 encrypt_block(queue_t *q, struct tmodinfo *tmi, mblk_t *mp, size_t plainlen)
2998 if ((cipherlen + extra >= MBLKSIZE(mp)) || DB_REF(mp) > 1) {
3001 cbp = allocb_tmpl(sz, mp);
3008 cbp->b_cont = mp->b_cont;
3018 bcopy(mp->b_rptr, cbp->b_rptr, plainlen);
3021 freeb(mp);
3024 cbp = mp;
3098 encrypt_msgb(queue_t *q, struct tmodinfo *tmi, mblk_t *mp)
3105 return (mp);
3108 plainlen = MBLKL(mp);
3116 while ((plainlen = MBLKL(mp)) > MSGBUF_SIZE) {
3131 bcopy(mp->b_rptr, mp1->b_rptr, outlen);
3134 mp->b_rptr += outlen;
3145 if ((plainlen = MBLKL(mp)) > 0)
3146 newmp = encrypt_block(q, tmi, mp, plainlen);
3162 mblk_t *mp;
3165 while ((mp = getq(q)) != NULL) {
3166 switch (mp->b_datap->db_type) {
3173 if (!putbq(q, mp)) {
3174 freemsg(mp);
3178 putnext(q, mp);
3189 if (mp->b_cont != NULL) {
3190 bp = msgpullup(mp, -1);
3192 freemsg(mp);
3193 mp = bp;
3196 newmsg = encrypt_msgb(q, tmi, mp);
3200 if (!putbq(q, mp)) {
3201 freemsg(mp);
3212 start_stream(queue_t *wq, mblk_t *mp, uchar_t dir)
3230 newmp = mp->b_cont;
3231 mp->b_cont = NULL;
3247 miocack(wq, mp, 0, 0);
3255 cryptmodwput(queue_t *wq, mblk_t *mp)
3261 switch (mp->b_datap->db_type) {
3266 putnext(wq, mp);
3270 if (!putq(wq, mp)) {
3271 freemsg(mp);
3275 if (*mp->b_rptr & FLUSHW) {
3278 putnext(wq, mp);
3281 iocp = (struct iocblk *)mp->b_rptr;
3290 if ((err = miocpullup(mp,
3294 miocnak(wq, mp, 0, err);
3297 ci = (struct cr_info_t *)mp->b_cont->b_rptr;
3314 miocack(wq, mp, 0, 0);
3318 miocnak(wq, mp, 0, ret);
3332 if ((err = miocpullup(mp, sizeof (uint32_t))) != 0) {
3338 miocnak(wq, mp, 0, err);
3342 stopdir = (uint32_t *)mp->b_cont->b_rptr;
3344 miocnak(wq, mp, 0, EINVAL);
3358 miocack(wq, mp, 0, 0);
3367 start_stream(wq, mp, CRYPT_DECRYPT);
3375 start_stream(wq, mp, CRYPT_ENCRYPT);
3378 putnext(wq, mp);
3383 if (queclass(mp) < QPCTL) {
3385 if (!putq(wq, mp))
3386 freemsg(mp);
3390 putnext(wq, mp);
3426 decrypt_rcmd_mblks(queue_t *q, mblk_t *mp)
3432 msglen = msgsize(mp);
3447 while (mp != NULL) {
3455 ASSERT(mp->b_rptr + tocopy <= DB_LIM(mp));
3456 bcopy(mp->b_rptr,
3468 nextp = mp->b_cont;
3469 mp->b_cont = NULL;
3470 freeb(mp);
3471 mp = nextp;
3474 if (mp == NULL) {
3482 mp->b_rptr += tocopy;
3494 mp->b_datap->db_type = M_ERROR;
3495 mp->b_rptr = mp->b_datap->db_base;
3496 *mp->b_rptr = EIO;
3497 mp->b_wptr = mp->b_rptr + sizeof (char);
3499 freemsg(mp->b_cont);
3500 mp->b_cont = NULL;
3501 qreply(WR(q), mp);
3536 mp->b_datap->db_type = M_ERROR;
3537 mp->b_rptr = mp->b_datap->db_base;
3538 *mp->b_rptr = EIO;
3539 mp->b_wptr = mp->b_rptr + sizeof (char);
3540 freemsg(mp->b_cont);
3541 mp->b_cont = NULL;
3543 qreply(WR(q), mp);
3553 freemsg(mp);
3574 bp = mp;
3735 mblk_t *mp, *bp;
3738 while ((mp = getq(q)) != NULL) {
3739 switch (mp->b_datap->db_type) {
3751 mp = decrypt_rcmd_mblks(q, mp);
3752 if (mp)
3753 putnext(q, mp);
3756 if ((bp = msgpullup(mp, -1)) != NULL) {
3757 freemsg(mp);
3759 mp = do_decrypt(q, bp);
3760 if (mp != NULL)
3761 putnext(q, mp);
3765 if (!putbq(q, mp)) {
3766 freemsg(mp);
3777 if (!putbq(q, mp))
3778 freemsg(mp);
3781 putnext(q, mp);
3793 cryptmodrput(queue_t *rq, mblk_t *mp)
3795 switch (mp->b_datap->db_type) {
3797 if (!putq(rq, mp)) {
3798 freemsg(mp);
3802 if (*mp->b_rptr & FLUSHR) {
3805 putnext(rq, mp);
3808 if (queclass(mp) < QPCTL) {
3810 if (!putq(rq, mp))
3811 freemsg(mp);
3815 putnext(rq, mp);