Lines Matching refs:cipher_ctx
59 struct cipher_ctx { struct
152 struct cipher_ctx *cipher_ctx = in cipher_init() local
153 (struct cipher_ctx *)EVP_CIPHER_CTX_get_cipher_data(ctx); in cipher_init()
158 if (cipher_ctx->sess.ses != 0 && in cipher_init()
159 clean_devcrypto_session(&cipher_ctx->sess) == 0) in cipher_init()
162 cipher_ctx->sess.cipher = cipher_d->devcryptoid; in cipher_init()
163 cipher_ctx->sess.keylen = cipher_d->keylen; in cipher_init()
164 cipher_ctx->sess.key = (void *)key; in cipher_init()
165 cipher_ctx->op = enc ? COP_ENCRYPT : COP_DECRYPT; in cipher_init()
166 cipher_ctx->mode = cipher_d->flags & EVP_CIPH_MODE; in cipher_init()
167 cipher_ctx->blocksize = cipher_d->blocksize; in cipher_init()
168 if (ioctl(cfd, CIOCGSESSION, &cipher_ctx->sess) < 0) { in cipher_init()
179 struct cipher_ctx *cipher_ctx = in cipher_do_cipher() local
180 (struct cipher_ctx *)EVP_CIPHER_CTX_get_cipher_data(ctx); in cipher_do_cipher()
190 cryp.ses = cipher_ctx->sess.ses; in cipher_do_cipher()
195 cryp.op = cipher_ctx->op; in cipher_do_cipher()
201 switch (cipher_ctx->mode) { in cipher_do_cipher()
227 switch (cipher_ctx->mode) { in cipher_do_cipher()
239 nblocks = (inl + cipher_ctx->blocksize - 1) in cipher_do_cipher()
240 / cipher_ctx->blocksize; in cipher_do_cipher()
260 struct cipher_ctx *cipher_ctx = in ctr_do_cipher() local
261 (struct cipher_ctx *)EVP_CIPHER_CTX_get_cipher_data(ctx); in ctr_do_cipher()
265 while (cipher_ctx->num && inl) { in ctr_do_cipher()
266 (*out++) = *(in++) ^ cipher_ctx->partial[cipher_ctx->num]; in ctr_do_cipher()
268 cipher_ctx->num = (cipher_ctx->num + 1) % cipher_ctx->blocksize; in ctr_do_cipher()
272 if (inl > (unsigned int) cipher_ctx->blocksize) { in ctr_do_cipher()
273 nblocks = inl/cipher_ctx->blocksize; in ctr_do_cipher()
274 len = nblocks * cipher_ctx->blocksize; in ctr_do_cipher()
284 memset(cipher_ctx->partial, 0, cipher_ctx->blocksize); in ctr_do_cipher()
285 if (cipher_do_cipher(ctx, cipher_ctx->partial, cipher_ctx->partial, in ctr_do_cipher()
286 cipher_ctx->blocksize) < 1) in ctr_do_cipher()
289 out[cipher_ctx->num] = in[cipher_ctx->num] in ctr_do_cipher()
290 ^ cipher_ctx->partial[cipher_ctx->num]; in ctr_do_cipher()
291 cipher_ctx->num++; in ctr_do_cipher()
300 struct cipher_ctx *cipher_ctx = in cipher_ctrl() local
301 (struct cipher_ctx *)EVP_CIPHER_CTX_get_cipher_data(ctx); in cipher_ctrl()
303 struct cipher_ctx *to_cipher_ctx; in cipher_ctrl()
307 if (cipher_ctx == NULL) in cipher_ctrl()
311 (struct cipher_ctx *)EVP_CIPHER_CTX_get_cipher_data(to_ctx); in cipher_ctrl()
313 return cipher_init(to_ctx, cipher_ctx->sess.key, EVP_CIPHER_CTX_iv(ctx), in cipher_ctrl()
314 (cipher_ctx->op == COP_ENCRYPT)); in cipher_ctrl()
317 memset(&cipher_ctx->sess, 0, sizeof(cipher_ctx->sess)); in cipher_ctrl()
329 struct cipher_ctx *cipher_ctx = in cipher_cleanup() local
330 (struct cipher_ctx *)EVP_CIPHER_CTX_get_cipher_data(ctx); in cipher_cleanup()
332 return clean_devcrypto_session(&cipher_ctx->sess); in cipher_cleanup()
389 sizeof(struct cipher_ctx))) { in prepare_cipher_methods()