Artifact
0f4562d9a7305017ed01f17e0c954800ab275ddb53af4a168412be709ad10300:
0000: 23 20 41 75 74 6f 20 67 65 6e 65 72 61 74 65 64 # Auto generated
0010: 20 74 65 73 74 20 63 61 73 65 73 20 66 6f 72 20 test cases for
0020: 65 6e 63 72 79 70 74 2e 63 73 76 0a 0a 23 20 4c encrypt.csv..# L
0030: 6f 61 64 20 54 63 6c 20 54 65 73 74 20 70 61 63 oad Tcl Test pac
0040: 6b 61 67 65 0a 69 66 20 7b 5b 6c 73 65 61 72 63 kage.if {[lsearc
0050: 68 20 5b 6e 61 6d 65 73 70 61 63 65 20 63 68 69 h [namespace chi
0060: 6c 64 72 65 6e 5d 20 3a 3a 74 63 6c 74 65 73 74 ldren] ::tcltest
0070: 5d 20 3d 3d 20 2d 31 7d 20 7b 0a 09 70 61 63 6b ] == -1} {..pack
0080: 61 67 65 20 72 65 71 75 69 72 65 20 74 63 6c 74 age require tclt
0090: 65 73 74 0a 09 6e 61 6d 65 73 70 61 63 65 20 69 est..namespace i
00a0: 6d 70 6f 72 74 20 3a 3a 74 63 6c 74 65 73 74 3a mport ::tcltest:
00b0: 3a 2a 0a 7d 0a 0a 73 65 74 20 61 75 74 6f 5f 70 :*.}..set auto_p
00c0: 61 74 68 20 5b 63 6f 6e 63 61 74 20 5b 6c 69 73 ath [concat [lis
00d0: 74 20 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 t [file dirname
00e0: 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 5b 69 [file dirname [i
00f0: 6e 66 6f 20 73 63 72 69 70 74 5d 5d 5d 5d 20 24 nfo script]]]] $
0100: 61 75 74 6f 5f 70 61 74 68 5d 0a 0a 70 61 63 6b auto_path]..pack
0110: 61 67 65 20 72 65 71 75 69 72 65 20 74 6c 73 0a age require tls.
0120: 0a 23 20 48 65 6c 70 65 72 20 66 75 6e 63 74 69 .# Helper functi
0130: 6f 6e 73 20 2d 20 53 65 65 20 63 6f 6d 6d 6f 6e ons - See common
0140: 2e 74 63 6c 0a 70 72 6f 63 20 72 65 61 64 5f 63 .tcl.proc read_c
0150: 68 61 6e 20 7b 66 69 6c 65 6e 61 6d 65 20 61 72 han {filename ar
0160: 67 73 7d 20 7b 0a 20 20 20 20 73 65 74 20 63 68 gs} {. set ch
0170: 20 5b 6f 70 65 6e 20 24 66 69 6c 65 6e 61 6d 65 [open $filename
0180: 20 72 62 5d 0a 20 20 20 20 73 65 74 20 62 73 69 rb]. set bsi
0190: 7a 65 20 5b 66 63 6f 6e 66 69 67 75 72 65 20 24 ze [fconfigure $
01a0: 63 68 20 2d 62 75 66 66 65 72 73 69 7a 65 5d 0a ch -buffersize].
01b0: 20 20 20 20 73 65 74 20 6e 65 77 20 5b 7b 2a 7d set new [{*}
01c0: 24 61 72 67 73 20 2d 63 68 61 6e 20 24 63 68 5d $args -chan $ch]
01d0: 0a 20 20 20 20 73 65 74 20 64 61 74 20 22 22 0a . set dat "".
01e0: 20 20 20 20 77 68 69 6c 65 20 7b 21 5b 65 6f 66 while {![eof
01f0: 20 24 6e 65 77 5d 7d 20 7b 0a 20 20 20 20 20 20 $new]} {.
0200: 20 20 61 70 70 65 6e 64 20 64 61 74 20 5b 72 65 append dat [re
0210: 61 64 20 24 6e 65 77 20 24 62 73 69 7a 65 5d 0a ad $new $bsize].
0220: 20 20 20 20 7d 0a 20 20 20 20 63 6c 6f 73 65 20 }. close
0230: 24 6e 65 77 0a 20 20 20 20 72 65 74 75 72 6e 20 $new. return
0240: 24 64 61 74 0a 7d 0a 0a 70 72 6f 63 20 77 72 69 $dat.}..proc wri
0250: 74 65 5f 63 68 61 6e 20 7b 66 69 6c 65 6e 61 6d te_chan {filenam
0260: 65 20 64 61 74 61 20 61 72 67 73 7d 20 7b 0a 20 e data args} {.
0270: 20 20 20 73 65 74 20 63 68 20 5b 6f 70 65 6e 20 set ch [open
0280: 24 66 69 6c 65 6e 61 6d 65 20 77 62 5d 0a 20 20 $filename wb].
0290: 20 20 73 65 74 20 6e 65 77 20 5b 7b 2a 7d 24 61 set new [{*}$a
02a0: 72 67 73 20 2d 63 68 61 6e 20 24 63 68 5d 0a 20 rgs -chan $ch].
02b0: 20 20 20 70 75 74 73 20 2d 6e 6f 6e 65 77 6c 69 puts -nonewli
02c0: 6e 65 20 24 6e 65 77 20 24 64 61 74 61 0a 20 20 ne $new $data.
02d0: 20 20 66 6c 75 73 68 20 24 6e 65 77 0a 20 20 20 flush $new.
02e0: 20 63 6c 6f 73 65 20 24 6e 65 77 0a 20 20 20 20 close $new.
02f0: 73 65 74 20 63 68 20 5b 6f 70 65 6e 20 24 66 69 set ch [open $fi
0300: 6c 65 6e 61 6d 65 20 72 62 5d 0a 20 20 20 20 73 lename rb]. s
0310: 65 74 20 64 61 74 20 5b 72 65 61 64 20 24 63 68 et dat [read $ch
0320: 5d 0a 20 20 20 20 63 6c 6f 73 65 20 24 63 68 0a ]. close $ch.
0330: 20 20 20 20 72 65 74 75 72 6e 20 24 64 61 74 0a return $dat.
0340: 7d 0a 0a 70 72 6f 63 20 61 63 63 75 6d 75 6c 61 }..proc accumula
0350: 74 65 20 7b 73 74 72 69 6e 67 20 61 72 67 73 7d te {string args}
0360: 20 7b 0a 20 20 20 20 73 65 74 20 63 6d 64 20 5b {. set cmd [
0370: 7b 2a 7d 24 61 72 67 73 20 2d 63 6f 6d 6d 61 6e {*}$args -comman
0380: 64 20 64 63 6d 64 5d 0a 20 20 20 20 73 65 74 20 d dcmd]. set
0390: 3a 3a 64 61 74 20 22 22 0a 20 20 20 20 61 70 70 ::dat "". app
03a0: 65 6e 64 20 3a 3a 64 61 74 20 5b 24 63 6d 64 20 end ::dat [$cmd
03b0: 75 70 64 61 74 65 20 5b 73 74 72 69 6e 67 20 72 update [string r
03c0: 61 6e 67 65 20 24 73 74 72 69 6e 67 20 30 20 32 ange $string 0 2
03d0: 30 5d 5d 0a 20 20 20 20 61 70 70 65 6e 64 20 3a 0]]. append :
03e0: 3a 64 61 74 20 5b 24 63 6d 64 20 75 70 64 61 74 :dat [$cmd updat
03f0: 65 20 5b 73 74 72 69 6e 67 20 72 61 6e 67 65 20 e [string range
0400: 24 73 74 72 69 6e 67 20 32 31 20 65 6e 64 5d 5d $string 21 end]]
0410: 0a 20 20 20 20 61 70 70 65 6e 64 20 3a 3a 64 61 . append ::da
0420: 74 20 5b 24 63 6d 64 20 66 69 6e 61 6c 69 7a 65 t [$cmd finalize
0430: 5d 0a 7d 0a 0a 70 72 6f 63 20 67 65 74 5f 66 69 ].}..proc get_fi
0440: 6c 65 5f 68 65 78 20 7b 66 69 6c 65 6e 61 6d 65 le_hex {filename
0450: 7d 20 7b 0a 20 20 20 20 73 65 74 20 63 68 20 5b } {. set ch [
0460: 6f 70 65 6e 20 24 66 69 6c 65 6e 61 6d 65 20 72 open $filename r
0470: 62 5d 0a 20 20 20 20 73 65 74 20 64 61 74 61 20 b]. set data
0480: 5b 72 65 61 64 20 24 63 68 5d 0a 20 20 20 20 63 [read $ch]. c
0490: 6c 6f 73 65 20 24 63 68 0a 20 20 20 20 72 65 74 lose $ch. ret
04a0: 75 72 6e 20 5b 62 69 6e 61 72 79 20 65 6e 63 6f urn [binary enco
04b0: 64 65 20 68 65 78 20 24 64 61 74 61 5d 0a 7d 0a de hex $data].}.
04c0: 0a 70 72 6f 63 20 67 65 74 5f 66 69 6c 65 5f 74 .proc get_file_t
04d0: 65 78 74 20 7b 66 69 6c 65 6e 61 6d 65 7d 20 7b ext {filename} {
04e0: 0a 20 20 20 20 73 65 74 20 63 68 20 5b 6f 70 65 . set ch [ope
04f0: 6e 20 24 66 69 6c 65 6e 61 6d 65 20 72 5d 0a 20 n $filename r].
0500: 20 20 20 73 65 74 20 64 61 74 61 20 5b 72 65 61 set data [rea
0510: 64 20 24 63 68 5d 0a 20 20 20 20 63 6c 6f 73 65 d $ch]. close
0520: 20 24 63 68 0a 20 20 20 20 72 65 74 75 72 6e 20 $ch. return
0530: 24 64 61 74 61 0a 7d 0a 0a 0a 73 65 74 20 74 65 $data.}...set te
0540: 73 74 5f 64 61 74 61 20 22 45 78 61 6d 70 6c 65 st_data "Example
0550: 20 73 74 72 69 6e 67 20 66 6f 72 20 6d 65 73 73 string for mess
0560: 61 67 65 20 64 69 67 65 73 74 20 74 65 73 74 73 age digest tests
0570: 2e 5c 6e 22 0a 73 65 74 20 75 6e 65 6e 63 72 79 .\n".set unencry
0580: 70 74 65 64 5f 66 69 6c 65 20 22 75 6e 65 6e 63 pted_file "unenc
0590: 72 79 70 74 65 64 5f 64 61 74 61 2e 64 61 74 22 rypted_data.dat"
05a0: 0a 73 65 74 20 65 6e 63 72 79 70 74 65 64 5f 66 .set encrypted_f
05b0: 69 6c 65 20 22 65 6e 63 72 79 70 74 65 64 5f 64 ile "encrypted_d
05c0: 61 74 61 2e 64 61 74 22 0a 73 65 74 20 61 6c 74 ata.dat".set alt
05d0: 5f 66 69 6c 65 20 22 72 65 73 75 6c 74 5f 64 61 _file "result_da
05e0: 74 61 2e 64 61 74 22 0a 73 65 74 20 74 65 73 74 ta.dat".set test
05f0: 5f 6b 65 79 20 22 45 78 61 6d 70 6c 65 20 6b 65 _key "Example ke
0600: 79 22 0a 73 65 74 20 74 65 73 74 5f 69 76 20 22 y".set test_iv "
0610: 45 78 61 6d 70 6c 65 20 69 76 22 0a 3a 3a 74 63 Example iv".::tc
0620: 6c 74 65 73 74 3a 3a 6d 61 6b 65 46 69 6c 65 20 ltest::makeFile
0630: 24 74 65 73 74 5f 64 61 74 61 20 24 75 6e 65 6e $test_data $unen
0640: 63 72 79 70 74 65 64 5f 66 69 6c 65 0a 0a 23 20 crypted_file..#
0650: 54 65 73 74 20 65 6e 63 72 79 70 74 20 64 61 74 Test encrypt dat
0660: 61 0a 73 65 74 20 63 69 70 68 65 72 20 61 65 73 a.set cipher aes
0670: 2d 31 32 38 2d 63 62 63 0a 73 65 74 20 68 65 78 -128-cbc.set hex
0680: 5f 73 74 72 69 6e 67 20 22 33 63 65 61 30 33 34 _string "3cea034
0690: 33 39 38 64 65 36 34 35 30 37 61 62 62 63 37 62 398de64507abbc7b
06a0: 63 66 36 61 63 62 61 35 35 63 37 30 31 31 31 30 cf6acba55c701110
06b0: 30 63 39 30 31 35 63 32 32 62 33 63 39 63 33 33 0c9015c22b3c9c33
06c0: 31 64 31 38 34 37 39 66 65 64 35 65 35 34 32 63 1d18479fed5e542c
06d0: 65 30 32 61 33 62 38 39 61 30 66 37 35 30 64 61 e02a3b89a0f750da
06e0: 66 38 65 32 61 34 39 34 65 22 0a 0a 0a 74 65 73 f8e2a494e"...tes
06f0: 74 20 45 6e 63 72 79 70 74 5f 44 65 63 72 79 70 t Encrypt_Decryp
0700: 74 5f 44 61 74 61 2d 31 2e 31 20 7b 45 6e 63 72 t_Data-1.1 {Encr
0710: 79 70 74 20 61 65 73 2d 31 33 38 2d 63 62 63 7d ypt aes-138-cbc}
0720: 20 2d 62 6f 64 79 20 7b 0a 09 62 69 6e 61 72 79 -body {..binary
0730: 20 65 6e 63 6f 64 65 20 68 65 78 20 5b 73 65 74 encode hex [set
0740: 20 64 61 74 61 20 5b 74 6c 73 3a 3a 65 6e 63 72 data [tls::encr
0750: 79 70 74 20 2d 63 69 70 68 65 72 20 24 63 69 70 ypt -cipher $cip
0760: 68 65 72 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b her -key $test_k
0770: 65 79 20 2d 69 76 20 24 74 65 73 74 5f 69 76 20 ey -iv $test_iv
0780: 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 74 61 -data $test_data
0790: 5d 5d 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 ]]. } -result
07a0: 20 24 68 65 78 5f 73 74 72 69 6e 67 0a 0a 74 65 $hex_string..te
07b0: 73 74 20 45 6e 63 72 79 70 74 5f 44 65 63 72 79 st Encrypt_Decry
07c0: 70 74 5f 44 61 74 61 2d 31 2e 32 20 7b 44 65 63 pt_Data-1.2 {Dec
07d0: 72 79 70 74 20 61 65 73 2d 31 32 38 2d 63 62 63 rypt aes-128-cbc
07e0: 7d 20 2d 62 6f 64 79 20 7b 0a 09 74 6c 73 3a 3a } -body {..tls::
07f0: 64 65 63 72 79 70 74 20 2d 63 69 70 68 65 72 20 decrypt -cipher
0800: 24 63 69 70 68 65 72 20 2d 6b 65 79 20 24 74 65 $cipher -key $te
0810: 73 74 5f 6b 65 79 20 2d 69 76 20 24 74 65 73 74 st_key -iv $test
0820: 5f 69 76 20 2d 64 61 74 61 20 24 64 61 74 61 0a _iv -data $data.
0830: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 24 74 } -result $t
0840: 65 73 74 5f 64 61 74 61 0a 0a 23 20 54 65 73 74 est_data..# Test
0850: 20 65 6e 63 72 79 70 74 20 66 69 6c 65 0a 0a 0a encrypt file...
0860: 74 65 73 74 20 45 6e 63 72 79 70 74 5f 44 65 63 test Encrypt_Dec
0870: 72 79 70 74 5f 46 69 6c 65 2d 32 2e 31 20 7b 45 rypt_File-2.1 {E
0880: 6e 63 72 79 70 74 20 61 65 73 2d 31 33 38 2d 63 ncrypt aes-138-c
0890: 62 63 7d 20 2d 62 6f 64 79 20 7b 0a 09 74 6c 73 bc} -body {..tls
08a0: 3a 3a 65 6e 63 72 79 70 74 20 2d 63 69 70 68 65 ::encrypt -ciphe
08b0: 72 20 24 63 69 70 68 65 72 20 2d 6b 65 79 20 24 r $cipher -key $
08c0: 74 65 73 74 5f 6b 65 79 20 2d 69 76 20 24 74 65 test_key -iv $te
08d0: 73 74 5f 69 76 20 2d 69 6e 66 69 6c 65 20 24 75 st_iv -infile $u
08e0: 6e 65 6e 63 72 79 70 74 65 64 5f 66 69 6c 65 20 nencrypted_file
08f0: 2d 6f 75 74 66 69 6c 65 20 24 65 6e 63 72 79 70 -outfile $encryp
0900: 74 65 64 5f 66 69 6c 65 0a 09 67 65 74 5f 66 69 ted_file..get_fi
0910: 6c 65 5f 68 65 78 20 24 65 6e 63 72 79 70 74 65 le_hex $encrypte
0920: 64 5f 66 69 6c 65 0a 20 20 20 20 7d 20 2d 72 65 d_file. } -re
0930: 73 75 6c 74 20 24 68 65 78 5f 73 74 72 69 6e 67 sult $hex_string
0940: 0a 0a 74 65 73 74 20 45 6e 63 72 79 70 74 5f 44 ..test Encrypt_D
0950: 65 63 72 79 70 74 5f 46 69 6c 65 2d 32 2e 32 20 ecrypt_File-2.2
0960: 7b 44 65 63 72 79 70 74 20 61 65 73 2d 31 32 38 {Decrypt aes-128
0970: 2d 63 62 63 7d 20 2d 62 6f 64 79 20 7b 0a 09 74 -cbc} -body {..t
0980: 6c 73 3a 3a 64 65 63 72 79 70 74 20 2d 63 69 70 ls::decrypt -cip
0990: 68 65 72 20 24 63 69 70 68 65 72 20 2d 6b 65 79 her $cipher -key
09a0: 20 24 74 65 73 74 5f 6b 65 79 20 2d 69 76 20 24 $test_key -iv $
09b0: 74 65 73 74 5f 69 76 20 2d 69 6e 66 69 6c 65 20 test_iv -infile
09c0: 24 65 6e 63 72 79 70 74 65 64 5f 66 69 6c 65 20 $encrypted_file
09d0: 2d 6f 75 74 66 69 6c 65 20 24 61 6c 74 5f 66 69 -outfile $alt_fi
09e0: 6c 65 0a 09 67 65 74 5f 66 69 6c 65 5f 74 65 78 le..get_file_tex
09f0: 74 20 24 61 6c 74 5f 66 69 6c 65 0a 20 20 20 20 t $alt_file.
0a00: 7d 20 2d 72 65 73 75 6c 74 20 24 74 65 73 74 5f } -result $test_
0a10: 64 61 74 61 0a 0a 23 20 54 65 73 74 20 65 6e 63 data..# Test enc
0a20: 72 79 70 74 20 75 73 69 6e 67 20 6f 62 6a 65 63 rypt using objec
0a30: 74 20 63 6f 6d 6d 61 6e 64 0a 0a 0a 74 65 73 74 t command...test
0a40: 20 45 6e 63 72 79 70 74 5f 44 65 63 72 79 70 74 Encrypt_Decrypt
0a50: 5f 43 6f 6d 6d 61 6e 64 2d 33 2e 31 20 7b 45 6e _Command-3.1 {En
0a60: 63 72 79 70 74 20 61 65 73 2d 31 33 38 2d 63 62 crypt aes-138-cb
0a70: 63 7d 20 2d 62 6f 64 79 20 7b 0a 09 61 63 63 75 c} -body {..accu
0a80: 6d 75 6c 61 74 65 20 24 74 65 73 74 5f 64 61 74 mulate $test_dat
0a90: 61 20 74 6c 73 3a 3a 65 6e 63 72 79 70 74 20 2d a tls::encrypt -
0aa0: 63 69 70 68 65 72 20 24 63 69 70 68 65 72 20 2d cipher $cipher -
0ab0: 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 20 2d 69 key $test_key -i
0ac0: 76 20 24 74 65 73 74 5f 69 76 0a 09 62 69 6e 61 v $test_iv..bina
0ad0: 72 79 20 65 6e 63 6f 64 65 20 68 65 78 20 24 3a ry encode hex $:
0ae0: 3a 64 61 74 0a 20 20 20 20 7d 20 2d 72 65 73 75 :dat. } -resu
0af0: 6c 74 20 24 68 65 78 5f 73 74 72 69 6e 67 0a 0a lt $hex_string..
0b00: 74 65 73 74 20 45 6e 63 72 79 70 74 5f 44 65 63 test Encrypt_Dec
0b10: 72 79 70 74 5f 43 6f 6d 6d 61 6e 64 2d 33 2e 32 rypt_Command-3.2
0b20: 20 7b 44 65 63 72 79 70 74 20 61 65 73 2d 31 32 {Decrypt aes-12
0b30: 38 2d 63 62 63 7d 20 2d 62 6f 64 79 20 7b 0a 09 8-cbc} -body {..
0b40: 61 63 63 75 6d 75 6c 61 74 65 20 24 3a 3a 64 61 accumulate $::da
0b50: 74 20 74 6c 73 3a 3a 64 65 63 72 79 70 74 20 2d t tls::decrypt -
0b60: 63 69 70 68 65 72 20 24 63 69 70 68 65 72 20 2d cipher $cipher -
0b70: 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 20 2d 69 key $test_key -i
0b80: 76 20 24 74 65 73 74 5f 69 76 0a 09 73 65 74 20 v $test_iv..set
0b90: 3a 3a 64 61 74 0a 20 20 20 20 7d 20 2d 72 65 73 ::dat. } -res
0ba0: 75 6c 74 20 24 74 65 73 74 5f 64 61 74 61 0a 0a ult $test_data..
0bb0: 23 20 54 65 73 74 20 65 6e 63 72 79 70 74 20 75 # Test encrypt u
0bc0: 73 69 6e 67 20 72 65 61 64 20 63 68 61 6e 6e 65 sing read channe
0bd0: 6c 0a 0a 0a 74 65 73 74 20 45 6e 63 72 79 70 74 l...test Encrypt
0be0: 5f 44 65 63 72 79 70 74 5f 43 68 61 6e 6e 65 6c _Decrypt_Channel
0bf0: 5f 52 65 61 64 2d 34 2e 31 20 7b 45 6e 63 72 79 _Read-4.1 {Encry
0c00: 70 74 20 61 65 73 2d 31 33 38 2d 63 62 63 7d 20 pt aes-138-cbc}
0c10: 2d 62 6f 64 79 20 7b 0a 09 62 69 6e 61 72 79 20 -body {..binary
0c20: 65 6e 63 6f 64 65 20 68 65 78 20 5b 72 65 61 64 encode hex [read
0c30: 5f 63 68 61 6e 20 24 75 6e 65 6e 63 72 79 70 74 _chan $unencrypt
0c40: 65 64 5f 66 69 6c 65 20 74 6c 73 3a 3a 65 6e 63 ed_file tls::enc
0c50: 72 79 70 74 20 2d 63 69 70 68 65 72 20 24 63 69 rypt -cipher $ci
0c60: 70 68 65 72 20 2d 6b 65 79 20 24 74 65 73 74 5f pher -key $test_
0c70: 6b 65 79 20 2d 69 76 20 24 74 65 73 74 5f 69 76 key -iv $test_iv
0c80: 5d 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 ]. } -result
0c90: 24 68 65 78 5f 73 74 72 69 6e 67 0a 0a 74 65 73 $hex_string..tes
0ca0: 74 20 45 6e 63 72 79 70 74 5f 44 65 63 72 79 70 t Encrypt_Decryp
0cb0: 74 5f 43 68 61 6e 6e 65 6c 5f 52 65 61 64 2d 34 t_Channel_Read-4
0cc0: 2e 32 20 7b 44 65 63 72 79 70 74 20 61 65 73 2d .2 {Decrypt aes-
0cd0: 31 33 38 2d 63 62 63 7d 20 2d 62 6f 64 79 20 7b 138-cbc} -body {
0ce0: 0a 09 72 65 61 64 5f 63 68 61 6e 20 24 65 6e 63 ..read_chan $enc
0cf0: 72 79 70 74 65 64 5f 66 69 6c 65 20 74 6c 73 3a rypted_file tls:
0d00: 3a 64 65 63 72 79 70 74 20 2d 63 69 70 68 65 72 :decrypt -cipher
0d10: 20 24 63 69 70 68 65 72 20 2d 6b 65 79 20 24 74 $cipher -key $t
0d20: 65 73 74 5f 6b 65 79 20 2d 69 76 20 24 74 65 73 est_key -iv $tes
0d30: 74 5f 69 76 0a 20 20 20 20 7d 20 2d 72 65 73 75 t_iv. } -resu
0d40: 6c 74 20 24 74 65 73 74 5f 64 61 74 61 0a 0a 23 lt $test_data..#
0d50: 20 54 65 73 74 20 65 6e 63 72 79 70 74 20 75 73 Test encrypt us
0d60: 69 6e 67 20 77 72 69 74 65 20 63 68 61 6e 6e 65 ing write channe
0d70: 6c 0a 0a 0a 74 65 73 74 20 45 6e 63 72 79 70 74 l...test Encrypt
0d80: 5f 44 65 63 72 79 70 74 5f 43 68 61 6e 6e 65 6c _Decrypt_Channel
0d90: 5f 57 72 69 74 65 2d 35 2e 31 20 7b 45 6e 63 72 _Write-5.1 {Encr
0da0: 79 70 74 20 61 65 73 2d 31 33 38 2d 63 62 63 7d ypt aes-138-cbc}
0db0: 20 2d 62 6f 64 79 20 7b 0a 09 62 69 6e 61 72 79 -body {..binary
0dc0: 20 65 6e 63 6f 64 65 20 68 65 78 20 5b 73 65 74 encode hex [set
0dd0: 20 64 61 74 61 20 5b 77 72 69 74 65 5f 63 68 61 data [write_cha
0de0: 6e 20 24 65 6e 63 72 79 70 74 65 64 5f 66 69 6c n $encrypted_fil
0df0: 65 20 24 74 65 73 74 5f 64 61 74 61 20 74 6c 73 e $test_data tls
0e00: 3a 3a 65 6e 63 72 79 70 74 20 2d 63 69 70 68 65 ::encrypt -ciphe
0e10: 72 20 24 63 69 70 68 65 72 20 2d 6b 65 79 20 24 r $cipher -key $
0e20: 74 65 73 74 5f 6b 65 79 20 2d 69 76 20 24 74 65 test_key -iv $te
0e30: 73 74 5f 69 76 5d 5d 0a 20 20 20 20 7d 20 2d 72 st_iv]]. } -r
0e40: 65 73 75 6c 74 20 24 68 65 78 5f 73 74 72 69 6e esult $hex_strin
0e50: 67 0a 0a 74 65 73 74 20 45 6e 63 72 79 70 74 5f g..test Encrypt_
0e60: 44 65 63 72 79 70 74 5f 43 68 61 6e 6e 65 6c 5f Decrypt_Channel_
0e70: 57 72 69 74 65 2d 35 2e 32 20 7b 44 65 63 72 79 Write-5.2 {Decry
0e80: 70 74 20 61 65 73 2d 31 33 38 2d 63 62 63 7d 20 pt aes-138-cbc}
0e90: 2d 62 6f 64 79 20 7b 0a 09 77 72 69 74 65 5f 63 -body {..write_c
0ea0: 68 61 6e 20 24 61 6c 74 5f 66 69 6c 65 20 24 64 han $alt_file $d
0eb0: 61 74 61 20 74 6c 73 3a 3a 64 65 63 72 79 70 74 ata tls::decrypt
0ec0: 20 2d 63 69 70 68 65 72 20 24 63 69 70 68 65 72 -cipher $cipher
0ed0: 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 20 -key $test_key
0ee0: 2d 69 76 20 24 74 65 73 74 5f 69 76 0a 20 20 20 -iv $test_iv.
0ef0: 20 7d 20 2d 72 65 73 75 6c 74 20 24 74 65 73 74 } -result $test
0f00: 5f 64 61 74 61 0a 0a 23 20 43 6c 65 61 6e 75 70 _data..# Cleanup
0f10: 0a 3a 3a 74 63 6c 74 65 73 74 3a 3a 72 65 6d 6f .::tcltest::remo
0f20: 76 65 46 69 6c 65 20 24 75 6e 65 6e 63 72 79 70 veFile $unencryp
0f30: 74 65 64 5f 66 69 6c 65 0a 3a 3a 74 63 6c 74 65 ted_file.::tclte
0f40: 73 74 3a 3a 72 65 6d 6f 76 65 46 69 6c 65 20 24 st::removeFile $
0f50: 65 6e 63 72 79 70 74 65 64 5f 66 69 6c 65 0a 3a encrypted_file.:
0f60: 3a 74 63 6c 74 65 73 74 3a 3a 72 65 6d 6f 76 65 :tcltest::remove
0f70: 46 69 6c 65 20 24 61 6c 74 5f 66 69 6c 65 0a 0a File $alt_file..
0f80: 23 20 43 6c 65 61 6e 75 70 0a 3a 3a 74 63 6c 74 # Cleanup.::tclt
0f90: 65 73 74 3a 3a 63 6c 65 61 6e 75 70 54 65 73 74 est::cleanupTest
0fa0: 73 0a 72 65 74 75 72 6e 0a s.return.