On Sunday 03 December 2006 19:46, Landon Fuller wrote: > > On Dec 3, 2006, at 7:26 AM, Kern Sibbald wrote: > > > I'm still targeting it before the end of the year, but it looks > > like one major > > new feature will not be enabled, and that is data encryption. The > > code just > > is not stable (it doesn't pass a simple regression test), and it > > affects the > > Volume data format, and it has known bugs (digest problems), which > > means that > > if any fixes involve changing the data format (as one does that I > > found this > > morning), it will create incompatible Bacula Volumes. This have never > > happened before in the 7 years of Bacula's existence. > > > > The bottom line is that unless I have a definitive solution (i.e. a > > bug fix > > rather than a rewrite) to the remaining encryption problems by next > > Friday, 8 > > December, it will most probably not be a Bacula feature until much > > later (mid > > to late 2007). > > > > One alternative solution is to postpone the release of version 1.40 > > until late > > March 2007. Since in all other respects 1.40 is ready to go it > > would be a > > shame to postpone the release any longer. Obviously as with all > > new releases > > there is the possibility of a few bugs particularly in the new > > features, but > > there should be no show stoppers such as Volume format > > incompatibility that > > are present in the encryption code. > > It would be negligent of me if this feature isn't ready for release; > what are the remaining blockers that you are concerned about?
Well, for example, the digest/signature routines were passing sparse blocks (blocks that do not exist and are read as zeros) to the digest routine. These blocks are not written to the tape, so in doing a restore, the digest/signature will not match because those sparse blocks are never seen. I fixed this particular problem. There were also reports from some users (and if I am not mistaken, you confirmed them or were at least going to look into it) that reported digest/signature problems. There is also a sort of inconsistency in how the new record size is prepended to records written to the Volume. Each record that is passed to update is prepended with the length, but there is no such length prepended to the finalize call, which means that when reading the records back, the last block length for a data record will not point to a block length but into encrypted data (if all goes well, it will point past the last real byte of data). > What is the remaining (potential?) volume format incompatibility? The current algorithm that is implemented in restore.c is not working -- possibly because of the problem with prepended record lengths, or possibly due to the fact that the code decrypts at times in 16 byte chunks, which has nothing to do with the actual records it is getting. In any case, some data is not restored correctly. This means that there is a possibility that the data is not being written to the volume correctly or that we need more data on the volume (i.e. the last length record I mentioned above). As far as I can tell the restore code decodes the same data for some records twice. The above constitues the notes I said I would write up for you. > > -landonf > ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users