On Friday 15 June 2007 15:00, Josh Fisher wrote: > Kern Sibbald wrote: > > Hello, > > > > I am now working on bug #807, where decrypting files gets signature digest > > errors on each file restored. As far as I can tell, these are *false* error > > messages, most likely due to the fact that Microsoft BackupWrite() does not > > restore exactly the same bits as BackupRead() gave. > > > > Anyway, in looking at the encryption code in detail, which I have not totally > > finished, I come to realize that there are some important problems that need > > fixing. > > > > 1. The code is rather inefficient from several stand points -- see items > > below. > > > > 2. It does a number of malloc() and free()s for each file backed up > > which is something that Bacula does not normally do. Over time, > > I will fix this. > > > > 3. In computing the signature digest, during a restore, it first writes the > > file to disk, then re-reads the whole file computing the digest that it > > compares to the original. This is very inefficient, and I am planning > > to change it in version 2.2.0 to compute the signature digest as it > > reads the data from the SD, and thus to skip reading the file after it > > is written. > > > > Upside -- *much* more efficient; the current signature errors > > will be eliminated. > > > > Downside -- it is probably better to compute the signature from the > > actual file written in case something goes wrong in writing it. However, > > this doesn't work. > > > > > > I don't think there is a downside. If something goes wrong with writing > the file, then the file is corrupt and it might as well get a digest > error on restore as a checksum error, or worse, no error at all.
Yes, good point. Thanks. Kern > > > 4. The current signature digest algorithm (as far as I can tell) is not saved > > on the Volume. The signature digest algorithm is compiled into the code, > > and it is a different algorithm depending on whether or not you have > > only SHA1 or you have SHA2 algorithms available. This is *very* bad. > > It means that if you rebuild your Bacula FD, it may not be able to compute > > a signature digest for a restore in the same way it did for the backup. > > > > 5. While computing the signature digest for a restore as noted above, the > > code is also computing a digest, which is used for the Bacula file hash > > code -- i.e. the old MD5 or SHA1. This means that two digests are > > during the restore, which is unnecessary (as mentioned in the author's > > comments in the files). > > > > 6. There are a good number of places where the error code returned is > > simply ignored. > > > > 7. The code for the most part causes any OpenSSL errors to be lost. > > This is now fixed in version 2.1.14 > > > > I'm proposing the following: > > > > Item 2. Eliminate the unnecessary malloc() calls over time (some gone in > > version 2.1.14 > > > > Item 3. Do the signature digest as the data is received from the SD > > eliminating the need to re-read the file. I hope to do this before version > > 2.2.0 is released. > > > > Items 4-5. Compute only a single digest and use it for the signature record > > as well as the hash code that goes into the catalog. I doubt this can be > > done for version 2.2.0 without delaying it another month, because this > > is not so simple (new streams for the Volume) and unfortunately, not > > 100% upward transparent -- you will need to modify your Dir conf file to > > have the same level of signature protection as today. > > > > Item 6. Fix over time. > > > > Item 7. Already fixed. > > > > If anyone has any comments or objections, particularly on item 3, now is the > > time to speak up. > > > > Best regards, > > > > Kern > > > > ------------------------------------------------------------------------- > > This SF.net email is sponsored by DB2 Express > > Download DB2 Express C - the FREE version of DB2 express and take > > control of your XML. No limits. Just data. Click to get it now. > > http://sourceforge.net/powerbar/db2/ > > _______________________________________________ > > Bacula-users mailing list > > Bacula-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/bacula-users > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > Bacula-devel mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/bacula-devel > ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users