Hex Artifact Content

Artifact 51ff79a1ea6c158681af9704dfb4ce224ca0b6f4aee24d58cb4e4f4c1dc8d8dd:


0000: 23 20 41 75 74 6f 20 67 65 6e 65 72 61 74 65 64  # Auto generated
0010: 20 66 72 6f 6d 20 22 53 4d 34 2e 74 78 74 22 0a   from "SM4.txt".
0020: 6c 61 70 70 65 6e 64 20 61 75 74 6f 5f 70 61 74  lappend auto_pat
0030: 68 20 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65 20  h [file dirname 
0040: 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 5b 66  [file dirname [f
0050: 69 6c 65 20 64 69 72 6e 61 6d 65 20 5b 66 69 6c  ile dirname [fil
0060: 65 20 64 69 72 6e 61 6d 65 20 5b 66 69 6c 65 20  e dirname [file 
0070: 6a 6f 69 6e 20 5b 70 77 64 5d 20 5b 69 6e 66 6f  join [pwd] [info
0080: 20 73 63 72 69 70 74 5d 5d 5d 5d 5d 5d 0a 70 61   script]]]]]].pa
0090: 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 74 6c  ckage require tl
00a0: 73 0a 70 61 63 6b 61 67 65 20 72 65 71 75 69 72  s.package requir
00b0: 65 20 74 63 6c 74 65 73 74 0a 0a 63 61 74 63 68  e tcltest..catch
00c0: 20 7b 74 6c 73 3a 3a 70 72 6f 76 69 64 65 72 20   {tls::provider 
00d0: 6c 65 67 61 63 79 7d 0a 74 63 6c 74 65 73 74 3a  legacy}.tcltest:
00e0: 3a 74 65 73 74 43 6f 6e 73 74 72 61 69 6e 74 20  :testConstraint 
00f0: 53 4d 34 20 5b 65 78 70 72 20 7b 5b 6c 73 65 61  SM4 [expr {[lsea
0100: 72 63 68 20 2d 6e 6f 63 61 73 65 20 5b 74 6c 73  rch -nocase [tls
0110: 3a 3a 63 69 70 68 65 72 73 5d 20 53 4d 34 5d 20  ::ciphers] SM4] 
0120: 3e 20 2d 31 7d 5d 0a 0a 74 63 6c 74 65 73 74 3a  > -1}]..tcltest:
0130: 3a 74 65 73 74 20 53 79 6d 65 74 72 69 63 5f 42  :test Symetric_B
0140: 6c 6f 63 6b 5f 53 4d 34 2d 31 2e 31 20 7b 45 6e  lock_SM4-1.1 {En
0150: 63 72 79 70 74 20 53 4d 34 7d 20 5c 0a 09 2d 63  crypt SM4} \..-c
0160: 6f 6e 73 74 72 61 69 6e 74 73 20 53 4d 34 20 5c  onstraints SM4 \
0170: 0a 09 2d 62 6f 64 79 20 7b 62 69 6e 61 72 79 20  ..-body {binary 
0180: 65 6e 63 6f 64 65 20 68 65 78 20 5b 74 6c 73 3a  encode hex [tls:
0190: 3a 65 6e 63 72 79 70 74 20 2d 63 69 70 68 65 72  :encrypt -cipher
01a0: 20 53 4d 34 20 2d 70 61 64 64 69 6e 67 20 30 20   SM4 -padding 0 
01b0: 5c 0a 09 09 20 2d 6b 65 79 20 5b 62 69 6e 61 72  \... -key [binar
01c0: 79 20 64 65 63 6f 64 65 20 68 65 78 20 30 31 32  y decode hex 012
01d0: 33 34 35 36 37 38 39 41 42 43 44 45 46 46 45 44  3456789ABCDEFFED
01e0: 43 42 41 39 38 37 36 35 34 33 32 31 30 5d 20 5c  CBA9876543210] \
01f0: 0a 09 09 20 2d 64 61 74 61 20 5b 62 69 6e 61 72  ... -data [binar
0200: 79 20 64 65 63 6f 64 65 20 68 65 78 20 30 31 32  y decode hex 012
0210: 33 34 35 36 37 38 39 41 42 43 44 45 46 46 45 44  3456789ABCDEFFED
0220: 43 42 41 39 38 37 36 35 34 33 32 31 30 5d 5d 7d  CBA9876543210]]}
0230: 20 5c 0a 09 2d 6d 61 74 63 68 20 65 78 61 63 74   \..-match exact
0240: 20 2d 72 65 73 75 6c 74 20 36 38 31 65 64 66 33   -result 681edf3
0250: 34 64 32 30 36 39 36 35 65 38 36 62 33 65 39 34  4d206965e86b3e94
0260: 66 35 33 36 65 34 32 34 36 0a 0a 74 63 6c 74 65  f536e4246..tclte
0270: 73 74 3a 3a 74 65 73 74 20 53 79 6d 65 74 72 69  st::test Symetri
0280: 63 5f 42 6c 6f 63 6b 5f 53 4d 34 2d 31 2e 32 20  c_Block_SM4-1.2 
0290: 7b 44 65 63 72 79 70 74 20 53 4d 34 7d 20 5c 0a  {Decrypt SM4} \.
02a0: 09 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 53 4d  .-constraints SM
02b0: 34 20 5c 0a 09 2d 62 6f 64 79 20 7b 62 69 6e 61  4 \..-body {bina
02c0: 72 79 20 65 6e 63 6f 64 65 20 68 65 78 20 5b 74  ry encode hex [t
02d0: 6c 73 3a 3a 64 65 63 72 79 70 74 20 2d 63 69 70  ls::decrypt -cip
02e0: 68 65 72 20 53 4d 34 20 2d 70 61 64 64 69 6e 67  her SM4 -padding
02f0: 20 30 20 5c 0a 09 09 20 2d 6b 65 79 20 5b 62 69   0 \... -key [bi
0300: 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65 78 20  nary decode hex 
0310: 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46  0123456789ABCDEF
0320: 46 45 44 43 42 41 39 38 37 36 35 34 33 32 31 30  FEDCBA9876543210
0330: 5d 20 5c 0a 09 09 20 2d 64 61 74 61 20 5b 62 69  ] \... -data [bi
0340: 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65 78 20  nary decode hex 
0350: 36 38 31 45 44 46 33 34 44 32 30 36 39 36 35 45  681EDF34D206965E
0360: 38 36 42 33 45 39 34 46 35 33 36 45 34 32 34 36  86B3E94F536E4246
0370: 5d 5d 7d 20 5c 0a 09 2d 6d 61 74 63 68 20 65 78  ]]} \..-match ex
0380: 61 63 74 20 2d 72 65 73 75 6c 74 20 30 31 32 33  act -result 0123
0390: 34 35 36 37 38 39 61 62 63 64 65 66 66 65 64 63  456789abcdeffedc
03a0: 62 61 39 38 37 36 35 34 33 32 31 30 0a 0a 74 63  ba9876543210..tc
03b0: 6c 74 65 73 74 3a 3a 74 65 73 74 20 53 79 6d 65  ltest::test Syme
03c0: 74 72 69 63 5f 42 6c 6f 63 6b 5f 53 4d 34 2d 31  tric_Block_SM4-1
03d0: 2e 33 20 7b 45 6e 63 72 79 70 74 20 53 4d 34 7d  .3 {Encrypt SM4}
03e0: 20 5c 0a 09 2d 63 6f 6e 73 74 72 61 69 6e 74 73   \..-constraints
03f0: 20 53 4d 34 20 5c 0a 09 2d 62 6f 64 79 20 7b 62   SM4 \..-body {b
0400: 69 6e 61 72 79 20 65 6e 63 6f 64 65 20 68 65 78  inary encode hex
0410: 20 5b 73 65 74 20 64 61 74 61 20 5b 62 69 6e 61   [set data [bina
0420: 72 79 20 64 65 63 6f 64 65 20 68 65 78 20 30 31  ry decode hex 01
0430: 32 33 34 35 36 37 38 39 41 42 43 44 45 46 46 45  23456789ABCDEFFE
0440: 44 43 42 41 39 38 37 36 35 34 33 32 31 30 5d 3b  DCBA9876543210];
0450: 66 6f 72 20 7b 73 65 74 20 69 20 30 7d 20 7b 24  for {set i 0} {$
0460: 69 20 3c 20 31 30 30 30 30 30 30 7d 20 7b 69 6e  i < 1000000} {in
0470: 63 72 20 69 7d 20 7b 73 65 74 20 64 61 74 61 20  cr i} {set data 
0480: 5b 74 6c 73 3a 3a 65 6e 63 72 79 70 74 20 2d 63  [tls::encrypt -c
0490: 69 70 68 65 72 20 53 4d 34 20 2d 70 61 64 64 69  ipher SM4 -paddi
04a0: 6e 67 20 30 20 5c 0a 09 09 20 2d 6b 65 79 20 5b  ng 0 \... -key [
04b0: 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65  binary decode he
04c0: 78 20 30 31 32 33 34 35 36 37 38 39 41 42 43 44  x 0123456789ABCD
04d0: 45 46 46 45 44 43 42 41 39 38 37 36 35 34 33 32  EFFEDCBA98765432
04e0: 31 30 5d 20 5c 0a 09 09 20 2d 64 61 74 61 20 24  10] \... -data $
04f0: 64 61 74 61 5d 7d 3b 73 65 74 20 64 61 74 61 5d  data]};set data]
0500: 7d 20 5c 0a 09 2d 6d 61 74 63 68 20 65 78 61 63  } \..-match exac
0510: 74 20 2d 72 65 73 75 6c 74 20 35 39 35 32 39 38  t -result 595298
0520: 63 37 63 36 66 64 32 37 31 66 30 34 30 32 66 38  c7c6fd271f0402f8
0530: 30 34 63 33 33 64 33 66 36 36 0a 0a 74 63 6c 74  04c33d3f66..tclt
0540: 65 73 74 3a 3a 74 65 73 74 20 53 79 6d 65 74 72  est::test Symetr
0550: 69 63 5f 42 6c 6f 63 6b 5f 53 4d 34 2d 31 2e 34  ic_Block_SM4-1.4
0560: 20 7b 44 65 63 72 79 70 74 20 53 4d 34 7d 20 5c   {Decrypt SM4} \
0570: 0a 09 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 53  ..-constraints S
0580: 4d 34 20 5c 0a 09 2d 62 6f 64 79 20 7b 62 69 6e  M4 \..-body {bin
0590: 61 72 79 20 65 6e 63 6f 64 65 20 68 65 78 20 5b  ary encode hex [
05a0: 73 65 74 20 64 61 74 61 20 5b 62 69 6e 61 72 79  set data [binary
05b0: 20 64 65 63 6f 64 65 20 68 65 78 20 35 39 35 32   decode hex 5952
05c0: 39 38 43 37 43 36 46 44 32 37 31 46 30 34 30 32  98C7C6FD271F0402
05d0: 46 38 30 34 43 33 33 44 33 46 36 36 5d 3b 66 6f  F804C33D3F66];fo
05e0: 72 20 7b 73 65 74 20 69 20 30 7d 20 7b 24 69 20  r {set i 0} {$i 
05f0: 3c 20 31 30 30 30 30 30 30 7d 20 7b 69 6e 63 72  < 1000000} {incr
0600: 20 69 7d 20 7b 73 65 74 20 64 61 74 61 20 5b 74   i} {set data [t
0610: 6c 73 3a 3a 64 65 63 72 79 70 74 20 2d 63 69 70  ls::decrypt -cip
0620: 68 65 72 20 53 4d 34 20 2d 70 61 64 64 69 6e 67  her SM4 -padding
0630: 20 30 20 5c 0a 09 09 20 2d 6b 65 79 20 5b 62 69   0 \... -key [bi
0640: 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65 78 20  nary decode hex 
0650: 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46  0123456789ABCDEF
0660: 46 45 44 43 42 41 39 38 37 36 35 34 33 32 31 30  FEDCBA9876543210
0670: 5d 20 5c 0a 09 09 20 2d 64 61 74 61 20 24 64 61  ] \... -data $da
0680: 74 61 5d 7d 3b 73 65 74 20 64 61 74 61 5d 7d 20  ta]};set data]} 
0690: 5c 0a 09 2d 6d 61 74 63 68 20 65 78 61 63 74 20  \..-match exact 
06a0: 2d 72 65 73 75 6c 74 20 30 31 32 33 34 35 36 37  -result 01234567
06b0: 38 39 61 62 63 64 65 66 66 65 64 63 62 61 39 38  89abcdeffedcba98
06c0: 37 36 35 34 33 32 31 30 0a 0a 74 63 6c 74 65 73  76543210..tcltes
06d0: 74 3a 3a 74 65 73 74 20 53 79 6d 65 74 72 69 63  t::test Symetric
06e0: 5f 42 6c 6f 63 6b 5f 53 4d 34 2d 31 2e 35 20 7b  _Block_SM4-1.5 {
06f0: 45 6e 63 72 79 70 74 20 53 4d 34 7d 20 5c 0a 09  Encrypt SM4} \..
0700: 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 53 4d 34  -constraints SM4
0710: 20 5c 0a 09 2d 62 6f 64 79 20 7b 62 69 6e 61 72   \..-body {binar
0720: 79 20 65 6e 63 6f 64 65 20 68 65 78 20 5b 74 6c  y encode hex [tl
0730: 73 3a 3a 65 6e 63 72 79 70 74 20 2d 63 69 70 68  s::encrypt -ciph
0740: 65 72 20 53 4d 34 20 2d 70 61 64 64 69 6e 67 20  er SM4 -padding 
0750: 30 20 5c 0a 09 09 20 2d 6b 65 79 20 5b 62 69 6e  0 \... -key [bin
0760: 61 72 79 20 64 65 63 6f 64 65 20 68 65 78 20 46  ary decode hex F
0770: 45 44 43 42 41 39 38 37 36 35 34 33 32 31 30 30  EDCBA98765432100
0780: 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 5d  123456789ABCDEF]
0790: 20 5c 0a 09 09 20 2d 64 61 74 61 20 5b 62 69 6e   \... -data [bin
07a0: 61 72 79 20 64 65 63 6f 64 65 20 68 65 78 20 30  ary decode hex 0
07b0: 30 30 31 30 32 30 33 30 34 30 35 30 36 30 37 30  0010203040506070
07c0: 38 30 39 30 41 30 42 30 43 30 44 30 45 30 46 5d  8090A0B0C0D0E0F]
07d0: 5d 7d 20 5c 0a 09 2d 6d 61 74 63 68 20 65 78 61  ]} \..-match exa
07e0: 63 74 20 2d 72 65 73 75 6c 74 20 66 37 36 36 36  ct -result f7666
07f0: 37 38 66 31 33 66 30 31 61 64 65 61 63 31 62 33  78f13f01adeac1b3
0800: 65 61 39 35 35 61 64 62 35 39 34 0a 0a 74 63 6c  ea955adb594..tcl
0810: 74 65 73 74 3a 3a 74 65 73 74 20 53 79 6d 65 74  test::test Symet
0820: 72 69 63 5f 42 6c 6f 63 6b 5f 53 4d 34 2d 31 2e  ric_Block_SM4-1.
0830: 36 20 7b 44 65 63 72 79 70 74 20 53 4d 34 7d 20  6 {Decrypt SM4} 
0840: 5c 0a 09 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20  \..-constraints 
0850: 53 4d 34 20 5c 0a 09 2d 62 6f 64 79 20 7b 62 69  SM4 \..-body {bi
0860: 6e 61 72 79 20 65 6e 63 6f 64 65 20 68 65 78 20  nary encode hex 
0870: 5b 74 6c 73 3a 3a 64 65 63 72 79 70 74 20 2d 63  [tls::decrypt -c
0880: 69 70 68 65 72 20 53 4d 34 20 2d 70 61 64 64 69  ipher SM4 -paddi
0890: 6e 67 20 30 20 5c 0a 09 09 20 2d 6b 65 79 20 5b  ng 0 \... -key [
08a0: 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65  binary decode he
08b0: 78 20 46 45 44 43 42 41 39 38 37 36 35 34 33 32  x FEDCBA98765432
08c0: 31 30 30 31 32 33 34 35 36 37 38 39 41 42 43 44  100123456789ABCD
08d0: 45 46 5d 20 5c 0a 09 09 20 2d 64 61 74 61 20 5b  EF] \... -data [
08e0: 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65  binary decode he
08f0: 78 20 46 37 36 36 36 37 38 46 31 33 46 30 31 41  x F766678F13F01A
0900: 44 45 41 43 31 42 33 45 41 39 35 35 41 44 42 35  DEAC1B3EA955ADB5
0910: 39 34 5d 5d 7d 20 5c 0a 09 2d 6d 61 74 63 68 20  94]]} \..-match 
0920: 65 78 61 63 74 20 2d 72 65 73 75 6c 74 20 30 30  exact -result 00
0930: 30 31 30 32 30 33 30 34 30 35 30 36 30 37 30 38  0102030405060708
0940: 30 39 30 61 30 62 30 63 30 64 30 65 30 66 0a 0a  090a0b0c0d0e0f..
0950: 74 63 6c 74 65 73 74 3a 3a 74 65 73 74 20 53 79  tcltest::test Sy
0960: 6d 65 74 72 69 63 5f 42 6c 6f 63 6b 5f 53 4d 34  metric_Block_SM4
0970: 2d 31 2e 37 20 7b 45 6e 63 72 79 70 74 20 53 4d  -1.7 {Encrypt SM
0980: 34 7d 20 5c 0a 09 2d 63 6f 6e 73 74 72 61 69 6e  4} \..-constrain
0990: 74 73 20 53 4d 34 20 5c 0a 09 2d 62 6f 64 79 20  ts SM4 \..-body 
09a0: 7b 62 69 6e 61 72 79 20 65 6e 63 6f 64 65 20 68  {binary encode h
09b0: 65 78 20 5b 73 65 74 20 64 61 74 61 20 5b 62 69  ex [set data [bi
09c0: 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65 78 20  nary decode hex 
09d0: 30 30 30 31 30 32 30 33 30 34 30 35 30 36 30 37  0001020304050607
09e0: 30 38 30 39 30 41 30 42 30 43 30 44 30 45 30 46  08090A0B0C0D0E0F
09f0: 5d 3b 66 6f 72 20 7b 73 65 74 20 69 20 30 7d 20  ];for {set i 0} 
0a00: 7b 24 69 20 3c 20 31 30 30 30 30 30 30 7d 20 7b  {$i < 1000000} {
0a10: 69 6e 63 72 20 69 7d 20 7b 73 65 74 20 64 61 74  incr i} {set dat
0a20: 61 20 5b 74 6c 73 3a 3a 65 6e 63 72 79 70 74 20  a [tls::encrypt 
0a30: 2d 63 69 70 68 65 72 20 53 4d 34 20 2d 70 61 64  -cipher SM4 -pad
0a40: 64 69 6e 67 20 30 20 5c 0a 09 09 20 2d 6b 65 79  ding 0 \... -key
0a50: 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20   [binary decode 
0a60: 68 65 78 20 46 45 44 43 42 41 39 38 37 36 35 34  hex FEDCBA987654
0a70: 33 32 31 30 30 31 32 33 34 35 36 37 38 39 41 42  32100123456789AB
0a80: 43 44 45 46 5d 20 5c 0a 09 09 20 2d 64 61 74 61  CDEF] \... -data
0a90: 20 24 64 61 74 61 5d 7d 3b 73 65 74 20 64 61 74   $data]};set dat
0aa0: 61 5d 7d 20 5c 0a 09 2d 6d 61 74 63 68 20 65 78  a]} \..-match ex
0ab0: 61 63 74 20 2d 72 65 73 75 6c 74 20 33 37 39 61  act -result 379a
0ac0: 39 36 64 30 61 36 61 35 61 35 30 36 30 66 62 34  96d0a6a5a5060fb4
0ad0: 36 30 63 37 35 64 31 38 37 39 65 64 0a 0a 74 63  60c75d1879ed..tc
0ae0: 6c 74 65 73 74 3a 3a 74 65 73 74 20 53 79 6d 65  ltest::test Syme
0af0: 74 72 69 63 5f 42 6c 6f 63 6b 5f 53 4d 34 2d 31  tric_Block_SM4-1
0b00: 2e 38 20 7b 44 65 63 72 79 70 74 20 53 4d 34 7d  .8 {Decrypt SM4}
0b10: 20 5c 0a 09 2d 63 6f 6e 73 74 72 61 69 6e 74 73   \..-constraints
0b20: 20 53 4d 34 20 5c 0a 09 2d 62 6f 64 79 20 7b 62   SM4 \..-body {b
0b30: 69 6e 61 72 79 20 65 6e 63 6f 64 65 20 68 65 78  inary encode hex
0b40: 20 5b 73 65 74 20 64 61 74 61 20 5b 62 69 6e 61   [set data [bina
0b50: 72 79 20 64 65 63 6f 64 65 20 68 65 78 20 33 37  ry decode hex 37
0b60: 39 41 39 36 44 30 41 36 41 35 41 35 30 36 30 46  9A96D0A6A5A5060F
0b70: 42 34 36 30 43 37 35 44 31 38 37 39 45 44 5d 3b  B460C75D1879ED];
0b80: 66 6f 72 20 7b 73 65 74 20 69 20 30 7d 20 7b 24  for {set i 0} {$
0b90: 69 20 3c 20 31 30 30 30 30 30 30 7d 20 7b 69 6e  i < 1000000} {in
0ba0: 63 72 20 69 7d 20 7b 73 65 74 20 64 61 74 61 20  cr i} {set data 
0bb0: 5b 74 6c 73 3a 3a 64 65 63 72 79 70 74 20 2d 63  [tls::decrypt -c
0bc0: 69 70 68 65 72 20 53 4d 34 20 2d 70 61 64 64 69  ipher SM4 -paddi
0bd0: 6e 67 20 30 20 5c 0a 09 09 20 2d 6b 65 79 20 5b  ng 0 \... -key [
0be0: 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65  binary decode he
0bf0: 78 20 46 45 44 43 42 41 39 38 37 36 35 34 33 32  x FEDCBA98765432
0c00: 31 30 30 31 32 33 34 35 36 37 38 39 41 42 43 44  100123456789ABCD
0c10: 45 46 5d 20 5c 0a 09 09 20 2d 64 61 74 61 20 24  EF] \... -data $
0c20: 64 61 74 61 5d 7d 3b 73 65 74 20 64 61 74 61 5d  data]};set data]
0c30: 7d 20 5c 0a 09 2d 6d 61 74 63 68 20 65 78 61 63  } \..-match exac
0c40: 74 20 2d 72 65 73 75 6c 74 20 30 30 30 31 30 32  t -result 000102
0c50: 30 33 30 34 30 35 30 36 30 37 30 38 30 39 30 61  030405060708090a
0c60: 30 62 30 63 30 64 30 65 30 66 0a 0a 23 20 43 6c  0b0c0d0e0f..# Cl
0c70: 65 61 6e 75 70 0a 3a 3a 74 63 6c 74 65 73 74 3a  eanup.::tcltest:
0c80: 3a 63 6c 65 61 6e 75 70 54 65 73 74 73 0a 72 65  :cleanupTests.re
0c90: 74 75 72 6e 0a                                   turn.