We would like to start prelim codereview for the ZFS Crypto project today. Why prelim rather than final ? There are a couple of issues that still need to be resolved (see the list of Bugster openbugs in development/zfs/kernel with keyword zfs-crypto). The bulk of the code is ready (and has been since around April) for codereview.
## CodeReview for Phase 1 of the ZFS Crypto project * Webrev: http://cr.opensolaris.org/~darrenm/zfs-crypto-gate/webrev/ * Mercurial Workspace: http://src.opensolaris.org/source/xref/zfs-crypto/gate/ ## CodeReview for Phase 1 of the ZFS Crypto project * Webrev: [http://cr.opensolaris.org/~darrenm/zfs-crypto-gate/webrev/](http://cr.opensolaris.org/~darrenm/zfs-crypto-gate/webrev/) * OpenGrok: http://src.opensolaris.org/source/xref/zfs-crypto/gate/ ## Review timing Codereview starts *Friday 5th September 2008 at 1200 US/Pacific* and is scheduled to end on *Friday 3rd October 2008 at 2359 US/Pacific*. Comments recieved after this time will still be considered but unless there are serious in nature (data corruption, security issue, regression from existing ZFS) they may have to wait until post onnv-gate integration to be addressed; however every comment will be looked at and assessed on its own merit. ## How to send comments All source code review comments should be sent to zfs-crypto-discuss at opensolaris.org. If for any reason you feel you need to send comments confidentially then please email me directly (Darren.Moffat at Sun.COM). ## Updates during the review period During the codereview period, and right up until integration into onnv-gate, there will be changes made to address last minute bugs and the to address review comments. The original webrev will be left alone and new ones will be produced as we feel they will be useful. At the end of the review period there will be two new webrev's produced: one against onnv-gate at the time and the other against the webrev at the start of the review period. ## Source overview * $SRC/uts/common/fs/zfs/zio\_crypto.c * $SRC/lib/libzfs/common/libzfs\_crypto.c This is where all the real crypto happens almost everything else calls into functions in these files in kernel and userland respectively. The rest of the files are already existing ZFS functionality. * Major ZFS functional areas with change: * [ZIO](http://cr.opensolaris.org/~darrenm/zfs-crypto-gate/webrev/usr/src/uts/common/fs/zfs/zio.c.frames.html) * [ZIL](http://cr.opensolaris.org/~darrenm/zfs-crypto-gate/webrev/usr/src/uts/common/fs/zfs/zfs_log.c.frames.html) * [ARC](http://cr.opensolaris.org/~darrenm/zfs-crypto-gate/webrev/usr/src/uts/common/fs/zfs/arc.c.frames.html) * [ZFS IOCTL](http://cr.opensolaris.org/~darrenm/zfs-crypto-gate/webrev/usr/src/uts/common/fs/zfs/zfs_ioctl.c.frames.html) * [DMU](http://cr.opensolaris.org/~darrenm/zfs-crypto-gate/webrev/usr/src/uts/common/fs/zfs/dmu_objset.c.frames.html) The changes to the zfs/zpool commands should be purely CLI related and the real work happens in functions in libzfs. ## Non ZFS files in the review webrev Note that there are changes to a few non ZFS files in the gate at this time notably the following: usr/src/cmd/cmd-crypto/decrypt/decrypt.c usr/src/cmd/cmd-crypto/digest/digest.c usr/src/lib/libcryptoutil/common/cryptoutil.h usr/src/lib/libcryptoutil/common/debug.c usr/src/lib/libcryptoutil/common/keyfile.c usr/src/lib/libcryptoutil/common/mapfile-vers usr/src/lib/libcryptoutil/common/tohexstr.c usr/src/common/crypto/modes/ccm.c These are to be reviewed by the crypto framework team and/or are already in the process of being integrated separately. All the changes in those files will be integrated before the ZFS Crypto project. -- Darren J Moffat