Commit 28916d1a authored by Tyler Hicks's avatar Tyler Hicks

eCryptfs: Accept one offset parameter in page offset crypto functions

There is no longer a need to accept different offset values for the
source and destination pages when encrypting/decrypting an extent in an
eCryptfs page. The two offsets can be collapsed into a single parameter.
Signed-off-by: default avatarTyler Hicks <tyhicks@canonical.com>
parent 24d15266
...@@ -39,14 +39,12 @@ ...@@ -39,14 +39,12 @@
static int static int
ecryptfs_decrypt_page_offset(struct ecryptfs_crypt_stat *crypt_stat, ecryptfs_decrypt_page_offset(struct ecryptfs_crypt_stat *crypt_stat,
struct page *dst_page, int dst_offset, struct page *dst_page, struct page *src_page,
struct page *src_page, int src_offset, int size, int offset, int size, unsigned char *iv);
unsigned char *iv);
static int static int
ecryptfs_encrypt_page_offset(struct ecryptfs_crypt_stat *crypt_stat, ecryptfs_encrypt_page_offset(struct ecryptfs_crypt_stat *crypt_stat,
struct page *dst_page, int dst_offset, struct page *dst_page, struct page *src_page,
struct page *src_page, int src_offset, int size, int offset, int size, unsigned char *iv);
unsigned char *iv);
/** /**
* ecryptfs_to_hex * ecryptfs_to_hex
...@@ -450,9 +448,7 @@ static int ecryptfs_encrypt_extent(struct page *enc_extent_page, ...@@ -450,9 +448,7 @@ static int ecryptfs_encrypt_extent(struct page *enc_extent_page,
(unsigned long long)(extent_base + extent_offset), rc); (unsigned long long)(extent_base + extent_offset), rc);
goto out; goto out;
} }
rc = ecryptfs_encrypt_page_offset(crypt_stat, enc_extent_page, rc = ecryptfs_encrypt_page_offset(crypt_stat, enc_extent_page, page,
extent_offset * crypt_stat->extent_size,
page,
extent_offset * crypt_stat->extent_size, extent_offset * crypt_stat->extent_size,
crypt_stat->extent_size, extent_iv); crypt_stat->extent_size, extent_iv);
if (rc < 0) { if (rc < 0) {
...@@ -555,9 +551,7 @@ static int ecryptfs_decrypt_extent(struct page *page, ...@@ -555,9 +551,7 @@ static int ecryptfs_decrypt_extent(struct page *page,
(unsigned long long)(extent_base + extent_offset), rc); (unsigned long long)(extent_base + extent_offset), rc);
goto out; goto out;
} }
rc = ecryptfs_decrypt_page_offset(crypt_stat, page, rc = ecryptfs_decrypt_page_offset(crypt_stat, page, enc_extent_page,
extent_offset * crypt_stat->extent_size,
enc_extent_page,
extent_offset * crypt_stat->extent_size, extent_offset * crypt_stat->extent_size,
crypt_stat->extent_size, extent_iv); crypt_stat->extent_size, extent_iv);
if (rc < 0) { if (rc < 0) {
...@@ -716,9 +710,8 @@ static int decrypt_scatterlist(struct ecryptfs_crypt_stat *crypt_stat, ...@@ -716,9 +710,8 @@ static int decrypt_scatterlist(struct ecryptfs_crypt_stat *crypt_stat,
* ecryptfs_encrypt_page_offset * ecryptfs_encrypt_page_offset
* @crypt_stat: The cryptographic context * @crypt_stat: The cryptographic context
* @dst_page: The page to encrypt into * @dst_page: The page to encrypt into
* @dst_offset: The offset in the page to encrypt into
* @src_page: The page to encrypt from * @src_page: The page to encrypt from
* @src_offset: The offset in the page to encrypt from * @offset: The byte offset into the dst_page and src_page
* @size: The number of bytes to encrypt * @size: The number of bytes to encrypt
* @iv: The initialization vector to use for the encryption * @iv: The initialization vector to use for the encryption
* *
...@@ -726,17 +719,16 @@ static int decrypt_scatterlist(struct ecryptfs_crypt_stat *crypt_stat, ...@@ -726,17 +719,16 @@ static int decrypt_scatterlist(struct ecryptfs_crypt_stat *crypt_stat,
*/ */
static int static int
ecryptfs_encrypt_page_offset(struct ecryptfs_crypt_stat *crypt_stat, ecryptfs_encrypt_page_offset(struct ecryptfs_crypt_stat *crypt_stat,
struct page *dst_page, int dst_offset, struct page *dst_page, struct page *src_page,
struct page *src_page, int src_offset, int size, int offset, int size, unsigned char *iv)
unsigned char *iv)
{ {
struct scatterlist src_sg, dst_sg; struct scatterlist src_sg, dst_sg;
sg_init_table(&src_sg, 1); sg_init_table(&src_sg, 1);
sg_init_table(&dst_sg, 1); sg_init_table(&dst_sg, 1);
sg_set_page(&src_sg, src_page, size, src_offset); sg_set_page(&src_sg, src_page, size, offset);
sg_set_page(&dst_sg, dst_page, size, dst_offset); sg_set_page(&dst_sg, dst_page, size, offset);
return encrypt_scatterlist(crypt_stat, &dst_sg, &src_sg, size, iv); return encrypt_scatterlist(crypt_stat, &dst_sg, &src_sg, size, iv);
} }
...@@ -744,9 +736,8 @@ ecryptfs_encrypt_page_offset(struct ecryptfs_crypt_stat *crypt_stat, ...@@ -744,9 +736,8 @@ ecryptfs_encrypt_page_offset(struct ecryptfs_crypt_stat *crypt_stat,
* ecryptfs_decrypt_page_offset * ecryptfs_decrypt_page_offset
* @crypt_stat: The cryptographic context * @crypt_stat: The cryptographic context
* @dst_page: The page to decrypt into * @dst_page: The page to decrypt into
* @dst_offset: The offset in the page to decrypt into
* @src_page: The page to decrypt from * @src_page: The page to decrypt from
* @src_offset: The offset in the page to decrypt from * @offset: The byte offset into the dst_page and src_page
* @size: The number of bytes to decrypt * @size: The number of bytes to decrypt
* @iv: The initialization vector to use for the decryption * @iv: The initialization vector to use for the decryption
* *
...@@ -754,17 +745,16 @@ ecryptfs_encrypt_page_offset(struct ecryptfs_crypt_stat *crypt_stat, ...@@ -754,17 +745,16 @@ ecryptfs_encrypt_page_offset(struct ecryptfs_crypt_stat *crypt_stat,
*/ */
static int static int
ecryptfs_decrypt_page_offset(struct ecryptfs_crypt_stat *crypt_stat, ecryptfs_decrypt_page_offset(struct ecryptfs_crypt_stat *crypt_stat,
struct page *dst_page, int dst_offset, struct page *dst_page, struct page *src_page,
struct page *src_page, int src_offset, int size, int offset, int size, unsigned char *iv)
unsigned char *iv)
{ {
struct scatterlist src_sg, dst_sg; struct scatterlist src_sg, dst_sg;
sg_init_table(&src_sg, 1); sg_init_table(&src_sg, 1);
sg_set_page(&src_sg, src_page, size, src_offset); sg_set_page(&src_sg, src_page, size, offset);
sg_init_table(&dst_sg, 1); sg_init_table(&dst_sg, 1);
sg_set_page(&dst_sg, dst_page, size, dst_offset); sg_set_page(&dst_sg, dst_page, size, offset);
return decrypt_scatterlist(crypt_stat, &dst_sg, &src_sg, size, iv); return decrypt_scatterlist(crypt_stat, &dst_sg, &src_sg, size, iv);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment