Lines Matching refs:tfm
292 static int crypto_init_ops(struct crypto_tfm *tfm, u32 type, u32 mask) in crypto_init_ops() argument
294 const struct crypto_type *type_obj = tfm->__crt_alg->cra_type; in crypto_init_ops()
297 return type_obj->init(tfm, type, mask); in crypto_init_ops()
299 switch (crypto_tfm_alg_type(tfm)) { in crypto_init_ops()
301 return crypto_init_cipher_ops(tfm); in crypto_init_ops()
304 return crypto_init_compress_ops(tfm); in crypto_init_ops()
314 static void crypto_exit_ops(struct crypto_tfm *tfm) in crypto_exit_ops() argument
316 const struct crypto_type *type = tfm->__crt_alg->cra_type; in crypto_exit_ops()
318 if (type && tfm->exit) in crypto_exit_ops()
319 tfm->exit(tfm); in crypto_exit_ops()
358 struct crypto_tfm *tfm = NULL; in __crypto_alloc_tfm() local
362 tfm_size = sizeof(*tfm) + crypto_ctxsize(alg, type, mask); in __crypto_alloc_tfm()
363 tfm = kzalloc(tfm_size, GFP_KERNEL); in __crypto_alloc_tfm()
364 if (tfm == NULL) in __crypto_alloc_tfm()
367 tfm->__crt_alg = alg; in __crypto_alloc_tfm()
369 err = crypto_init_ops(tfm, type, mask); in __crypto_alloc_tfm()
373 if (!tfm->exit && alg->cra_init && (err = alg->cra_init(tfm))) in __crypto_alloc_tfm()
379 crypto_exit_ops(tfm); in __crypto_alloc_tfm()
383 kfree(tfm); in __crypto_alloc_tfm()
385 tfm = ERR_PTR(err); in __crypto_alloc_tfm()
387 return tfm; in __crypto_alloc_tfm()
415 struct crypto_tfm *tfm; in crypto_alloc_base() local
427 tfm = __crypto_alloc_tfm(alg, type, mask); in crypto_alloc_base()
428 if (!IS_ERR(tfm)) in crypto_alloc_base()
429 return tfm; in crypto_alloc_base()
432 err = PTR_ERR(tfm); in crypto_alloc_base()
451 struct crypto_tfm *tfm = NULL; in crypto_create_tfm() local
457 total = tfmsize + sizeof(*tfm) + frontend->extsize(alg); in crypto_create_tfm()
463 tfm = (struct crypto_tfm *)(mem + tfmsize); in crypto_create_tfm()
464 tfm->__crt_alg = alg; in crypto_create_tfm()
466 err = frontend->init_tfm(tfm); in crypto_create_tfm()
470 if (!tfm->exit && alg->cra_init && (err = alg->cra_init(tfm))) in crypto_create_tfm()
476 crypto_exit_ops(tfm); in crypto_create_tfm()
526 void *tfm; in crypto_alloc_tfm() local
538 tfm = crypto_create_tfm(alg, frontend); in crypto_alloc_tfm()
539 if (!IS_ERR(tfm)) in crypto_alloc_tfm()
540 return tfm; in crypto_alloc_tfm()
543 err = PTR_ERR(tfm); in crypto_alloc_tfm()
566 void crypto_destroy_tfm(void *mem, struct crypto_tfm *tfm) in crypto_destroy_tfm() argument
573 alg = tfm->__crt_alg; in crypto_destroy_tfm()
575 if (!tfm->exit && alg->cra_exit) in crypto_destroy_tfm()
576 alg->cra_exit(tfm); in crypto_destroy_tfm()
577 crypto_exit_ops(tfm); in crypto_destroy_tfm()