|Maintainer||Vincent Hanquez <firstname.lastname@example.org>|
- ciphersuite_all :: [Cipher]
- ciphersuite_medium :: [Cipher]
- ciphersuite_strong :: [Cipher]
- ciphersuite_unencrypted :: [Cipher]
- cipher_null_SHA1 :: Cipher
- cipher_null_MD5 :: Cipher
- cipher_RC4_128_MD5 :: Cipher
- cipher_RC4_128_SHA1 :: Cipher
- cipher_AES128_SHA1 :: Cipher
- cipher_AES256_SHA1 :: Cipher
- cipher_AES128_SHA256 :: Cipher
- cipher_AES256_SHA256 :: Cipher
- certificateChecks :: [[X509] -> IO CertificateUsage] -> [X509] -> IO CertificateUsage
- certificateVerifyChain :: CertificateStore -> [X509] -> IO CertificateUsage
- certificateVerifyAgainst :: X509 -> X509 -> Bool
- certificateSelfSigned :: X509 -> Bool
- certificateVerifyDomain :: String -> [X509] -> CertificateUsage
- certificateVerifyValidity :: Day -> [X509] -> CertificateUsage
- certificateFingerprint :: (ByteString -> ByteString) -> X509 -> ByteString
- connectionClient :: CPRG g => String -> String -> TLSParams -> g -> IO Context
- fileReadCertificate :: FilePath -> IO X509
- fileReadPrivateKey :: FilePath -> IO PrivateKey
Cipher related definition
all encrypted ciphers supported ordered from strong to weak. this choice of ciphersuite should satisfy most normal need
AES cipher (128 bit key), RSA key exchange and SHA256 for digest
AES cipher (256 bit key), RSA key exchange and SHA256 for digest
CertificateUsageAccept if all the checks pass, or the first
verify a certificates chain using the system certificates available.
each certificate of the list is verified against the next certificate, until it can be verified against a system certificate (system certificates are assumed as trusted)
This helper only check that the chain of certificate is valid, which means that each items received are signed by the next one, or by a system certificate. Some extra checks need to be done at the user level so that the certificate chain received make sense in the context.
for example for HTTP, the user should typically verify the certificate subject match the URL of connection.
TODO: verify validity, check revocation list if any, add optional user output to know the rejection reason.
verify a certificate against another one. the first certificate need to be signed by the second one for this function to succeed.
Verify that the given certificate chain is application to the given fully qualified host name.
Verify certificate validity period that need to between the bounds of the certificate. TODO: maybe should verify whole chain.
hash the certificate signing data using the supplied hash function.
connectionClient host port param rng opens a TCP client connection
to a destination host and port description (number or name). For
import Network.TLS.Extra import Crypto.Random.AESCtr ... conn makeSystem>= connectionClient 192.168.2.2 7777 defaultParams
will make a new RNG (using cprng-aes) and connect to IP 192.168.2.2 on port 7777.
read one X509 certificate from a file.
the certificate must be in the usual PEM format with the TRUSTED CERTIFICATE or CERTIFICATE pem name.
If no valid PEM encoded certificate is found in the file this function will raise an error.