[Twisted-Python] twisted.internet.ssl
Chris Armstrong
carmstro at twistedmatrix.com
Wed Aug 8 21:03:30 EDT 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