Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d02a9a89 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull crypto fixes from Herbert Xu:
 "This fixes a GCM bug that breaks IPsec and a compile problem in
  ux500."

* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
  crypto: ux500 - add missing comma
  crypto: gcm - fix assumption that assoc has one segment
parents 49b442ca d47cbd5b
Loading
Loading
Loading
Loading
+14 −3
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ struct crypto_rfc4543_ctx {

struct crypto_rfc4543_req_ctx {
	u8 auth_tag[16];
	u8 assocbuf[32];
	struct scatterlist cipher[1];
	struct scatterlist payload[2];
	struct scatterlist assoc[2];
@@ -1133,9 +1134,19 @@ static struct aead_request *crypto_rfc4543_crypt(struct aead_request *req,
	scatterwalk_crypto_chain(payload, dst, vdst == req->iv + 8, 2);
	assoclen += 8 + req->cryptlen - (enc ? 0 : authsize);

	if (req->assoc->length == req->assoclen) {
		sg_init_table(assoc, 2);
		sg_set_page(assoc, sg_page(req->assoc), req->assoc->length,
			    req->assoc->offset);
	} else {
		BUG_ON(req->assoclen > sizeof(rctx->assocbuf));

		scatterwalk_map_and_copy(rctx->assocbuf, req->assoc, 0,
					 req->assoclen, 0);

		sg_init_table(assoc, 2);
		sg_set_buf(assoc, rctx->assocbuf, req->assoclen);
	}
	scatterwalk_crypto_chain(assoc, payload, 0, 2);

	aead_request_set_tfm(subreq, ctx->child);
+1 −1
Original line number Diff line number Diff line
@@ -1750,7 +1750,7 @@ static struct platform_driver cryp_driver = {
	.shutdown = ux500_cryp_shutdown,
	.driver = {
		.owner = THIS_MODULE,
		.name  = "cryp1"
		.name  = "cryp1",
		.pm    = &ux500_cryp_pm,
	}
};