TLSSocket implementation that uses M2Crypto. This class uses OpenSSL’s BIO pairs for guaranteed async IO; all socket communication is handled by us (via the IOChannel). See:
http://www.openssl.org/docs/crypto/BIO_new_bio_pair.html
Inspired heavily by TwistedProtocolWrapper.py from M2Crypto.
kaa.Object
└─ kaa.IOChannel
└─ kaa.Socket
└─ kaa.net.tls.TLSSocketBase
└─ kaa.net.tls.M2TLSSocket
| close() | |
|---|---|
| starttls_client() | TODO: document me. |
| starttls_server() | |
| write() |
| tls | Emitted when a TLS handshake has been successfully completed. |
|---|
TODO: document me.
cert: filename to pem cert for local side key: private key file (if None, assumes key is in cert) dh: filename for Diffie-Hellman parameters (only used for server) verify: if True, checks that the peer cert is signed by a known CA check: 2-tuple (host, fingerprint) to control further peer cert checks:
- host: None: validate CN from host from connect();
- False: don’t do any CN checking string: require CN match the string
fingerprint: peer cert digest must match fingerprint, or None not to check.
kaa.Object
└─ kaa.IOChannel
└─ kaa.Socket
└─ kaa.net.tls.TLSSocketBase
└─ kaa.net.tls.TLSLiteSocket
| starttls_client() | |
|---|---|
| starttls_server() |
| tls | Emitted when a TLS handshake has been successfully completed. |
|---|
kaa.Object
└─ kaa.IOChannel
└─ kaa.Socket
└─ kaa.net.tls.TLSSocketBase
└─ kaa.net.tls.GNUTLSSocket
| handshake_client() | |
|---|---|
| handshake_server() |
| peer_certificate | read-only |
|---|
| tls | Emitted when a TLS handshake has been successfully completed. |
|---|