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.