Lines Matching refs:cipher_ctx
105 struct cipher_ctx { struct
207 struct cipher_ctx *cipher_ctx = in cipher_init() local
208 (struct cipher_ctx *)EVP_CIPHER_CTX_get_cipher_data(ctx); in cipher_init()
214 if (cipher_ctx->sess.ses != 0 && in cipher_init()
215 clean_devcrypto_session(&cipher_ctx->sess) == 0) in cipher_init()
218 cipher_ctx->sess.cipher = cipher_d->devcryptoid; in cipher_init()
219 cipher_ctx->sess.keylen = cipher_d->keylen; in cipher_init()
220 cipher_ctx->sess.key = (void *)key; in cipher_init()
221 cipher_ctx->op = enc ? COP_ENCRYPT : COP_DECRYPT; in cipher_init()
222 cipher_ctx->mode = cipher_d->flags & EVP_CIPH_MODE; in cipher_init()
223 cipher_ctx->blocksize = cipher_d->blocksize; in cipher_init()
225 cipher_ctx->sess.crid = (use_softdrivers == DEVCRYPTO_USE_SOFTWARE) ? in cipher_init()
228 ret = ioctl(cfd, CIOCGSESSION2, &cipher_ctx->sess); in cipher_init()
230 ret = ioctl(cfd, CIOCGSESSION, &cipher_ctx->sess); in cipher_init()
243 struct cipher_ctx *cipher_ctx = in cipher_do_cipher() local
244 (struct cipher_ctx *)EVP_CIPHER_CTX_get_cipher_data(ctx); in cipher_do_cipher()
254 cryp.ses = cipher_ctx->sess.ses; in cipher_do_cipher()
259 cryp.op = cipher_ctx->op; in cipher_do_cipher()
265 switch (cipher_ctx->mode) { in cipher_do_cipher()
291 switch (cipher_ctx->mode) { in cipher_do_cipher()
303 nblocks = (inl + cipher_ctx->blocksize - 1) in cipher_do_cipher()
304 / cipher_ctx->blocksize; in cipher_do_cipher()
324 struct cipher_ctx *cipher_ctx = in ctr_do_cipher() local
325 (struct cipher_ctx *)EVP_CIPHER_CTX_get_cipher_data(ctx); in ctr_do_cipher()
329 while (cipher_ctx->num && inl) { in ctr_do_cipher()
330 (*out++) = *(in++) ^ cipher_ctx->partial[cipher_ctx->num]; in ctr_do_cipher()
332 cipher_ctx->num = (cipher_ctx->num + 1) % cipher_ctx->blocksize; in ctr_do_cipher()
336 if (inl > (unsigned int) cipher_ctx->blocksize) { in ctr_do_cipher()
337 nblocks = inl/cipher_ctx->blocksize; in ctr_do_cipher()
338 len = nblocks * cipher_ctx->blocksize; in ctr_do_cipher()
348 memset(cipher_ctx->partial, 0, cipher_ctx->blocksize); in ctr_do_cipher()
349 if (cipher_do_cipher(ctx, cipher_ctx->partial, cipher_ctx->partial, in ctr_do_cipher()
350 cipher_ctx->blocksize) < 1) in ctr_do_cipher()
353 out[cipher_ctx->num] = in[cipher_ctx->num] in ctr_do_cipher()
354 ^ cipher_ctx->partial[cipher_ctx->num]; in ctr_do_cipher()
355 cipher_ctx->num++; in ctr_do_cipher()
364 struct cipher_ctx *cipher_ctx = in cipher_ctrl() local
365 (struct cipher_ctx *)EVP_CIPHER_CTX_get_cipher_data(ctx); in cipher_ctrl()
367 struct cipher_ctx *to_cipher_ctx; in cipher_ctrl()
372 if (cipher_ctx == NULL) in cipher_ctrl()
376 (struct cipher_ctx *)EVP_CIPHER_CTX_get_cipher_data(to_ctx); in cipher_ctrl()
378 return cipher_init(to_ctx, (void *)cipher_ctx->sess.key, EVP_CIPHER_CTX_iv(ctx), in cipher_ctrl()
379 (cipher_ctx->op == COP_ENCRYPT)); in cipher_ctrl()
382 memset(&cipher_ctx->sess, 0, sizeof(cipher_ctx->sess)); in cipher_ctrl()
394 struct cipher_ctx *cipher_ctx = in cipher_cleanup() local
395 (struct cipher_ctx *)EVP_CIPHER_CTX_get_cipher_data(ctx); in cipher_cleanup()
397 return clean_devcrypto_session(&cipher_ctx->sess); in cipher_cleanup()
498 sizeof(struct cipher_ctx))) { in prepare_cipher_methods()