<commit_before># TLS Prober

TLS Prober is a tool for identifying the implementation in use by SSL/TLS
servers. It analyses the behaviour of a server by sending a range of probes
then comparing the responses with a database of known signatures. Key features
include:

 * Requires no knowledge of the server configuration.

 * Does not rely on the supported cipher suites (since administrators often
   change those).

 * Successfully identifies openssl, schannel, Java (JSSE), wolfSSL (previously
   CyaSSL), GnuTLS, MatrixSSL, mbedTLS (previously PolarSSL).

 * Supports both pure SSL/TLS protocols like HTTPS and those that use STARTTLS
   such as SMTP and POP3.

 * Reslient against differences in the build options used by a given server.

 * Extensible - you can easily record the signatures of additional
   implementations.

# Installation

Simply clone the repository then run it!

```
git clone <url goes here>
```

TLS Prober requires python and has been tested using python 2.7, it is
possible it may work with earlier versions too.

Note that the current implementation will not work on Windows since it makes
use of the select() system call which is not available on that platform.

## Basic Usage
<commit_msg>Add the clone URL.<commit_after># TLS Prober

TLS Prober is a tool for identifying the implementation in use by SSL/TLS
servers. It analyses the behaviour of a server by sending a range of probes
then comparing the responses with a database of known signatures. Key features
include:

 * Requires no knowledge of the server configuration.

 * Does not rely on the supported cipher suites (since administrators often
   change those).

 * Successfully identifies openssl, schannel, Java (JSSE), wolfSSL (previously
   CyaSSL), GnuTLS, MatrixSSL, mbedTLS (previously PolarSSL).

 * Supports both pure SSL/TLS protocols like HTTPS and those that use STARTTLS
   such as SMTP and POP3.

 * Reslient against differences in the build options used by a given server.

 * Extensible - you can easily record the signatures of additional
   implementations.

# Installation

Simply clone the repository then run it!

```
git clone https://github.com/WestpointLtd/tls_prober.git
```

TLS Prober requires python and has been tested using python 2.7, it is
possible it may work with earlier versions too.

Note that the current implementation will not work on Windows since it makes
use of the select() system call which is not available on that platform.

## Basic Usage

{'fraction_non_alphanumeric': 0.04593070104754231, 'fraction_numerical': 0.0024174053182917004, 'mean_word_length': 4.20545073375262, 'pattern_counts': {'":': 0, '<': 4, '<?xml version=': 0, '>': 4, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2384469', 'n_tokens_mistral': 654, 'n_tokens_neox': 613, 'n_words': 357}