Last active
April 30, 2017 22:39
-
-
Save mutability/8cc5e34aa57e262c23bc816a76a068ed to your computer and use it in GitHub Desktop.
(mostly) standalone tcltls tester
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-----BEGIN CERTIFICATE----- | |
MIIF0jCCA7qgAwIBAgIJAKn+dW2ea5S0MA0GCSqGSIb3DQEBCwUAMHYxCzAJBgNV | |
BAYTAlVTMQswCQYDVQQIDAJUWDEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwP | |
RmxpZ2h0QXdhcmUgTExDMRMwEQYDVQQLDApPcGVyYXRpb25zMRkwFwYDVQQDDBBG | |
bGlnaHRBd2FyZSBSb290MB4XDTE1MTIwOTE2NTAwNFoXDTM1MTIwNDE2NTAwNFow | |
djELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAlRYMRAwDgYDVQQHDAdIb3VzdG9uMRgw | |
FgYDVQQKDA9GbGlnaHRBd2FyZSBMTEMxEzARBgNVBAsMCk9wZXJhdGlvbnMxGTAX | |
BgNVBAMMEEZsaWdodEF3YXJlIFJvb3QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw | |
ggIKAoICAQDTlR/hn6y+RqUVZnRxc9Wp0mQaYJpXEDBAzAVUipXdertL1c0mYqda | |
22J9E0ubZS5nqYXhj9/YHN0G8fP9LmTjzB4mxH0TZCRTglNCsQDzKLuxnt1ynHCl | |
yUV9z/B1snL/bl8NIAv9eFzR+1/yIWdzO9pg5wpue1s+9IbMifAtwupUi9vKwoOR | |
azUHAvmI0WvGkFuE+ggyXwJjThGqP97G6ddYfqXFzU+vhXSRPLzqDHweq7TiK/+E | |
RBC1QjaQed7leW+veEOjhcmpSaWziepVA7oLmjf7pWGrV1vLUTKdvaWFH9Ao8OqV | |
NM/ZIf74QXQ2rbe/mFa13OvcVnWGt5QKaOIp5mB4Rq2KlJhu9BNN//ORT7eqjlsD | |
HFdOvUYME0jg+7W1Bnajq1CId/iAnVNCyaNfgaPKvDk+1j8ydKqS+jssLvFUPoh4 | |
d3KWz1DqyF3dOjhzZXVI/5zbcFGINAr0N01MlcUdPn015WsUjJPTUGD89NNfPhqh | |
iEEuNiwg46gJXIOXAy8SItX/Sbz1AJyLHohTqquOk8NInic6CkJNodgKQWdD4WNY | |
luiLBFiJSrmP5RWNlYtMuejGhx0zFdsn0J9Aj5fNoIAjrpn85h2JpBYXd0bPX2vM | |
JS+2ooU+vSjcV4EySDED4jzNDAu66d2Vw/CHJhOL+1BTMTWm41FHDwIDAQABo2Mw | |
YTAdBgNVHQ4EFgQUi4ayF9cvkGvBLzaX6SWhkbEzQ8AwHwYDVR0jBBgwFoAUi4ay | |
F9cvkGvBLzaX6SWhkbEzQ8AwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC | |
AYYwDQYJKoZIhvcNAQELBQADggIBABJ9muLNkfb2yrzSk1iUJ2ihAEhCmbCQ2tUr | |
2O/HldSJNd9a3WnSa60PsxQhJBgAe+W/vBb4BytmLm7qqx6rnRjnCynU/VRVOVqu | |
syYZvvf9MYfaLOwYTnPgsbHlDc4F1X3+ZWHjHnZONaQPqQhMZv0SgsKPahuToBD/ | |
fNXv8yXVgb2QLk+cQ4viqtlKJiHjHTqKopTXR2vu8OXa/XZdOv4ThAZMmBn9ubzb | |
dRu76EkH6gFyenUynhjHOkKUZKz4byfRzLVxlj6YPDtCP512SYiYFi2nf1BDGpCX | |
vZufernP60hVrEa89PHfc3tLE/RsmkyLPORay76hSmL9i4DOD4Ggnn6Sy12/uRGU | |
RcEqt1HzAa8Jc2raD86uCbMZE+nJZ1oWSQ2KWq9B7ED1owA8/7ONFPq7Hc3RvEVw | |
YiBTHdNsIl2W2GPG6H1hmGKG0YCYPh5f3tzJNv+xf++Yyl7xmGGmRRGbyq2Idys/ | |
fG35F7wlCHZmkLLw/iqmp0Oc7VNKBB17eLNk9V/y6ftt1iwkNY5xr1jtZm7Bte34 | |
wGtR14PXQiR0AuPHXwiH24aXfsVdUIwgGDhg8OpGH/aQemIjzQ5ZC+VphbSP5RwS | |
6ixn0K4tO1Ug3S/TeLk82GGdmXosU00Kd5VHHk611FzUu4vTXRO01xisaGcQBJNm | |
h6nW3kqb | |
-----END CERTIFICATE----- |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# With tcltls 1.6.7 | |
$ ./tls.tcl | |
establishing connection | |
importing socket | |
handshaking | |
callback: info sock1ca0f20 handshake start {before/connect initialization} | |
callback: info sock1ca0f20 connect loop {before/connect initialization} | |
callback: info sock1ca0f20 connect loop {SSLv2/v3 write client hello A} | |
callback: info sock1ca0f20 connect exit {SSLv2/v3 read server hello A} | |
handshake: returned 0 | |
handshaking | |
callback: info sock1ca0f20 connect loop {unknown state} | |
callback: verify sock1ca0f20 2 {sha1_hash B69ABB0BF41433F4E27434BF6628CE1EA1CAA704 subject {CN=FlightAware Root,OU=Operations,O=FlightAware LLC,L=Houston,ST=TX,C=US} issuer {CN=FlightAware Root,OU=Operations,O=FlightAware LLC,L=Houston,ST=TX,C=US} notBefore {Dec 9 16:50:04 2015 GMT} notAfter {Dec 4 16:50:04 2035 GMT} serial A9FE756D9E6B94B4} 1 {} | |
callback: verify sock1ca0f20 1 {sha1_hash D191B12012733E764CA27D5DFB88336499C9C7C1 subject {CN=FlightAware Intermediate,OU=Operations,O=FlightAware LLC,ST=TX,C=US} issuer {CN=FlightAware Root,OU=Operations,O=FlightAware LLC,L=Houston,ST=TX,C=US} notBefore {Dec 9 16:59:51 2015 GMT} notAfter {Dec 6 16:59:51 2025 GMT} serial 2048} 1 {} | |
callback: verify sock1ca0f20 0 {sha1_hash ED69EEEF3FEE10E7DDD1BEC93C10EDCDF88989A1 subject {CN=*.flightaware.com,OU=Operations,O=FlightAware LLC,L=Houston,ST=Texas,C=US} issuer {CN=FlightAware Intermediate,OU=Operations,O=FlightAware LLC,ST=TX,C=US} notBefore {Dec 11 16:33:41 2015 GMT} notAfter {Dec 11 16:33:41 2019 GMT} serial 2049} 1 {} | |
callback: info sock1ca0f20 connect loop {unknown state} | |
callback: info sock1ca0f20 connect loop {unknown state} | |
callback: info sock1ca0f20 connect loop {unknown state} | |
callback: info sock1ca0f20 connect loop {unknown state} | |
callback: info sock1ca0f20 connect loop {unknown state} | |
callback: info sock1ca0f20 connect loop {unknown state} | |
callback: info sock1ca0f20 connect loop {unknown state} | |
callback: info sock1ca0f20 connect loop {unknown state} | |
callback: info sock1ca0f20 connect exit {unknown state} | |
callback: info sock1ca0f20 connect exit {unknown state} | |
handshake: returned 0 | |
handshaking | |
callback: info sock1ca0f20 connect loop {unknown state} | |
callback: info sock1ca0f20 connect loop {unknown state} | |
callback: info sock1ca0f20 handshake done {SSL negotiation finished successfully} | |
callback: info sock1ca0f20 connect exit {SSL negotiation finished successfully} | |
handshake: returned 1 | |
tls status: sha1_hash ED69EEEF3FEE10E7DDD1BEC93C10EDCDF88989A1 subject {CN=*.flightaware.com,OU=Operations,O=FlightAware LLC,L=Houston,ST=Texas,C=US} issuer {CN=FlightAware Intermediate,OU=Operations,O=FlightAware LLC,ST=TX,C=US} notBefore {Dec 11 16:33:41 2015 GMT} notAfter {Dec 11 16:33:41 2019 GMT} serial 2049 sbits 256 cipher AES256-GCM-SHA384 | |
callback: info sock1ca0f20 alert write {close notify} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# With tcltls 1.7.11 | |
$ ./tls.tcl | |
establishing connection | |
importing socket | |
handshaking | |
callback: info sock8021d0710 handshake start {before/connect initialization} | |
callback: info sock8021d0710 connect loop {before/connect initialization} | |
callback: info sock8021d0710 connect loop {SSLv2/v3 write client hello A} | |
callback: info sock8021d0710 connect exit {SSLv2/v3 read server hello A} | |
handshake: returned 1 | |
tls status: sbits 0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env tclsh | |
package require tls | |
proc tls_callback {args} { | |
puts stderr "callback: $args" | |
} | |
proc testit {} { | |
puts stderr "establishing connection" | |
set s [socket piaware.flightaware.com 1200] | |
puts stderr "importing socket" | |
::tls::import $s \ | |
-cipher ALL \ | |
-cafile flightaware-root.cert.pem \ | |
-ssl2 0 \ | |
-ssl3 0 \ | |
-tls1 1 \ | |
-require 1 \ | |
-command tls_callback | |
fconfigure $s -blocking 0 | |
while {1} { | |
puts stderr "handshaking" | |
if {[catch {::tls::handshake $s} result options] == 1} { | |
puts stderr "handshake: returned error: $result" | |
if {[lindex $::errorCode 0] == "POSIX" && [lindex $::errorCode 1] == "EAGAIN"} { | |
set result 0 | |
} else { | |
return -options $options $result | |
} | |
} else { | |
puts stderr "handshake: returned $result" | |
} | |
if {!$result} { | |
after 500 | |
} else { | |
break | |
} | |
} | |
puts stderr "tls status: [::tls::status $s]" | |
} | |
if {!$tcl_interactive} { | |
try { | |
testit | |
} on error {result} { | |
puts stderr "Caught error: $result" | |
puts stderr $::errorInfo | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment