Hex Artifact Content

Artifact d7695363d84bb7ab3a714ef95d71891fa8a3d2c8a512575e50520669547ab2b1:


0000: 23 20 47 72 6f 75 70 2c 4e 61 6d 65 2c 43 6f 6e  # Group,Name,Con
0010: 73 74 72 61 69 6e 74 73 2c 53 65 74 75 70 2c 42  straints,Setup,B
0020: 6f 64 79 2c 43 6c 65 61 6e 75 70 2c 4d 61 74 63  ody,Cleanup,Matc
0030: 68 2c 52 65 73 75 6c 74 2c 4f 75 74 70 75 74 2c  h,Result,Output,
0040: 45 72 72 6f 72 20 4f 75 74 70 75 74 2c 52 65 74  Error Output,Ret
0050: 75 72 6e 20 43 6f 64 65 73 0a 63 6f 6d 6d 61 6e  urn Codes.comman
0060: 64 2c 70 61 63 6b 61 67 65 20 70 72 65 66 65 72  d,package prefer
0070: 20 6c 61 74 65 73 74 2c 2c 2c 2c 2c 2c 2c 2c 2c   latest,,,,,,,,,
0080: 0a 63 6f 6d 6d 61 6e 64 2c 70 61 63 6b 61 67 65  .command,package
0090: 20 72 65 71 75 69 72 65 20 74 6c 73 2c 2c 2c 2c   require tls,,,,
00a0: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 70 61  ,,,,,.command,pa
00b0: 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 68 74  ckage require ht
00c0: 74 70 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 2c 2c 2c 2c  tp,,,,,,,,,.,,,,
00d0: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23  ,,,,,,.command,#
00e0: 20 43 6f 6e 73 74 72 61 69 6e 74 73 2c 2c 2c 2c   Constraints,,,,
00f0: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 73 6f  ,,,,,.command,so
0100: 75 72 63 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20  urce [file join 
0110: 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 5b 69  [file dirname [i
0120: 6e 66 6f 20 73 63 72 69 70 74 5d 5d 20 63 6f 6d  nfo script]] com
0130: 6d 6f 6e 2e 74 63 6c 5d 2c 2c 2c 2c 2c 2c 2c 2c  mon.tcl],,,,,,,,
0140: 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d  ,.,,,,,,,,,,.com
0150: 6d 61 6e 64 2c 23 20 48 65 6c 70 65 72 20 66 75  mand,# Helper fu
0160: 6e 63 74 69 6f 6e 73 2c 2c 2c 2c 2c 2c 2c 2c 2c  nctions,,,,,,,,,
0170: 0a 63 6f 6d 6d 61 6e 64 2c 73 65 74 20 3a 3a 63  .command,set ::c
0180: 61 66 69 6c 65 20 5b 66 69 6c 65 20 6a 6f 69 6e  afile [file join
0190: 20 5b 70 77 64 5d 20 63 65 72 74 73 20 63 61 63   [pwd] certs cac
01a0: 65 72 74 2e 70 65 6d 5d 2c 2c 2c 2c 2c 2c 2c 2c  ert.pem],,,,,,,,
01b0: 2c 0a 63 6f 6d 6d 61 6e 64 2c 73 65 74 20 3a 3a  ,.command,set ::
01c0: 65 6e 76 28 53 53 4c 5f 43 45 52 54 5f 46 49 4c  env(SSL_CERT_FIL
01d0: 45 29 20 24 3a 3a 63 61 66 69 6c 65 2c 2c 2c 2c  E) $::cafile,,,,
01e0: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 3a 3a  ,,,,,.command,::
01f0: 68 74 74 70 3a 3a 72 65 67 69 73 74 65 72 20 68  http::register h
0200: 74 74 70 73 20 34 34 33 20 5b 6c 69 73 74 20 3a  ttps 443 [list :
0210: 3a 74 6c 73 3a 3a 73 6f 63 6b 65 74 20 2d 63 61  :tls::socket -ca
0220: 66 69 6c 65 20 24 3a 3a 63 61 66 69 6c 65 5d 2c  file $::cafile],
0230: 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64  ,,,,,,,,.command
0240: 2c 22 70 72 6f 63 20 67 65 74 5f 75 72 6c 20 7b  ,"proc get_url {
0250: 75 72 6c 7d 20 7b 0a 20 20 20 20 73 65 74 20 74  url} {.    set t
0260: 6f 6b 65 6e 20 5b 3a 3a 68 74 74 70 3a 3a 67 65  oken [::http::ge
0270: 74 75 72 6c 20 24 75 72 6c 5d 0a 20 20 20 20 73  turl $url].    s
0280: 65 74 20 62 6f 64 79 20 5b 3a 3a 68 74 74 70 3a  et body [::http:
0290: 3a 64 61 74 61 20 24 74 6f 6b 65 6e 5d 0a 20 20  :data $token].  
02a0: 20 20 3a 3a 68 74 74 70 3a 3a 63 6c 65 61 6e 75    ::http::cleanu
02b0: 70 20 24 74 6f 6b 65 6e 0a 20 20 20 20 72 65 74  p $token.    ret
02c0: 75 72 6e 20 24 62 6f 64 79 0a 7d 0a 22 2c 2c 2c  urn $body.}.",,,
02d0: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22  ,,,,,,.command,"
02e0: 70 72 6f 63 20 67 65 74 5f 64 61 74 61 20 7b 75  proc get_data {u
02f0: 72 6c 7d 20 7b 0a 20 20 20 20 73 65 74 20 74 6f  rl} {.    set to
0300: 6b 65 6e 20 5b 3a 3a 68 74 74 70 3a 3a 67 65 74  ken [::http::get
0310: 75 72 6c 20 24 75 72 6c 5d 0a 20 20 20 20 73 65  url $url].    se
0320: 74 20 62 6f 64 79 20 5b 3a 3a 68 74 74 70 3a 3a  t body [::http::
0330: 64 61 74 61 20 24 74 6f 6b 65 6e 5d 0a 20 20 20  data $token].   
0340: 20 3a 3a 68 74 74 70 3a 3a 63 6c 65 61 6e 75 70   ::http::cleanup
0350: 20 24 74 6f 6b 65 6e 0a 20 20 20 20 73 65 74 20   $token.    set 
0360: 70 61 74 74 65 72 6e 20 7b 3c 62 6f 64 79 2e 2a  pattern {<body.*
0370: 3f 3e 28 2e 2a 3f 29 3c 2f 62 6f 64 79 3e 7d 0a  ?>(.*?)</body>}.
0380: 20 20 20 20 73 65 74 20 64 61 74 61 20 22 22 22      set data """
0390: 22 0a 20 20 20 20 72 65 67 65 78 70 20 2d 6e 6f  ".    regexp -no
03a0: 63 61 73 65 20 24 70 61 74 74 65 72 6e 20 24 62  case $pattern $b
03b0: 6f 64 79 20 6d 61 74 63 68 20 64 61 74 61 0a 20  ody match data. 
03c0: 20 20 20 72 65 74 75 72 6e 20 24 64 61 74 61 0a     return $data.
03d0: 7d 0a 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 2c 2c 2c  }.",,,,,,,,,.,,,
03e0: 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c  ,,,,,,,.command,
03f0: 23 20 62 72 6f 77 73 65 72 6c 65 61 6b 73 2e 63  # browserleaks.c
0400: 6f 6d 20 54 65 73 74 73 2c 2c 2c 2c 2c 2c 2c 2c  om Tests,,,,,,,,
0410: 2c 0a 42 72 6f 77 73 65 72 4c 65 61 6b 73 2c 54  ,.BrowserLeaks,T
0420: 4c 53 20 31 2e 33 2c 4f 70 65 6e 53 53 4c 33 2e  LS 1.3,OpenSSL3.
0430: 32 2c 2c 67 65 74 5f 75 72 6c 20 68 74 74 70 73  2,,get_url https
0440: 3a 2f 2f 74 6c 73 31 33 2e 62 72 6f 77 73 65 72  ://tls13.browser
0450: 6c 65 61 6b 73 2e 63 6f 6d 2c 2c 2c 54 4c 53 20  leaks.com,,,TLS 
0460: 31 2e 33 2c 2c 2c 0a 42 72 6f 77 73 65 72 4c 65  1.3,,,.BrowserLe
0470: 61 6b 73 2c 54 4c 53 20 31 2e 32 2c 4f 70 65 6e  aks,TLS 1.2,Open
0480: 53 53 4c 33 2e 32 2c 2c 67 65 74 5f 75 72 6c 20  SSL3.2,,get_url 
0490: 68 74 74 70 73 3a 2f 2f 74 6c 73 31 32 2e 62 72  https://tls12.br
04a0: 6f 77 73 65 72 6c 65 61 6b 73 2e 63 6f 6d 2c 2c  owserleaks.com,,
04b0: 2c 54 4c 53 20 31 2e 32 2c 2c 2c 0a 42 72 6f 77  ,TLS 1.2,,,.Brow
04c0: 73 65 72 4c 65 61 6b 73 2c 54 4c 53 20 31 2e 31  serLeaks,TLS 1.1
04d0: 2c 4f 70 65 6e 53 53 4c 33 2e 32 2c 2c 67 65 74  ,OpenSSL3.2,,get
04e0: 5f 75 72 6c 20 68 74 74 70 73 3a 2f 2f 74 6c 73  _url https://tls
04f0: 31 31 2e 62 72 6f 77 73 65 72 6c 65 61 6b 73 2e  11.browserleaks.
0500: 63 6f 6d 2c 2c 2c 66 61 69 6c 65 64 20 74 6f 20  com,,,failed to 
0510: 75 73 65 20 73 6f 63 6b 65 74 2c 2c 2c 31 0a 42  use socket,,,1.B
0520: 72 6f 77 73 65 72 4c 65 61 6b 73 2c 54 4c 53 20  rowserLeaks,TLS 
0530: 31 2e 30 2c 4f 70 65 6e 53 53 4c 33 2e 32 2c 2c  1.0,OpenSSL3.2,,
0540: 67 65 74 5f 75 72 6c 20 68 74 74 70 73 3a 2f 2f  get_url https://
0550: 74 6c 73 31 30 2e 62 72 6f 77 73 65 72 6c 65 61  tls10.browserlea
0560: 6b 73 2e 63 6f 6d 2c 2c 2c 66 61 69 6c 65 64 20  ks.com,,,failed 
0570: 74 6f 20 75 73 65 20 73 6f 63 6b 65 74 2c 2c 2c  to use socket,,,
0580: 31 0a 42 72 6f 77 73 65 72 4c 65 61 6b 73 2c 4a  1.BrowserLeaks,J
0590: 41 34 20 52 61 77 20 46 69 6e 67 65 72 70 72 69  A4 Raw Fingerpri
05a0: 6e 74 2c 4f 70 65 6e 53 53 4c 33 2e 32 2c 2c 67  nt,OpenSSL3.2,,g
05b0: 65 74 5f 64 61 74 61 20 68 74 74 70 73 3a 2f 2f  et_data https://
05c0: 74 6c 73 2e 62 72 6f 77 73 65 72 6c 65 61 6b 73  tls.browserleaks
05d0: 2e 63 6f 6d 2f 69 66 72 61 6d 65 2f 6a 61 34 2c  .com/iframe/ja4,
05e0: 2c 67 6c 6f 62 2c 74 2a 2c 2c 2c 0a 42 72 6f 77  ,glob,t*,,,.Brow
05f0: 73 65 72 4c 65 61 6b 73 2c 22 4a 41 34 20 52 61  serLeaks,"JA4 Ra
0600: 77 20 46 69 6e 67 65 72 70 72 69 6e 74 2c 20 4f  w Fingerprint, O
0610: 72 69 67 69 6e 61 6c 20 4f 72 64 65 72 22 2c 4f  riginal Order",O
0620: 70 65 6e 53 53 4c 33 2e 32 2c 2c 67 65 74 5f 64  penSSL3.2,,get_d
0630: 61 74 61 20 68 74 74 70 73 3a 2f 2f 74 6c 73 2e  ata https://tls.
0640: 62 72 6f 77 73 65 72 6c 65 61 6b 73 2e 63 6f 6d  browserleaks.com
0650: 2f 69 66 72 61 6d 65 2f 6a 61 34 5f 6f 2c 2c 67  /iframe/ja4_o,,g
0660: 6c 6f 62 2c 74 2a 2c 2c 2c 0a 42 72 6f 77 73 65  lob,t*,,,.Browse
0670: 72 4c 65 61 6b 73 2c 4a 41 33 20 52 61 77 20 46  rLeaks,JA3 Raw F
0680: 69 6e 67 65 72 70 72 69 6e 74 2c 4f 70 65 6e 53  ingerprint,OpenS
0690: 53 4c 33 2e 32 2c 2c 67 65 74 5f 64 61 74 61 20  SL3.2,,get_data 
06a0: 68 74 74 70 73 3a 2f 2f 74 6c 73 2e 62 72 6f 77  https://tls.brow
06b0: 73 65 72 6c 65 61 6b 73 2e 63 6f 6d 2f 69 66 72  serleaks.com/ifr
06c0: 61 6d 65 2f 6a 61 33 2c 2c 67 6c 6f 62 2c 2a 2c  ame/ja3,,glob,*,
06d0: 2c 2c 0a 42 72 6f 77 73 65 72 4c 65 61 6b 73 2c  ,,.BrowserLeaks,
06e0: 22 4a 41 33 20 52 61 77 20 46 69 6e 67 65 72 70  "JA3 Raw Fingerp
06f0: 72 69 6e 74 2c 20 4f 72 69 67 69 6e 61 6c 20 4f  rint, Original O
0700: 72 64 65 72 22 2c 4f 70 65 6e 53 53 4c 33 2e 32  rder",OpenSSL3.2
0710: 2c 2c 67 65 74 5f 64 61 74 61 20 68 74 74 70 73  ,,get_data https
0720: 3a 2f 2f 74 6c 73 2e 62 72 6f 77 73 65 72 6c 65  ://tls.browserle
0730: 61 6b 73 2e 63 6f 6d 2f 69 66 72 61 6d 65 2f 6a  aks.com/iframe/j
0740: 61 33 5f 6e 2c 2c 67 6c 6f 62 2c 2a 2c 2c 2c 0a  a3_n,,glob,*,,,.
0750: 42 72 6f 77 73 65 72 4c 65 61 6b 73 2c 45 6e 63  BrowserLeaks,Enc
0760: 72 79 70 74 65 64 20 43 6c 69 65 6e 74 20 48 65  rypted Client He
0770: 6c 6c 6f 2c 4f 70 65 6e 53 53 4c 33 2e 32 2c 2c  llo,OpenSSL3.2,,
0780: 67 65 74 5f 64 61 74 61 20 68 74 74 70 73 3a 2f  get_data https:/
0790: 2f 74 6c 73 2e 62 72 6f 77 73 65 72 6c 65 61 6b  /tls.browserleak
07a0: 73 2e 63 6f 6d 2f 69 66 72 61 6d 65 2f 65 63 68  s.com/iframe/ech
07b0: 2c 2c 67 6c 6f 62 2c 20 2a 46 61 6c 73 65 2a 2c  ,,glob, *False*,
07c0: 2c 2c 0a                                         ,,.