@@ -9,15 +9,56 @@ set auto_path [concat [list [file dirname [file dirname [info script]]]] $auto_path] package require tls # Helper functions - See common.tcl -proc read_chan {filename args} {set ch [open $filename rb];set bsize [fconfigure $ch -buffersize];set new [{*}$args -chan $ch];set dat "";while {![eof $new]} {append dat [read $new $bsize]};close $new;return $dat} -proc write_chan {filename data args} {set ch [open $filename wb];set new [{*}$args -chan $ch];puts -nonewline $new $data;flush $new;close $new;set ch [open $filename rb];set dat [read $ch];close $ch;return $dat} -proc accumulate {string args} {set cmd [{*}$args -command dcmd];set ::dat "";append ::dat [$cmd update [string range $string 0 20]];append ::dat [$cmd update [string range $string 21 end]];append ::dat [$cmd finalize]} -proc get_file_hex {filename} {set ch [open $filename rb];set data [read $ch];close $ch;return [binary encode hex $data]} -proc get_file_text {filename} {set ch [open $filename r];set data [read $ch];close $ch;return $data} +proc read_chan {filename args} { + set ch [open $filename rb] + set bsize [fconfigure $ch -buffersize] + set new [{*}$args -chan $ch] + set dat "" + while {![eof $new]} { + append dat [read $new $bsize] + } + close $new + return $dat +} + +proc write_chan {filename data args} { + set ch [open $filename wb] + set new [{*}$args -chan $ch] + puts -nonewline $new $data + flush $new + close $new + set ch [open $filename rb] + set dat [read $ch] + close $ch + return $dat +} + +proc accumulate {string args} { + set cmd [{*}$args -command dcmd] + set ::dat "" + append ::dat [$cmd update [string range $string 0 20]] + append ::dat [$cmd update [string range $string 21 end]] + append ::dat [$cmd finalize] +} + +proc get_file_hex {filename} { + set ch [open $filename rb] + set data [read $ch] + close $ch + return [binary encode hex $data] +} + +proc get_file_text {filename} { + set ch [open $filename r] + set data [read $ch] + close $ch + return $data +} + set test_data "Example string for message digest tests.\n" set unencrypted_file "unencrypted_data.dat" set encrypted_file "encrypted_data.dat" set alt_file "result_data.dat"