des_ctx
des_ctx_t *des_ctx = ctx;
if (des_ctx->dc_flags & DES3_STRENGTH) {
if (des_ctx->dc_flags & CBC_MODE) {
if (des_ctx->dc_flags & CBC_MODE) {
des_ctx_t *des_ctx = ctx;
if (des_ctx->dc_flags & DES3_STRENGTH) {
if (des_ctx->dc_flags & CBC_MODE) {
if (des_ctx->dc_flags & CBC_MODE) {
des_ctx_t *des_ctx;
des_ctx = (des_ctx_t *)soft_des_ctx->des_cbc;
free(des_ctx);
des_ctx_t *des_ctx;
des_ctx = (des_ctx_t *)soft_des_ctx->des_cbc;
free(des_ctx);
des_ctx_t *des_ctx = NULL;
des_ctx = (des_ctx_t *)soft_des_ctx_encrypt->des_cbc;
(void) memcpy(last_block, des_ctx->dc_lastp,
des_ctx_t *des_ctx;
des_ctx = (des_ctx_t *)soft_des_ctx->des_cbc;
if (des_ctx != NULL) {
explicit_bzero(des_ctx->dc_keysched,
des_ctx->dc_keysched_len);
soft_des_ctx_t *des_ctx;
des_ctx = (soft_des_ctx_t *)session_p->verify.context;
len = des_ctx->mac_len;
soft_des_ctx_t *des_ctx;
des_ctx = (soft_des_ctx_t *)session_p->verify.context;
len = des_ctx->mac_len;
dca_request_t *des_ctx = ctx->cc_provider_private;
if (des_ctx == NULL)
des_ctx->dr_ctx.atomic = 0;
des_ctx->dr_ctx.ctx_cm_type = 0;
if (des_ctx->destroy)
dca_destroyreq(des_ctx);
dca_freereq(des_ctx);
dca_request_t *des_ctx = ctx->cc_provider_private;
rawlen = dca_length(in) + des_ctx->dr_ctx.residlen;
des_ctx->dr_ctx.iv[0] = htonl(p[0]);
des_ctx->dr_ctx.iv[1] = htonl(p[1]);
des_ctx->dr_ctx.iv[0] = p[0]<<24 | p[1]<<16 | p[2]<<8 | p[3];
des_ctx->dr_ctx.iv[1] = p[4]<<24 | p[5]<<16 | p[6]<<8 | p[7];
(rawlen % DESBLOCK) - des_ctx->dr_ctx.residlen,
des_ctx->dr_ctx.resid + des_ctx->dr_ctx.residlen)) !=
des_ctx->dr_ctx.residlen = rawlen % DESBLOCK;
if (des_ctx->dr_ctx.residlen) {
bcopy(des_ctx->dr_ctx.resid, des_ctx->dr_ctx.activeresid,
des_ctx->dr_ctx.residlen);
des_ctx->dr_ctx.activeresidlen = des_ctx->dr_ctx.residlen;
if ((rv = dca_getbufbytes(in, len - des_ctx->dr_ctx.residlen,
rawlen % DESBLOCK, des_ctx->dr_ctx.resid)) != CRYPTO_SUCCESS) {
des_ctx->dr_ctx.residlen = rawlen % DESBLOCK;
dca_request_t *des_ctx = ctx->cc_provider_private;
if (des_ctx->dr_ctx.residlen != 0) {
dca_request_t *des_ctx = ctx->cc_provider_private;
dca_request_t *des_ctx;
if ((des_ctx = dca_getreq(dca, MCR1, 1)) == NULL) {
des_ctx->dr_ctx.iv[0] = htonl(param[0]);
des_ctx->dr_ctx.iv[1] = htonl(param[1]);
des_ctx->dr_ctx.iv[0] = param[0]<<24 | param[1]<<16 |
des_ctx->dr_ctx.iv[1] = param[4]<<24 | param[5]<<16 |
des_ctx->dr_ctx.residlen = 0;
des_ctx->dr_ctx.activeresidlen = 0;
des_ctx->dr_ctx.ctx_cm_type = mechanism->cm_type;
ctx->cc_provider_private = des_ctx;
des_ctx->dr_ctx.key[i] = 0;
des_ctx->dr_ctx.key[i] <<= 8;
des_ctx->dr_ctx.key[i] |= *value;
des_ctx->dr_ctx.key[i] = 0;
des_ctx->dr_ctx.key[i] <<= 8;
des_ctx->dr_ctx.key[i] |= *value;
des_ctx->dr_ctx.key[4] = des_ctx->dr_ctx.key[0];
des_ctx->dr_ctx.key[5] = des_ctx->dr_ctx.key[1];
des_ctx->dr_ctx.key[0] = htonl(value32[0]);
des_ctx->dr_ctx.key[1] = htonl(value32[1]);
des_ctx->dr_ctx.key[0] =
des_ctx->dr_ctx.key[1] =
des_ctx->dr_ctx.key[4] =
des_ctx->dr_ctx.key[2] = des_ctx->dr_ctx.key[0];
des_ctx->dr_ctx.key[5] =
des_ctx->dr_ctx.key[3] = des_ctx->dr_ctx.key[1];
PUTCTX16(des_ctx, CTX_LENGTH, CTX_3DES_LENGTH);
PUTCTX16(des_ctx, CTX_CMD, CMD_3DES);
PUTCTX32(des_ctx, CTX_3DESDIRECTION,
PUTCTX32(des_ctx, CTX_3DESKEY1HI, des_ctx->dr_ctx.key[0]);
PUTCTX32(des_ctx, CTX_3DESKEY1LO, des_ctx->dr_ctx.key[1]);
PUTCTX32(des_ctx, CTX_3DESKEY2HI, des_ctx->dr_ctx.key[2]);
PUTCTX32(des_ctx, CTX_3DESKEY2LO, des_ctx->dr_ctx.key[3]);
PUTCTX32(des_ctx, CTX_3DESKEY3HI, des_ctx->dr_ctx.key[4]);
PUTCTX32(des_ctx, CTX_3DESKEY3LO, des_ctx->dr_ctx.key[5]);
des_ctx->dr_ctx.iv[0] = htonl(p[0]);
des_ctx->dr_ctx.iv[1] = htonl(p[1]);
des_ctx->dr_ctx.iv[0] = p[0]<<24 | p[1]<<16 | p[2]<<8 | p[3];
des_ctx->dr_ctx.iv[1] = p[4]<<24 | p[5]<<16 | p[6]<<8 | p[7];
des_ctx_t *des_ctx = ctx->cc_provider_private;
if (des_ctx != NULL) {
if (des_ctx->dc_flags & PROVIDER_OWNS_KEY_SCHEDULE) {
ASSERT(des_ctx->dc_keysched_len != 0);
bzero(des_ctx->dc_keysched, des_ctx->dc_keysched_len);
kmem_free(des_ctx->dc_keysched,
des_ctx->dc_keysched_len);
crypto_free_mode_ctx(des_ctx);
des_common_init_ctx(des_ctx_t *des_ctx, crypto_spi_ctx_template_t *template,
des_ctx->dc_flags |= PROVIDER_OWNS_KEY_SCHEDULE;
des_ctx->dc_keysched_len = size;
des_ctx->dc_keysched = keysched;
des_ctx->dc_flags |= DES3_STRENGTH;
rv = cbc_init_ctx((cbc_ctx_t *)des_ctx, mechanism->cm_param,
des_ctx->dc_flags |= ECB_MODE;
if (des_ctx->dc_flags & PROVIDER_OWNS_KEY_SCHEDULE) {
des_ctx_t *des_ctx = NULL;
des_ctx = ecb_alloc_ctx(kmflag);
if (des_ctx == NULL)
des_ctx = cbc_alloc_ctx(kmflag);
des_ctx = ecb_alloc_ctx(kmflag);
if (des_ctx == NULL)
des_ctx = cbc_alloc_ctx(kmflag);
if ((rv = des_common_init_ctx(des_ctx, template, mechanism, key,
crypto_free_mode_ctx(des_ctx);
ctx->cc_provider_private = des_ctx;
des_ctx_t *des_ctx;
des_ctx = ctx->cc_provider_private;
ASSERT(des_ctx->dc_remainder_len == 0);
des_ctx_t *des_ctx;
des_ctx = ctx->cc_provider_private;
ASSERT(des_ctx->dc_remainder_len == 0);
des_ctx_t *des_ctx;
des_ctx = ctx->cc_provider_private;
if (des_ctx->dc_remainder_len > 0)
des_ctx_t *des_ctx;
des_ctx = ctx->cc_provider_private;
if (des_ctx->dc_remainder_len > 0)
des_ctx_t des_ctx; /* on the stack */
bzero(&des_ctx, sizeof (des_ctx_t));
if ((ret = des_common_init_ctx(&des_ctx, template, mechanism, key,
ret = crypto_update_iov(&des_ctx, plaintext, ciphertext,
ret = crypto_update_uio(&des_ctx, plaintext, ciphertext,
ret = crypto_update_mp(&des_ctx, plaintext, ciphertext,
if (des_ctx.dc_flags & PROVIDER_OWNS_KEY_SCHEDULE) {
bzero(des_ctx.dc_keysched, des_ctx.dc_keysched_len);
kmem_free(des_ctx.dc_keysched, des_ctx.dc_keysched_len);
ASSERT(des_ctx.dc_remainder_len == 0);
des_ctx_t des_ctx; /* on the stack */
bzero(&des_ctx, sizeof (des_ctx_t));
if ((ret = des_common_init_ctx(&des_ctx, template, mechanism, key,
ret = crypto_update_iov(&des_ctx, ciphertext, plaintext,
ret = crypto_update_uio(&des_ctx, ciphertext, plaintext,
ret = crypto_update_mp(&des_ctx, ciphertext, plaintext,
if (des_ctx.dc_flags & PROVIDER_OWNS_KEY_SCHEDULE) {
bzero(des_ctx.dc_keysched, des_ctx.dc_keysched_len);
kmem_free(des_ctx.dc_keysched, des_ctx.dc_keysched_len);
ASSERT(des_ctx.dc_remainder_len == 0);