Lines Matching defs:tmi

265 	struct tmodinfo	*tmi;
283 tmi = (struct tmodinfo *)kmem_zalloc(sizeof (struct tmodinfo),
286 tmi->enc_data.method = CRYPT_METHOD_NONE;
287 tmi->dec_data.method = CRYPT_METHOD_NONE;
289 tmi->ready = (CRYPT_READ_READY | CRYPT_WRITE_READY);
291 rq->q_ptr = WR(rq)->q_ptr = tmi;
306 struct tmodinfo *tmi = (struct tmodinfo *)rq->q_ptr;
307 ASSERT(tmi);
311 cleanup(&tmi->enc_data);
312 cleanup(&tmi->dec_data);
314 kmem_free(tmi, sizeof (struct tmodinfo));
437 des_cfb_encrypt(queue_t *q, struct tmodinfo *tmi, mblk_t *mp)
444 savedbytes = tmi->enc_data.bytes % CFB_BLKSZ;
449 * The first time this runs, the 'tmi->enc_data.block' will
455 if (!(tmi->enc_data.bytes % CFB_BLKSZ)) {
457 retval = kef_crypt(&tmi->enc_data,
458 tmi->enc_data.block,
460 tmi->enc_data.blocklen,
481 tmi->enc_data.block[tmi->enc_data.bytes % CFB_BLKSZ];
483 tmi->enc_data.bytes++;
487 if (!(tmi->enc_data.bytes % CFB_BLKSZ)) {
488 char *dbptr = tmi->enc_data.block;
494 bcopy(tmi->enc_data.saveblock,
516 tmi->enc_data.saveblock + savedbytes,
532 des_cfb_decrypt(queue_t *q, struct tmodinfo *tmi, mblk_t *mp)
545 savedbytes = tmi->dec_data.bytes % tmi->dec_data.blocklen;
553 cp = ((tmi->dec_data.blocklen - savedbytes) > len ? len :
554 tmi->dec_data.blocklen - savedbytes);
556 bcopy(lastinput, tmi->dec_data.saveblock + savedbytes, cp);
564 * The first time this runs, the 'tmi->dec_data.block' will
568 if (!(tmi->dec_data.bytes % CFB_BLKSZ)) {
570 retval = kef_crypt(&tmi->dec_data,
571 tmi->dec_data.block,
573 tmi->dec_data.blocklen,
595 *(iptr++) ^= tmi->dec_data.block[tmi->dec_data.bytes %
598 tmi->dec_data.bytes++;
603 if (!(tmi->dec_data.bytes % tmi->dec_data.blocklen)) {
604 char *dbptr = tmi->dec_data.block;
610 bcopy(tmi->dec_data.saveblock,
626 tmi->dec_data.blocklen ?
627 tmi->dec_data.blocklen :
631 bcopy(lastinput, tmi->dec_data.saveblock,
1244 aes_cbc_cts_encrypt(struct tmodinfo *tmi, uchar_t *plain, size_t length)
1254 mech.cm_type = tmi->enc_data.mech_type;
1255 if (tmi->enc_data.ivlen > 0 && tmi->enc_data.ivec != NULL) {
1256 bcopy(tmi->enc_data.ivec, tmp, DEFAULT_AES_BLOCKLEN);
1275 &tmi->enc_data.d_encr_key, NULL, NULL, NULL);
1293 &tmi->enc_data.d_encr_key,
1294 tmi->enc_data.enc_tmpl,
1295 &tmi->enc_data.ctx, NULL);
1313 result = crypto_encrypt_update(tmi->enc_data.ctx,
1337 result = crypto_encrypt_update(tmi->enc_data.ctx,
1367 result = crypto_encrypt_update(tmi->enc_data.ctx,
1387 result = crypto_encrypt_final(tmi->enc_data.ctx, &ct, NULL);
1393 tmi->enc_data.ctx = NULL;
1399 bzero(tmi->enc_data.block, tmi->enc_data.blocklen);
1404 aes_cbc_cts_decrypt(struct tmodinfo *tmi, uchar_t *buff, size_t length)
1414 mech.cm_type = tmi->enc_data.mech_type;
1416 if (tmi->dec_data.ivec_usage != IVEC_NEVER &&
1417 tmi->dec_data.ivlen > 0 && tmi->dec_data.ivec != NULL) {
1418 bcopy(tmi->dec_data.ivec, tmp, DEFAULT_AES_BLOCKLEN);
1437 &tmi->dec_data.d_encr_key, NULL, NULL, NULL);
1454 &tmi->dec_data.d_encr_key,
1455 tmi->dec_data.enc_tmpl,
1456 &tmi->dec_data.ctx, NULL);
1476 tmi->dec_data.block, DEFAULT_AES_BLOCKLEN);
1478 result = crypto_decrypt_update(tmi->dec_data.ctx,
1493 bcopy(tmi->dec_data.block, tmp, DEFAULT_AES_BLOCKLEN);
1501 result = crypto_decrypt_update(tmi->dec_data.ctx,
1527 result = crypto_decrypt_update(tmi->dec_data.ctx,
1546 result = crypto_decrypt_final(tmi->dec_data.ctx, &pt, NULL);
1552 tmi->dec_data.ctx = NULL;
1559 bzero(tmi->dec_data.block, tmi->dec_data.blocklen);
1572 aes_decrypt(queue_t *q, struct tmodinfo *tmi, mblk_t *mp,
1584 if (tmi->dec_data.ivec_usage != IVEC_NEVER &&
1585 tmi->dec_data.ivec != NULL && tmi->dec_data.ivlen > 0) {
1593 result = aes_cbc_cts_decrypt(tmi, mp->b_rptr, enclen);
1604 &tmi->dec_data.d_hmac_key,
1627 if (tmi->dec_data.ivec_usage != IVEC_NEVER &&
1628 tmi->dec_data.ivec != NULL && tmi->dec_data.ivlen > 0)
1629 bcopy(tmpiv, tmi->dec_data.ivec, DEFAULT_AES_BLOCKLEN);
1654 aes_encrypt(queue_t *q, struct tmodinfo *tmi, mblk_t *mp,
1664 cipherlen = encrypt_size(&tmi->enc_data, inlen);
1683 &tmi->enc_data.d_hmac_key,
1693 result = aes_cbc_cts_encrypt(tmi, mp->b_rptr,
1712 if (tmi->enc_data.ivec_usage != IVEC_NEVER &&
1713 tmi->enc_data.ivec != NULL) {
1718 tmi->enc_data.ivec, DEFAULT_AES_BLOCKLEN);
1745 arcfour_hmac_md5_decrypt(queue_t *q, struct tmodinfo *tmi, mblk_t *mp,
1767 if (tmi->dec_data.option_mask & CRYPTOPT_RCMD_MODE_V1)
1787 if (tmi->dec_data.method == CRYPT_METHOD_ARCFOUR_HMAC_MD5_EXP) {
1807 tmi->dec_data.ckey,
1823 if (tmi->dec_data.method == CRYPT_METHOD_ARCFOUR_HMAC_MD5_EXP) {
1827 mech.cm_type = tmi->dec_data.mech_type;
1835 if (tmi->dec_data.ctx == NULL ||
1836 (tmi->dec_data.option_mask & CRYPTOPT_RCMD_MODE_V1)) {
1841 tmi->dec_data.d_encr_key.ck_format = CRYPTO_KEY_RAW;
1842 tmi->dec_data.d_encr_key.ck_length = k1.ck_length;
1843 if (tmi->dec_data.d_encr_key.ck_data == NULL)
1844 tmi->dec_data.d_encr_key.ck_data = kmem_zalloc(
1853 (char *)tmi->dec_data.d_encr_key.ck_data,
1865 tmi->dec_data.enc_tmpl = NULL;
1867 if (tmi->dec_data.ctx == NULL &&
1868 (tmi->dec_data.option_mask & CRYPTOPT_RCMD_MODE_V2)) {
1874 &tmi->dec_data.d_encr_key,
1875 &tmi->dec_data.enc_tmpl,
1878 tmi->dec_data.enc_tmpl = NULL;
1888 &tmi->dec_data.d_encr_key,
1889 tmi->dec_data.enc_tmpl,
1890 &tmi->dec_data.ctx, NULL);
1909 if (tmi->dec_data.option_mask & CRYPTOPT_RCMD_MODE_V2)
1910 result = crypto_decrypt_update(tmi->dec_data.ctx,
1914 &tmi->dec_data.d_encr_key, NULL, NULL, NULL);
1978 arcfour_hmac_md5_encrypt(queue_t *q, struct tmodinfo *tmi, mblk_t *mp,
1999 if (tmi->enc_data.option_mask & CRYPTOPT_RCMD_MODE_V1)
2004 mech.cm_type = tmi->enc_data.mech_type;
2016 cipherlen = encrypt_size(&tmi->enc_data, inlen);
2033 if (tmi->enc_data.method == CRYPT_METHOD_ARCFOUR_HMAC_MD5_EXP) {
2053 tmi->enc_data.ckey,
2070 if (tmi->enc_data.method == CRYPT_METHOD_ARCFOUR_HMAC_MD5_EXP) {
2109 if (tmi->enc_data.ctx == NULL ||
2110 (tmi->enc_data.option_mask & CRYPTOPT_RCMD_MODE_V1)) {
2111 crypto_key_t *key = &tmi->enc_data.d_encr_key;
2142 if (tmi->enc_data.ctx == NULL &&
2143 (tmi->enc_data.option_mask & CRYPTOPT_RCMD_MODE_V2)) {
2149 &tmi->enc_data.d_encr_key,
2150 &tmi->enc_data.enc_tmpl,
2153 tmi->enc_data.enc_tmpl = NULL;
2161 &tmi->enc_data.d_encr_key,
2162 tmi->enc_data.enc_tmpl,
2163 &tmi->enc_data.ctx, NULL);
2178 if (tmi->enc_data.option_mask & CRYPTOPT_RCMD_MODE_V2)
2179 result = crypto_encrypt_update(tmi->enc_data.ctx,
2183 &tmi->enc_data.d_encr_key, NULL,
2235 des_cbc_encrypt(queue_t *q, struct tmodinfo *tmi, mblk_t *mp, hash_info_t *hash)
2254 cipherlen = encrypt_size(&tmi->enc_data, inlen);
2266 if (tmi->enc_data.method == CRYPT_METHOD_DES3_CBC_SHA1) {
2284 if (tmi->enc_data.method != CRYPT_METHOD_DES3_CBC_SHA1) {
2310 if (tmi->enc_data.ivec_usage == IVEC_NEVER) {
2311 bzero(tmi->enc_data.block, tmi->enc_data.blocklen);
2312 } else if (tmi->enc_data.ivec_usage == IVEC_REUSE) {
2313 bcopy(tmi->enc_data.ivec, tmi->enc_data.block,
2314 tmi->enc_data.blocklen);
2317 if (tmi->enc_data.method == CRYPT_METHOD_DES3_CBC_SHA1) {
2327 result = kef_encr_hmac(&tmi->enc_data,
2334 result = kef_crypt(&tmi->enc_data, (void *)mp,
2354 } else if (tmi->enc_data.ivec_usage == IVEC_ONETIME) {
2359 bcopy(mp->b_wptr - tmi->enc_data.ivlen,
2360 tmi->enc_data.block, tmi->enc_data.ivlen);
2362 if (tmi->enc_data.method == CRYPT_METHOD_DES3_CBC_SHA1) {
2397 des_cbc_decrypt(queue_t *q, struct tmodinfo *tmi, mblk_t *mp, hash_info_t *hash)
2420 if (tmi->dec_data.ivec_usage == IVEC_NEVER)
2421 bzero(tmi->dec_data.block, tmi->dec_data.blocklen);
2422 else if (tmi->dec_data.ivec_usage == IVEC_REUSE)
2423 bcopy(tmi->dec_data.ivec, tmi->dec_data.block,
2424 tmi->dec_data.blocklen);
2426 if (tmi->dec_data.method == CRYPT_METHOD_DES3_CBC_SHA1) {
2442 if (tmi->dec_data.ivec_usage == IVEC_ONETIME) {
2443 bcopy(mp->b_rptr + decrypt_len - tmi->dec_data.ivlen,
2444 nextiv, tmi->dec_data.ivlen);
2447 result = kef_decr_hmac(&tmi->dec_data, mp, decrypt_len,
2454 if (tmi->dec_data.ivec_usage == IVEC_ONETIME) {
2455 bcopy(mp->b_wptr - tmi->enc_data.ivlen, nextiv,
2456 tmi->dec_data.ivlen);
2458 result = kef_crypt(&tmi->dec_data, (void *)mp,
2480 if (tmi->dec_data.ivec_usage == IVEC_ONETIME) {
2481 bcopy(nextiv, tmi->dec_data.block, tmi->dec_data.ivlen);
2486 if (tmi->dec_data.method == CRYPT_METHOD_DES3_CBC_SHA1) {
2523 if (tmi->dec_data.method == CRYPT_METHOD_DES3_CBC_SHA1)
2538 struct tmodinfo *tmi = (struct tmodinfo *)q->q_ptr;
2541 switch (tmi->dec_data.method) {
2543 outmp = des_cfb_decrypt(q, tmi, 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);
2583 struct tmodinfo *tmi = (struct tmodinfo *)q->q_ptr;
2586 switch (tmi->enc_data.method) {
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);
2958 encrypt_block(queue_t *q, struct tmodinfo *tmi, mblk_t *mp, size_t plainlen)
2973 if (tmi->enc_data.option_mask & CRYPTOPT_RCMD_MODE_V2)
2976 cipherlen = encrypt_size(&tmi->enc_data, (size_t)ptlen);
2983 if (ANY_RCMD_MODE(tmi->enc_data.option_mask)) {
2991 headspace = plaintext_offset(&tmi->enc_data);
3031 if (tmi->enc_data.method ==
3033 IS_AES_METHOD(tmi->enc_data.method)) {
3058 if (tmi->enc_data.option_mask & CRYPTOPT_RCMD_MODE_V2) {
3071 (tmi->enc_data.option_mask &
3098 encrypt_msgb(queue_t *q, struct tmodinfo *tmi, mblk_t *mp)
3104 if (tmi->enc_data.method == CRYPT_METHOD_NONE) {
3137 newmp = encrypt_block(q, tmi, mp1, outlen);
3146 newmp = encrypt_block(q, tmi, mp, plainlen);
3163 struct tmodinfo *tmi = (struct tmodinfo *)q->q_ptr;
3172 !(tmi->ready & CRYPT_WRITE_READY)) {
3181 if (canputnext(q) && (tmi->ready & CRYPT_WRITE_READY)) {
3196 newmsg = encrypt_msgb(q, tmi, mp);
3215 struct tmodinfo *tmi = (struct tmodinfo *)wq->q_ptr;
3218 tmi->ready |= CRYPT_WRITE_READY;
3233 tmi->ready |= CRYPT_READ_READY;
3258 struct tmodinfo *tmi = (struct tmodinfo *)wq->q_ptr;
3264 (tmi->ready & CRYPT_WRITE_READY) &&
3265 tmi->enc_data.method == CRYPT_METHOD_NONE) {
3300 ret = setup_crypto(ci, &tmi->enc_data, 1);
3305 ret = setup_crypto(ci, &tmi->dec_data, 0);
3309 ANY_RCMD_MODE(tmi->dec_data.option_mask)) {
3310 bzero(&tmi->rcmd_state,
3311 sizeof (tmi->rcmd_state));
3351 tmi->ready &= ~CRYPT_WRITE_READY;
3355 tmi->ready &= ~CRYPT_READ_READY;
3430 struct tmodinfo *tmi = (struct tmodinfo *)q->q_ptr;
3438 if (tmi->rcmd_state.pt_len == 0) {
3448 ASSERT(tmi->rcmd_state.cd_len < sizeof (uint32_t));
3451 tmi->rcmd_state.cd_len;
3457 (char *)(&tmi->rcmd_state.next_len +
3458 tmi->rcmd_state.cd_len), tocopy);
3460 tmi->rcmd_state.cd_len += tocopy;
3462 if (tmi->rcmd_state.cd_len >= sizeof (uint32_t)) {
3463 tmi->rcmd_state.next_len =
3464 ntohl(tmi->rcmd_state.next_len);
3484 tmi->rcmd_state.pt_len = tmi->rcmd_state.next_len;
3486 if (tmi->rcmd_state.pt_len <= 0) {
3502 tmi->rcmd_state.cd_len = tmi->rcmd_state.pt_len = 0;
3514 if (tmi->dec_data.option_mask & CRYPTOPT_RCMD_MODE_V2)
3515 elen = tmi->rcmd_state.pt_len + 4;
3517 elen = tmi->rcmd_state.pt_len;
3519 tmi->rcmd_state.cd_len = encrypt_size(&tmi->dec_data, elen);
3525 tmi->rcmd_state.c_msg = allocb(tmi->rcmd_state.cd_len,
3527 if (tmi->rcmd_state.c_msg == NULL) {
3531 (int)tmi->rcmd_state.cd_len);
3542 tmi->rcmd_state.cd_len = tmi->rcmd_state.pt_len = 0;
3564 ASSERT(tmi->rcmd_state.c_msg != NULL);
3566 (tmi->rcmd_state.cd_len > MBLKL(tmi->rcmd_state.c_msg))) {
3580 needed = tmi->rcmd_state.cd_len -
3581 MBLKL(tmi->rcmd_state.c_msg);
3586 ASSERT(tmi->rcmd_state.c_msg->b_wptr + tocopy <=
3587 DB_LIM(tmi->rcmd_state.c_msg));
3590 bcopy(bp->b_rptr, tmi->rcmd_state.c_msg->b_wptr,
3593 tmi->rcmd_state.c_msg->b_wptr += tocopy;
3609 if (MBLKL(tmi->rcmd_state.c_msg) ==
3610 tmi->rcmd_state.cd_len) {
3637 if (tmi->rcmd_state.pt_len > 0 &&
3638 MBLKL(tmi->rcmd_state.c_msg) == tmi->rcmd_state.cd_len) {
3646 bp = tmi->rcmd_state.c_msg;
3647 tmi->rcmd_state.c_msg = NULL;
3658 if (tmi->dec_data.option_mask &
3667 if (pt_len2 != tmi->rcmd_state.pt_len) {
3671 (int)tmi->rcmd_state.pt_len,
3679 tmi->rcmd_state.cd_len = 0;
3692 bp->b_wptr = bp->b_rptr + tmi->rcmd_state.pt_len;
3700 tmi->rcmd_state.pt_len = 0;
3701 tmi->rcmd_state.cd_len = 0;
3706 (int)tmi->rcmd_state.cd_len);
3712 tmi->rcmd_state.pt_len = 0;
3713 tmi->rcmd_state.cd_len = 0;
3736 struct tmodinfo *tmi = (struct tmodinfo *)q->q_ptr;
3741 if (canputnext(q) && tmi->ready & CRYPT_READ_READY) {
3747 if (tmi->dec_data.method != CRYPT_METHOD_NONE &&
3748 (tmi->dec_data.option_mask &