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.