Lines Matching refs:ctx
115 PROV_CIPHER_CTX *ctx = (PROV_CIPHER_CTX *)vctx; variable
131 ctx->keylen = keylen;
176 void ossl_cipher_generic_reset_ctx(PROV_CIPHER_CTX *ctx) in ossl_cipher_generic_reset_ctx() argument
178 if (ctx != NULL && ctx->alloced) { in ossl_cipher_generic_reset_ctx()
179 OPENSSL_free(ctx->tlsmac); in ossl_cipher_generic_reset_ctx()
180 ctx->alloced = 0; in ossl_cipher_generic_reset_ctx()
181 ctx->tlsmac = NULL; in ossl_cipher_generic_reset_ctx()
185 static int cipher_generic_init_internal(PROV_CIPHER_CTX *ctx, in cipher_generic_init_internal() argument
190 ctx->num = 0; in cipher_generic_init_internal()
191 ctx->bufsz = 0; in cipher_generic_init_internal()
192 ctx->updated = 0; in cipher_generic_init_internal()
193 ctx->enc = enc ? 1 : 0; in cipher_generic_init_internal()
198 if (iv != NULL && ctx->mode != EVP_CIPH_ECB_MODE) { in cipher_generic_init_internal()
199 if (!ossl_cipher_generic_initiv(ctx, iv, ivlen)) in cipher_generic_init_internal()
202 if (iv == NULL && ctx->iv_set in cipher_generic_init_internal()
203 && (ctx->mode == EVP_CIPH_CBC_MODE in cipher_generic_init_internal()
204 || ctx->mode == EVP_CIPH_CFB_MODE in cipher_generic_init_internal()
205 || ctx->mode == EVP_CIPH_OFB_MODE)) in cipher_generic_init_internal()
207 memcpy(ctx->iv, ctx->oiv, ctx->ivlen); in cipher_generic_init_internal()
210 if (ctx->variable_keylength == 0) { in cipher_generic_init_internal()
211 if (keylen != ctx->keylen) { in cipher_generic_init_internal()
216 ctx->keylen = keylen; in cipher_generic_init_internal()
218 if (!ctx->hw->init(ctx, key, ctx->keylen)) in cipher_generic_init_internal()
221 return ossl_cipher_generic_set_ctx_params(ctx, params); in cipher_generic_init_internal()
248 PROV_CIPHER_CTX *ctx = (PROV_CIPHER_CTX *)vctx; in ossl_cipher_generic_block_update() local
249 size_t blksz = ctx->blocksize; in ossl_cipher_generic_block_update()
252 if (ctx->tlsversion > 0) { in ossl_cipher_generic_block_update()
262 || !ctx->pad) { in ossl_cipher_generic_block_update()
267 if (ctx->enc) { in ossl_cipher_generic_block_update()
285 if (ctx->tlsversion == SSL3_VERSION) { in ossl_cipher_generic_block_update()
304 if (!ctx->hw->cipher(ctx, out, in, inl)) { in ossl_cipher_generic_block_update()
309 if (ctx->alloced) { in ossl_cipher_generic_block_update()
310 OPENSSL_free(ctx->tlsmac); in ossl_cipher_generic_block_update()
311 ctx->alloced = 0; in ossl_cipher_generic_block_update()
312 ctx->tlsmac = NULL; in ossl_cipher_generic_block_update()
317 if (!ctx->enc in ossl_cipher_generic_block_update()
318 && !ossl_cipher_tlsunpadblock(ctx->libctx, ctx->tlsversion, in ossl_cipher_generic_block_update()
320 blksz, &ctx->tlsmac, &ctx->alloced, in ossl_cipher_generic_block_update()
321 ctx->tlsmacsize, 0)) { in ossl_cipher_generic_block_update()
328 if (ctx->bufsz != 0) in ossl_cipher_generic_block_update()
329 nextblocks = ossl_cipher_fillblock(ctx->buf, &ctx->bufsz, blksz, in ossl_cipher_generic_block_update()
339 if (ctx->bufsz == blksz && (ctx->enc || inl > 0 || !ctx->pad)) { in ossl_cipher_generic_block_update()
344 if (!ctx->hw->cipher(ctx, out, ctx->buf, blksz)) { in ossl_cipher_generic_block_update()
348 ctx->bufsz = 0; in ossl_cipher_generic_block_update()
353 if (!ctx->enc && ctx->pad && nextblocks == inl) { in ossl_cipher_generic_block_update()
367 if (!ctx->hw->cipher(ctx, out, in, nextblocks)) { in ossl_cipher_generic_block_update()
375 && !ossl_cipher_trailingdata(ctx->buf, &ctx->bufsz, blksz, &in, &inl)) { in ossl_cipher_generic_block_update()
387 PROV_CIPHER_CTX *ctx = (PROV_CIPHER_CTX *)vctx; in ossl_cipher_generic_block_final() local
388 size_t blksz = ctx->blocksize; in ossl_cipher_generic_block_final()
393 if (ctx->tlsversion > 0) { in ossl_cipher_generic_block_final()
399 if (ctx->enc) { in ossl_cipher_generic_block_final()
400 if (ctx->pad) { in ossl_cipher_generic_block_final()
401 ossl_cipher_padblock(ctx->buf, &ctx->bufsz, blksz); in ossl_cipher_generic_block_final()
402 } else if (ctx->bufsz == 0) { in ossl_cipher_generic_block_final()
405 } else if (ctx->bufsz != blksz) { in ossl_cipher_generic_block_final()
414 if (!ctx->hw->cipher(ctx, out, ctx->buf, blksz)) { in ossl_cipher_generic_block_final()
418 ctx->bufsz = 0; in ossl_cipher_generic_block_final()
424 if (ctx->bufsz != blksz) { in ossl_cipher_generic_block_final()
425 if (ctx->bufsz == 0 && !ctx->pad) { in ossl_cipher_generic_block_final()
433 if (!ctx->hw->cipher(ctx, ctx->buf, ctx->buf, blksz)) { in ossl_cipher_generic_block_final()
438 if (ctx->pad && !ossl_cipher_unpadblock(ctx->buf, &ctx->bufsz, blksz)) { in ossl_cipher_generic_block_final()
443 if (outsize < ctx->bufsz) { in ossl_cipher_generic_block_final()
447 memcpy(out, ctx->buf, ctx->bufsz); in ossl_cipher_generic_block_final()
448 *outl = ctx->bufsz; in ossl_cipher_generic_block_final()
449 ctx->bufsz = 0; in ossl_cipher_generic_block_final()
457 PROV_CIPHER_CTX *ctx = (PROV_CIPHER_CTX *)vctx; in ossl_cipher_generic_stream_update() local
469 if (!ctx->hw->cipher(ctx, out, in, inl)) { in ossl_cipher_generic_stream_update()
475 if (!ctx->enc && ctx->tlsversion > 0) { in ossl_cipher_generic_stream_update()
480 if (ctx->removetlspad) { in ossl_cipher_generic_stream_update()
494 if (!ossl_assert(*outl >= ctx->removetlsfixed)) in ossl_cipher_generic_stream_update()
496 *outl -= ctx->removetlsfixed; in ossl_cipher_generic_stream_update()
499 if (ctx->tlsmacsize > 0) { in ossl_cipher_generic_stream_update()
500 if (*outl < ctx->tlsmacsize) in ossl_cipher_generic_stream_update()
503 ctx->tlsmac = out + *outl - ctx->tlsmacsize; in ossl_cipher_generic_stream_update()
504 *outl -= ctx->tlsmacsize; in ossl_cipher_generic_stream_update()
524 PROV_CIPHER_CTX *ctx = (PROV_CIPHER_CTX *)vctx; in ossl_cipher_generic_cipher() local
534 if (!ctx->hw->cipher(ctx, out, in, inl)) { in ossl_cipher_generic_cipher()
545 PROV_CIPHER_CTX *ctx = (PROV_CIPHER_CTX *)vctx; in ossl_cipher_generic_get_ctx_params() local
549 if (p != NULL && !OSSL_PARAM_set_size_t(p, ctx->ivlen)) { in ossl_cipher_generic_get_ctx_params()
554 if (p != NULL && !OSSL_PARAM_set_uint(p, ctx->pad)) { in ossl_cipher_generic_get_ctx_params()
560 && !OSSL_PARAM_set_octet_ptr(p, &ctx->oiv, ctx->ivlen) in ossl_cipher_generic_get_ctx_params()
561 && !OSSL_PARAM_set_octet_string(p, &ctx->oiv, ctx->ivlen)) { in ossl_cipher_generic_get_ctx_params()
567 && !OSSL_PARAM_set_octet_ptr(p, &ctx->iv, ctx->ivlen) in ossl_cipher_generic_get_ctx_params()
568 && !OSSL_PARAM_set_octet_string(p, &ctx->iv, ctx->ivlen)) { in ossl_cipher_generic_get_ctx_params()
573 if (p != NULL && !OSSL_PARAM_set_uint(p, ctx->num)) { in ossl_cipher_generic_get_ctx_params()
578 if (p != NULL && !OSSL_PARAM_set_size_t(p, ctx->keylen)) { in ossl_cipher_generic_get_ctx_params()
584 && !OSSL_PARAM_set_octet_ptr(p, ctx->tlsmac, ctx->tlsmacsize)) { in ossl_cipher_generic_get_ctx_params()
593 PROV_CIPHER_CTX *ctx = (PROV_CIPHER_CTX *)vctx; in ossl_cipher_generic_set_ctx_params() local
607 ctx->pad = pad ? 1 : 0; in ossl_cipher_generic_set_ctx_params()
617 ctx->use_bits = bits ? 1 : 0; in ossl_cipher_generic_set_ctx_params()
621 if (!OSSL_PARAM_get_uint(p, &ctx->tlsversion)) { in ossl_cipher_generic_set_ctx_params()
628 if (!OSSL_PARAM_get_size_t(p, &ctx->tlsmacsize)) { in ossl_cipher_generic_set_ctx_params()
641 ctx->num = num; in ossl_cipher_generic_set_ctx_params()
646 int ossl_cipher_generic_initiv(PROV_CIPHER_CTX *ctx, const unsigned char *iv, in ossl_cipher_generic_initiv() argument
649 if (ivlen != ctx->ivlen in ossl_cipher_generic_initiv()
650 || ivlen > sizeof(ctx->iv)) { in ossl_cipher_generic_initiv()
654 ctx->iv_set = 1; in ossl_cipher_generic_initiv()
655 memcpy(ctx->iv, iv, ivlen); in ossl_cipher_generic_initiv()
656 memcpy(ctx->oiv, iv, ivlen); in ossl_cipher_generic_initiv()
665 PROV_CIPHER_CTX *ctx = (PROV_CIPHER_CTX *)vctx; in ossl_cipher_generic_initkey() local
668 ctx->inverse_cipher = 1; in ossl_cipher_generic_initkey()
670 ctx->variable_keylength = 1; in ossl_cipher_generic_initkey()
672 ctx->pad = 1; in ossl_cipher_generic_initkey()
673 ctx->keylen = ((kbits) / 8); in ossl_cipher_generic_initkey()
674 ctx->ivlen = ((ivbits) / 8); in ossl_cipher_generic_initkey()
675 ctx->hw = hw; in ossl_cipher_generic_initkey()
676 ctx->mode = mode; in ossl_cipher_generic_initkey()
677 ctx->blocksize = blkbits / 8; in ossl_cipher_generic_initkey()
679 ctx->libctx = PROV_LIBCTX_OF(provctx); /* used for rand */ in ossl_cipher_generic_initkey()