• Herbert Xu's avatar
    crypto: api - Move type exit function into crypto_tfm · 4a779486
    Herbert Xu authored
    The type exit function needs to undo any allocations done by the type
    init function.  However, the type init function may differ depending
    on the upper-level type of the transform (e.g., a crypto_blkcipher
    instantiated as a crypto_ablkcipher).
    
    So we need to move the exit function out of the lower-level
    structure and into crypto_tfm itself.
    
    As it stands this is a no-op since nobody uses exit functions at
    all.  However, all cases where a lower-level type is instantiated
    as a different upper-level type (such as blkcipher as ablkcipher)
    will be converted such that they allocate the underlying transform
    and use that instead of casting (e.g., crypto_ablkcipher casted
    into crypto_blkcipher).  That will need to use a different exit
    function depending on the upper-level type.
    
    This patch also allows the type init/exit functions to call (or not)
    cra_init/cra_exit instead of always calling them from the top level.
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    4a779486
api.c 10.8 KB