On Wed, Jul 08, 2015 at 12:29:47PM +0530, Lokesh Vutla wrote: > > >> + if (req->assoclen + req->cryptlen == 0) { > >> + scatterwalk_map_and_copy(ctx->auth_tag, req->dst, 0, authlen, > >> + 1); > >> + return 0; > >> + } > > > > How can this be right? Did you enable the selftest? > Why not? Self tests are passed for this case. > > As per the equation given in GCM spec[1], we can see that > if assoclen and cryptlen is 0, then output of GCM is just E(K, Y0) > where Y0 = IV||(0^31)1 > I have E(K, Y0) calculated in previous step. And copying it > to destination if assoclen and cryptlen is 0. > > Correct me if I am wrong. It should be E(K, Y0) ^ GHASH(0). So unless GHASH(0) == 0, your code doesn't work. Cheers, -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html