When you do a write in efs, and the last block's size does not equal a block size, efs will zero pad to fill the reaming space in the block. Since the original filesize is not stored anywhere, the filesize has been lost when it is encrypted. efs cannot tell the difference between trailing zeros that were part of the plaintext and trailing zeros that were added to fill the block. So as of now, say, when you do a readFileSync() there will exists extraneous zeros in the readBuffer if the original plaintext's last block was not block aligned.
When you do a write in efs, and the last block's size does not equal a block size, efs will zero pad to fill the reaming space in the block. Since the original filesize is not stored anywhere, the filesize has been lost when it is encrypted. efs cannot tell the difference between trailing zeros that were part of the plaintext and trailing zeros that were added to fill the block. So as of now, say, when you do a readFileSync() there will exists extraneous zeros in the readBuffer if the original plaintext's last block was not block aligned.