# Summary

CryptoParser is a cryptographic protocol (TLS, SSH) and security-related protocol piece (HTTP headers) parser. It is neither a comprehensive nor a secure implementation of any cryptographic protocol. The goal is to support testing cryptographic libraries or analysing cryptography-realted settings of application servers such as CryptoLyzer does.

## Usage

### Pip

    pip install cryptoparser

## Support

### Python implementation

- CPython (3.9+)

- PyPy (3.9+)

### Operating systems

- Linux

- macOS

- Windows

## Documentation

Detailed documentation is available on the project’s Read the Docs site.

## License

The code is available under the terms of Mozilla Public License Version 2.0 (MPL 2.0).

A non-comprehensive, but straightforward description of MPL 2.0 can be found at Choose an open source license website.

## Credits

- NLnet Foundation and NGI Assure, supports the project part of the Next Generation Internet initiative.

# Details

The main purpose of creating this library is the fact, that cryptography protocol analysis differs in many aspects from establishing a connection using a cryptographic protocol. Analysis is mostly testing where we trigger special and corner cases of the protocol and we also trying to establish connection with hardly supported, experimental, obsoleted or even deprecated mechanisms or algorithms which are may or may not supported by the latest or any version of an implementation of the cryptographic protocol.

On the one hand it is neither a comprehensive nor a secure implementation of any cryptographic protocol. On the one hand library implements only the absolutely necessary parts of the protocol. On the other it contains completely insecure algorithms and mechanisms. It is not designed and contraindicated to use this library establishing secure connections. If you are searching for cryptographic protocol implementation, there are several existing wrappers and native implementations for Python (eg: M2Crypto, pyOpenSSL, Paramiko, …).

- Features
  - Supported Protocols
    - Internet Key Exchange (IKE)
    - Secure Shell (SSH)
    - Secure Socket Layer (SSL)
    - Transport Layer Security (TLS)
    - Domain Name System (DNS)
  - Protocol Specific Features
    - Internet Key Exchange (IKE)
    - Hypertext Transfer Protocol (HTTP)
    - Transport Layer Security (TLS)
    - Secure Shell (SSH)
    - Domain Name System (DNS)
- Development

# History

- Changelog
  - 1.2.0 - 2026-05-05
  - 1.1.1 - 2026-05-03
  - 1.1.0 - 2026-02-13
  - 1.0.2 - 2025-12-30
  - 1.0.1 - 2025-12-07
  - 1.0.0 - 2025-01-05
  - 0.12.6 - 2024-12-08
  - 0.12.5 - 2024-05-25
  - 0.12.4 - 2024-04-28
  - 0.12.3 - 2024-03-05
  - 0.12.2 - 2024-01-11
  - 0.12.1 - 2023-12-13
  - 0.12.0 - 2023-11-23
  - 0.11.2 - 2023-11-13
  - 0.11.1 - 2023-11-06
  - 0.11.0 - 2023-10-28
  - 0.10.3 - 2023-10-12
  - 0.10.2 - 2023-08-28
  - 0.10.1 - 2023-08-29
  - 0.10.0 - 2023-08-03
  - 0.9.1 - 2022-06-22
  - 0.9.0 - 2023-04-29
  - 0.8.5 - 2023-04-02
  - 0.8.4 - 2023-01-22
  - 0.8.2 - 2022-10-10
  - 0.8.0 - 2022-01-18
  - 0.7.3 - 2021-12-26
  - 0.7.2 - 2021-10-07
  - 0.7.1 - 2021-09-20
  - 0.7.0 - 2021-09-02
  - 0.6.0 - 2021-05-27
  - 0.5.0 - 2021-04-08
  - 0.4.0 - 2021-01-30
  - 0.3.1 - 2020-09-15
  - 0.3.0 - 2020-04-30
  - 0.2.0 - 2019-12-02
  - 0.1.0 - 2019-03-20