This is a small example on how to use mk4vfs and actually encrypt the corresponding data on the HDD. This can also be used as an example how to encrypt a metakit database as well. This example requires Trfcrypt, which can now be compiled inside DQkit, but is not due to export regulations.
proc doattach {fh} { package require Trfcrypt fconfigure $fh -translation binary blowfish -attach $fh -key "SomeMK4CryptVFSKey01" -mode cfb -shift 1 -iv "0th3rk3Y" -direction encrypt } proc readEncryptedFS {db file} { set fh [open $file r] doattach $fh mk::file load $db $fh close $fh } proc writeEncryptedFS {db file} { set fh [open $file.tmp[pid] w] doattach $fh mk::file save $db $fh close $fh catch {file delete $file} catch {file rename $file.tmp[pid] $file} } set local [info script] set db [vfs::mk4::Mount "" $local] switch -- [lindex $argv 0] { read { set t [time { readEncryptedFS $db mk.raw for {set i 0} {$i < 1000} {incr i} { set fh [open $local/file$i r] set fc [read $fh] close $fh if {![string is integer $fc]} { error "$fc is not an integer" } } }] puts "Read in $t" } write { set t [time { for {set i 0} {$i < 1000} {incr i} { set fh [open $local/file$i w] puts -nonewline $fh [clock seconds] close $fh } writeEncryptedFS $db mk.raw }] puts "Written in $t" } read { } default { puts "Usage: [info script] read|write" } }