filesystem encryption problem.

Freeman Zhang freeman.zhang1992 at gmail.com
Sun Jul 12 10:38:53 EDT 2015


-------- Original Message --------
> 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?
> 
> 
> 
Hi Amir,

I'm not quite sure about what's wrong with your function, but here are
two suggestions I got from the list when I did similar things:

1. wrapfs
2. ecryptfs

I think you should check these two stackable filesystems if you haven't.

Hope this can help a little bit!

Freeman

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
Url : http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20150712/a9929b1d/attachment.bin 


More information about the Kernelnewbies mailing list