• Dave Watson's avatar
    crypto: aesni - Update aesni-intel_glue to use scatter/gather · e8455207
    Dave Watson authored
    Add gcmaes_crypt_by_sg routine, that will do scatter/gather
    by sg. Either src or dst may contain multiple buffers, so
    iterate over both at the same time if they are different.
    If the input is the same as the output, iterate only over one.
    
    Currently both the AAD and TAG must be linear, so copy them out
    with scatterlist_map_and_copy.  If first buffer contains the
    entire AAD, we can optimize and not copy.   Since the AAD
    can be any size, if copied it must be on the heap.  TAG can
    be on the stack since it is always < 16 bytes.
    
    Only the SSE routines are updated so far, so leave the previous
    gcmaes_en/decrypt routines, and branch to the sg ones if the
    keysize is inappropriate for avx, or we are SSE only.
    Signed-off-by: default avatarDave Watson <davejwatson@fb.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    e8455207
aesni-intel_glue.c 44.1 KB