- unsigned long alignmask = crypto_tfm_alg_alignmask(tfm);
- if (unlikely((unsigned long)out & alignmask)) {
- unsigned int size = crypto_tfm_alg_digestsize(tfm);
- u8 buffer[size + alignmask];
- u8 *dst = (u8 *)ALIGN((unsigned long)buffer, alignmask + 1);
- tfm->__crt_alg->cra_digest.dia_final(tfm, dst);
- memcpy(out, dst, size);
- } else
- tfm->__crt_alg->cra_digest.dia_final(tfm, out);