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

Commit 900f1d2c authored by Linus Torvalds's avatar Linus Torvalds
Browse files
parents 5270f290 761e7846
Loading
Loading
Loading
Loading
+9 −3
Original line number Original line Diff line number Diff line
@@ -102,10 +102,15 @@ geode_aes_crypt(struct geode_aes_op *op)
	u32 flags = 0;
	u32 flags = 0;
	unsigned long iflags;
	unsigned long iflags;


	if (op->len == 0 || op->src == op->dst)
	if (op->len == 0)
		return 0;
		return 0;


	if (op->flags & AES_FLAGS_COHERENT)
	/* If the source and destination is the same, then
	 * we need to turn on the coherent flags, otherwise
	 * we don't need to worry
	 */

	if (op->src == op->dst)
		flags |= (AES_CTRL_DCA | AES_CTRL_SCA);
		flags |= (AES_CTRL_DCA | AES_CTRL_SCA);


	if (op->dir == AES_DIR_ENCRYPT)
	if (op->dir == AES_DIR_ENCRYPT)
@@ -120,7 +125,7 @@ geode_aes_crypt(struct geode_aes_op *op)
		_writefield(AES_WRITEIV0_REG, op->iv);
		_writefield(AES_WRITEIV0_REG, op->iv);
	}
	}


	if (op->flags & AES_FLAGS_USRKEY) {
	if (!(op->flags & AES_FLAGS_HIDDENKEY)) {
		flags |= AES_CTRL_WRKEY;
		flags |= AES_CTRL_WRKEY;
		_writefield(AES_WRITEKEY0_REG, op->key);
		_writefield(AES_WRITEKEY0_REG, op->key);
	}
	}
@@ -289,6 +294,7 @@ static struct crypto_alg geode_cbc_alg = {
			.setkey			=	geode_setkey,
			.setkey			=	geode_setkey,
			.encrypt		=	geode_cbc_encrypt,
			.encrypt		=	geode_cbc_encrypt,
			.decrypt		=	geode_cbc_decrypt,
			.decrypt		=	geode_cbc_decrypt,
			.ivsize			=	AES_IV_LENGTH,
		}
		}
	}
	}
};
};
+1 −2
Original line number Original line Diff line number Diff line
@@ -20,8 +20,7 @@
#define AES_DIR_DECRYPT 0
#define AES_DIR_DECRYPT 0
#define AES_DIR_ENCRYPT 1
#define AES_DIR_ENCRYPT 1


#define AES_FLAGS_USRKEY   (1 << 0)
#define AES_FLAGS_HIDDENKEY (1 << 0)
#define AES_FLAGS_COHERENT (1 << 1)


struct geode_aes_op {
struct geode_aes_op {