On Thu, 22 Mar 2012, Mandeep Singh Baines wrote: > Mikulas Patocka (mpatocka@xxxxxxxxxx) wrote: > > > > This is improved patch that supports both the old format and the new > > format. I checked that it is interoperable with with the old Google > > userspace tool and with the original Google kernel driver. > > > > Thanks much for doing this:) > > This looks good but would a prepend/append flag be better? It does more than changing prepend/append salt. I changed alignment in the new format so that it doesn't have to use a multiply instruction. In the old format, if digest size is not a power of two, all digests are placed first and the rest of the block is padded with zeros. In the new format, each digest is padded with zeros to a power of two. For example, when using sha1, the old format padding looks like this: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbb bbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccdddddddd dddddddddddddddddddddddddddddddd00000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 ... and the new format padding looks like this: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa000000000000000000000000 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb000000000000000000000000 cccccccccccccccccccccccccccccccccccccccc000000000000000000000000 dddddddddddddddddddddddddddddddddddddddd000000000000000000000000 The version "0" (first argument in the target line) actually means the old style padding and the salt is hashed after the data. The version "1" means new style padding and the salt is hashed before the data. If someone comes with another format, we can use version "2" for it, etc. Mikulas -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel