filesystem encryption problem.
Amir Hezarkhani
amir6723 at gmail.com
Sun Jul 12 06:20:49 EDT 2015
hello
I am working on adding a simple encryption to file contents in ext4 driver
(for learning purposes) I added simple XOR encryption to aio_read and
aio_write functions and it worked until I faced this problem:
when I open a file in encrypted filesystem using VIM text editor and when I
try to save it it gives me this error:
>>pointer block id wrong
>>can not find line 1
and it just corrupts the entire file!
this is my aio_write function:
aio_write_enc(struct kiocb *iocb, const struct iovec *iov,
unsigned long nr_segs, loff_t pos)
{
size_t i;
ssize_t ret;
char *data=vmalloc(sizeof(char)*iov->iov_len);
copy_from_user(data,iov->iov_base,iov->iov_len);
for(i=0;i<iov->iov_len;i++)
{
data[i]^=5;
}
struct iovec iov_enc= { .iov_base = iov->iov_base, .iov_len =
iov->iov_len };
copy_to_user(iov_enc.iov_base,data,iov->iov_len);
ret=ext4_file_write(iocb,&iov_enc,nr_segs,pos);
vfree(data);
return ret;
}
this just changes the data and then calls original function.
is there anything wrong with this function? can anyone help me?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20150712/66e6c67a/attachment.html
More information about the Kernelnewbies
mailing list