From mboxrd@z Thu Jan 1 00:00:00 1970 From: freeman.zhang1992@gmail.com (Freeman Zhang) Date: Sun, 12 Jul 2015 22:38:53 +0800 Subject: filesystem encryption problem. In-Reply-To: References: Message-ID: <55A27BFD.2010009@gmail.com> To: kernelnewbies@lists.kernelnewbies.org List-Id: kernelnewbies.lists.kernelnewbies.org -------- 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;iiov_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