17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
-
+
|
source common.tcl
# Helper functions
proc lcompare {list1 list2} {set m "";set u "";foreach i $list1 {if {$i ni $list2} {lappend m $i}};foreach i $list2 {if {$i ni $list1} {lappend u $i}};return [list "missing" $m "unexpected" $u]}
proc exec_get {delim args} {return [split [exec openssl {*}$args] $delim]}
proc exec_get_ciphers {} {set list [list];set data [exec openssl list -cipher-algorithms];foreach line [split $data "\n"] {foreach {cipher null alias} [split [string trim $line]] {lappend list [string tolower $cipher]}};return [lsort -unique $list]}
proc exec_get_digests {} {set list [list];set data [exec openssl dgst -list];foreach line [split $data "\n"] {foreach digest $line {if {[string match "-*" $digest]} {lappend list [string trimleft $digest "-"]}}};return [lsort $list]}
proc exec_get_pks {} {set list [list];set data [exec openssl list -public-key-methods];foreach line [split $data "\n"] {if {![string match "*Type:*" $line]} {lappend list [string trim $line]}};return $list}
proc exec_get_pkeys {} {set list [list];set data [exec openssl list -public-key-methods];foreach line [split $data "\n"] {if {![string match "*Type:*" $line]} {lappend list [string trim $line]}};return $list}
proc exec_get_macs {} {return [list cmac hmac]}
proc list_tolower {list} {set result [list];foreach element $list {lappend result [string tolower $element]};return $result}
# Test list ciphers
test Ciphers_List-1.1 {All} -body {
|
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
|
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
|
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
-
+
-
+
|
# Test list MACs
test MAC_List-9.1 {All} -body {
lcompare [exec_get_macs] [tls::macs]
} -result {missing {} unexpected {}}
# Test list Pkeys
test Pkey_List-10.1 {All} -body {
lcompare [exec_get_pkeys] [tls::pkeys]
} -result {missing {} unexpected {}}
# Test list protocols
test Protocols-10.1 {All} -body {
test Protocols-11.1 {All} -body {
lcompare $::protocols [::tls::protocols]
} -result {missing {ssl2 ssl3} unexpected {}}
# Test show version
test Version-11.1 {All} -body {
test Version-12.1 {All} -body {
::tls::version
} -match {glob} -result {*}
test Version-11.2 {OpenSSL} -constraints {OpenSSL} -body {
test Version-12.2 {OpenSSL} -constraints {OpenSSL} -body {
::tls::version
} -match {glob} -result {OpenSSL*}
# Error Cases
test Error_Cases-12.1 {Cipher Too few args} -body {
test Error_Cases-13.1 {Cipher Too few args} -body {
::tls::cipher
} -result {wrong # args: should be "::tls::cipher name"} -returnCodes {1}
test Error_Cases-12.2 {Cipher Too many args} -body {
test Error_Cases-13.2 {Cipher Too many args} -body {
::tls::cipher too many args
} -result {wrong # args: should be "::tls::cipher name"} -returnCodes {1}
test Error_Cases-12.3 {Digests Too many args} -body {
test Error_Cases-13.3 {Digests Too many args} -body {
::tls::digests too many args
} -result {wrong # args: should be "::tls::digests ?name?"} -returnCodes {1}
test Error_Cases-12.4 {MACs Too many args} -body {
test Error_Cases-13.4 {MACs Too many args} -body {
::tls::macs too many args
} -result {wrong # args: should be "::tls::macs"} -returnCodes {1}
} -result {wrong # args: should be "::tls::macs ?name?"} -returnCodes {1}
test Error_Cases-13.5 {Pkeys Too many args} -body {
::tls::pkeys too many args
} -result {wrong # args: should be "::tls::pkeys ?name?"} -returnCodes {1}
test Error_Cases-12.5 {Protocols Too many args} -body {
test Error_Cases-13.6 {Protocols Too many args} -body {
::tls::protocols too many args
} -result {wrong # args: should be "::tls::protocols"} -returnCodes {1}
test Error_Cases-12.6 {Version Too many args} -body {
test Error_Cases-13.7 {Version Too many args} -body {
::tls::version too many args
} -result {wrong # args: should be "::tls::version"} -returnCodes {1}
# Cleanup
::tcltest::cleanupTests
return
|