Lines Matching refs:tfm
287 static int crypto_init_ops(struct crypto_tfm *tfm, u32 type, u32 mask) in crypto_init_ops() argument
289 const struct crypto_type *type_obj = tfm->__crt_alg->cra_type; in crypto_init_ops()
292 return type_obj->init(tfm, type, mask); in crypto_init_ops()
294 switch (crypto_tfm_alg_type(tfm)) { in crypto_init_ops()
296 return crypto_init_cipher_ops(tfm); in crypto_init_ops()
299 return crypto_init_compress_ops(tfm); in crypto_init_ops()
309 static void crypto_exit_ops(struct crypto_tfm *tfm) in crypto_exit_ops() argument
311 const struct crypto_type *type = tfm->__crt_alg->cra_type; in crypto_exit_ops()
314 if (tfm->exit) in crypto_exit_ops()
315 tfm->exit(tfm); in crypto_exit_ops()
319 switch (crypto_tfm_alg_type(tfm)) { in crypto_exit_ops()
321 crypto_exit_cipher_ops(tfm); in crypto_exit_ops()
325 crypto_exit_compress_ops(tfm); in crypto_exit_ops()
369 struct crypto_tfm *tfm = NULL; in __crypto_alloc_tfm() local
373 tfm_size = sizeof(*tfm) + crypto_ctxsize(alg, type, mask); in __crypto_alloc_tfm()
374 tfm = kzalloc(tfm_size, GFP_KERNEL); in __crypto_alloc_tfm()
375 if (tfm == NULL) in __crypto_alloc_tfm()
378 tfm->__crt_alg = alg; in __crypto_alloc_tfm()
380 err = crypto_init_ops(tfm, type, mask); in __crypto_alloc_tfm()
384 if (!tfm->exit && alg->cra_init && (err = alg->cra_init(tfm))) in __crypto_alloc_tfm()
390 crypto_exit_ops(tfm); in __crypto_alloc_tfm()
394 kfree(tfm); in __crypto_alloc_tfm()
396 tfm = ERR_PTR(err); in __crypto_alloc_tfm()
398 return tfm; in __crypto_alloc_tfm()
426 struct crypto_tfm *tfm; in crypto_alloc_base() local
438 tfm = __crypto_alloc_tfm(alg, type, mask); in crypto_alloc_base()
439 if (!IS_ERR(tfm)) in crypto_alloc_base()
440 return tfm; in crypto_alloc_base()
443 err = PTR_ERR(tfm); in crypto_alloc_base()
462 struct crypto_tfm *tfm = NULL; in crypto_create_tfm() local
468 total = tfmsize + sizeof(*tfm) + frontend->extsize(alg); in crypto_create_tfm()
474 tfm = (struct crypto_tfm *)(mem + tfmsize); in crypto_create_tfm()
475 tfm->__crt_alg = alg; in crypto_create_tfm()
477 err = frontend->init_tfm(tfm); in crypto_create_tfm()
481 if (!tfm->exit && alg->cra_init && (err = alg->cra_init(tfm))) in crypto_create_tfm()
487 crypto_exit_ops(tfm); in crypto_create_tfm()
543 void *tfm; in crypto_alloc_tfm() local
555 tfm = crypto_create_tfm(alg, frontend); in crypto_alloc_tfm()
556 if (!IS_ERR(tfm)) in crypto_alloc_tfm()
557 return tfm; in crypto_alloc_tfm()
560 err = PTR_ERR(tfm); in crypto_alloc_tfm()
583 void crypto_destroy_tfm(void *mem, struct crypto_tfm *tfm) in crypto_destroy_tfm() argument
590 alg = tfm->__crt_alg; in crypto_destroy_tfm()
592 if (!tfm->exit && alg->cra_exit) in crypto_destroy_tfm()
593 alg->cra_exit(tfm); in crypto_destroy_tfm()
594 crypto_exit_ops(tfm); in crypto_destroy_tfm()