||9 years ago|
|core||9 years ago|
|debug||9 years ago|
|extra||9 years ago|
|test-scripts||9 years ago|
|.gitignore||9 years ago|
|LICENSE||9 years ago|
|README.md||9 years ago|
|TODO||9 years ago|
This library provide native Haskell TLS and SSL protocol implementation for server and client.
This provides a high-level implementation of a sensitive security protocol, eliminating a common set of security issues through the use of the advanced type system, high level constructions and common Haskell features.
- tiny code base (more than 20 times smaller than openSSL, and 10 times smaller than gnuTLS)
- client certificates.
- permissive license: BSD3.
- supported versions: SSL3, TLS1.0, TLS1.1, TLS1.2.
- key exchange supported: only RSA.
- bulk algorithm supported: any stream or block ciphers.
- supported extensions: secure renegociation, next protocol negotiation (draft 2), server name indication.
The tools mentioned below are all available from the tls-debug package.
- Certificate issues
It's useful to run the following command, which will connect to the destination and retrieve the certificate chained used.
tls-retrievecertificate -d <destination> -p <port> -v -c
As an output it will print every certificates in the chain and will gives the issuer and subjects of each. It creates a chain where issuer of certificate is the subject of the next certificate part of the chain:
(subject #1, issuer #2) -> (subject #2, issuer #3) -> (subject #3, issuer #3)
A "CA is unknown" error indicates that your system doesn't have a certificate in the trusted store belonging to any of the node of the chain.