[Twisted-Python] twisted.internet.ssl

Chris Armstrong carmstro at twistedmatrix.com
Wed Aug 8 19:03:30 MDT 2001


So how hard would it be too hook this up to twisted.spread? It'd be cool
if there was a really transparent way to use PB over SSL.

On Wed, Aug 08, 2001 at 02:41:30PM +0300, Itamar Shtull-Trauring wrote:
> 1) You'll need pyopenssl from pyopenssl.sf.net.
> 
> 2) This is totally untested.
> 
> Hint: pyopenssl 0.3 segfaults if you try to write to an SSL connection 
> before you connect().
> 
> -- 
> itamar(at)shtull-trauring.org  ||  itamar(at)zoteca.com
> http://itamarst.org            ||  http://www.zoteca.com

> # System imports
> from OpenSSL import SSL
> 
> # sibling imports
> import tcp
> 
> class Client(tcp.Client):
>     """I am an SSL client.
>     """
>     def createContext(self):
>         """
>         Create a SSL context. Subclasses may want to override.
>         """
>         self.ctx = SSL.Context(SSL.SSLv23_METHOD)
> 
>     def createInternetSocket(self):
>         """(internal) create an SSL socket
>         """
>         sock = tcp.Client.createInternetSocket(self)
>         return SSL.Connection(self.ctx, sock)
> 
> class Port(tcp.Port):
>     """I am an SSL server.
>     """
>     def createContext(self):
>         """
>         Create a SSL context. Subclasses may want to override.
>         """
>         self.ctx = SSL.Context(SSL.SSLv23_METHOD)
>         self.ctx.use_certificate_file('server.pem')
>         self.ctx.use_privatekey_file('server.pem')
>     
>     def createInternetSocket(self):
>         """(internal) create an SSL socket
>         """
>         sock = tcp.Port.createInternetSocket(self)
>         return SSL.Connection(self.ctx, sock)

> -----BEGIN CERTIFICATE-----
> MIIDBjCCAm+gAwIBAgIBATANBgkqhkiG9w0BAQQFADB7MQswCQYDVQQGEwJTRzER
> MA8GA1UEChMITTJDcnlwdG8xFDASBgNVBAsTC00yQ3J5cHRvIENBMSQwIgYDVQQD
> ExtNMkNyeXB0byBDZXJ0aWZpY2F0ZSBNYXN0ZXIxHTAbBgkqhkiG9w0BCQEWDm5n
> cHNAcG9zdDEuY29tMB4XDTAwMDkxMDA5NTEzMFoXDTAyMDkxMDA5NTEzMFowUzEL
> MAkGA1UEBhMCU0cxETAPBgNVBAoTCE0yQ3J5cHRvMRIwEAYDVQQDEwlsb2NhbGhv
> c3QxHTAbBgkqhkiG9w0BCQEWDm5ncHNAcG9zdDEuY29tMFwwDQYJKoZIhvcNAQEB
> BQADSwAwSAJBAKy+e3dulvXzV7zoTZWc5TzgApr8DmeQHTYC8ydfzH7EECe4R1Xh
> 5kwIzOuuFfn178FBiS84gngaNcrFi0Z5fAkCAwEAAaOCAQQwggEAMAkGA1UdEwQC
> MAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRl
> MB0GA1UdDgQWBBTPhIKSvnsmYsBVNWjj0m3M2z0qVTCBpQYDVR0jBIGdMIGagBT7
> hyNp65w6kxXlxb8pUU/+7Sg4AaF/pH0wezELMAkGA1UEBhMCU0cxETAPBgNVBAoT
> CE0yQ3J5cHRvMRQwEgYDVQQLEwtNMkNyeXB0byBDQTEkMCIGA1UEAxMbTTJDcnlw
> dG8gQ2VydGlmaWNhdGUgTWFzdGVyMR0wGwYJKoZIhvcNAQkBFg5uZ3BzQHBvc3Qx
> LmNvbYIBADANBgkqhkiG9w0BAQQFAAOBgQA7/CqT6PoHycTdhEStWNZde7M/2Yc6
> BoJuVwnW8YxGO8Sn6UJ4FeffZNcYZddSDKosw8LtPOeWoK3JINjAk5jiPQ2cww++
> 7QGG/g5NDjxFZNDJP1dGiLAxPW6JXwov4v0FmdzfLOZ01jDcgQQZqEpYlgpuI5JE
> WUQ9Ho4EzbYCOQ==
> -----END CERTIFICATE-----
> -----BEGIN RSA PRIVATE KEY-----
> MIIBPAIBAAJBAKy+e3dulvXzV7zoTZWc5TzgApr8DmeQHTYC8ydfzH7EECe4R1Xh
> 5kwIzOuuFfn178FBiS84gngaNcrFi0Z5fAkCAwEAAQJBAIqm/bz4NA1H++Vx5Ewx
> OcKp3w19QSaZAwlGRtsUxrP7436QjnREM3Bm8ygU11BjkPVmtrKm6AayQfCHqJoT
> ZIECIQDW0BoMoL0HOYM/mrTLhaykYAVqgIeJsPjvkEhTFXWBuQIhAM3deFAvWNu4
> nklUQ37XsCT2c9tmNt1LAT+slG2JOTTRAiAuXDtC/m3NYVwyHfFm+zKHRzHkClk2
> HjubeEgjpj32AQIhAJqMGTaZVOwevTXvvHwNEH+vRWsAYU/gbx+OQB+7VOcBAiEA
> oolb6NMg/R3enNPvS1O4UU1H8wpaF77L4yiSWlE0p4w=
> -----END RSA PRIVATE KEY-----
> -----BEGIN CERTIFICATE REQUEST-----
> MIIBDTCBuAIBADBTMQswCQYDVQQGEwJTRzERMA8GA1UEChMITTJDcnlwdG8xEjAQ
> BgNVBAMTCWxvY2FsaG9zdDEdMBsGCSqGSIb3DQEJARYObmdwc0Bwb3N0MS5jb20w
> XDANBgkqhkiG9w0BAQEFAANLADBIAkEArL57d26W9fNXvOhNlZzlPOACmvwOZ5Ad
> NgLzJ1/MfsQQJ7hHVeHmTAjM664V+fXvwUGJLziCeBo1ysWLRnl8CQIDAQABoAAw
> DQYJKoZIhvcNAQEEBQADQQA7uqbrNTjVWpF6By5ZNPvhZ4YdFgkeXFVWi5ao/TaP
> Vq4BG021fJ9nlHRtr4rotpgHDX1rr+iWeHKsx4+5DRSy
> -----END CERTIFICATE REQUEST-----


-- 
Chris Armstrong                        carmstro at twistedmatrix.com
http://twistedmatrix.com/~carmstro     carmstro at dynup.net





More information about the Twisted-Python mailing list