Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.mixmin.net!eweka.nl!hq-usenetpeers.eweka.nl!xlned.com!feeder7.xlned.com!news2.euro.net!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.001 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'python.': 0.02; 'url:pypi': 0.03; 'socket': 0.05; 'pypi': 0.07; 'subject:ANN': 0.07; 'python': 0.09; 'rfc': 0.09; 'url:github': 0.09; 'passing': 0.15; 'af_inet,': 0.16; 'packages:': 0.16; 'received:74.125.82.178': 0.16; 'sock': 0.16; 'socket.': 0.16; 'tcp': 0.16; 'url:foo': 0.16; 'library,': 0.17; 'ssl': 0.17; 'module': 0.19; 'equivalent': 0.20; 'import': 0.21; "python's": 0.23; 'sets': 0.23; 'environment.': 0.27; 'message- id:@mail.gmail.com': 0.27; 'ray': 0.29; 'socket,': 0.29; 'hosted': 0.30; 'function': 0.30; 'url:python': 0.32; 'received:74.125.82': 0.33; 'skip:s 30': 0.33; 'to:addr:python-list': 0.33; 'received:google.com': 0.34; 'project': 0.34; 'server': 0.35; 'received:74.125': 0.36; 'url:org': 0.36; 'announce': 0.36; 'client': 0.36; 'does': 0.37; 'subject:: ': 0.38; 'instead': 0.39; 'to:addr:python.org': 0.39; 'takes': 0.39; 'header:Received:5': 0.40; 'easy': 0.60; 'side': 0.61; 'useful.': 0.65; 'url:0': 0.67; 'manner': 0.74; 'proves': 0.84 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=liquibits.com; s=google; h=mime-version:sender:x-originating-ip:date:x-google-sender-auth :message-id:subject:from:to:content-type; bh=/Y7C0y06vSJEqlhCBI8h6rdZ1583HaPiMzSudrWfdKM=; b=vXteYFudDkm6ECshDzkUtIzUf4huYg8SFqRyXIerMzmn/1i9+D1VytHTcZjypLTHCD WLnCGS6MhJnjy/MKGxRC5t3sGxYmhbpSBPUvlJykvh1SmX1K6QB89wcfLS/CFbwAPlfV S2rSKBTfVCR9qsfN7/gRODG9y3ckyqfQNMqDg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:sender:x-originating-ip:date:x-google-sender-auth :message-id:subject:from:to:content-type:x-gm-message-state; bh=/Y7C0y06vSJEqlhCBI8h6rdZ1583HaPiMzSudrWfdKM=; b=K2y9EKYzTZwQ1nA4oonU3nemaiTK6jtCN20zbVKMz8ombhymje2FNxSwdWhqX6tlTZ X5NmAM91z4v6Mem61cGbYKqunn9kim4vaXe1cWJ/+lYy6vkFpU0FYe9dpc+9Q1CvDSyB DGK+C+Ge3lJu8y8DGxBf9TuL9f5lirziJMgih4ISI4DIiIoQR4Cydh4OPdBZTx2KPU10 nBff7YQsbZG9RpajB+JCpXqhjQUWVnebb0FbmFmUMGQHgW0DZ6JyV8coNn8qk047olcX YNZ771lPZBVFK6TmMz+WcV5Pm9NvKBAHDbWxOUDjfzv9dGQbe7DBcxemINDI+/8tN5P4 6IrA== MIME-Version: 1.0 Sender: ray@liquibits.com X-Originating-IP: [76.104.190.126] Date: Wed, 2 Jan 2013 11:21:10 -0800 X-Google-Sender-Auth: ke8pwbhM5X0Vckr0_eV2eRbc-Ug Subject: ANN: PyDTLS From: rbit To: python-list@python.org Content-Type: multipart/alternative; boundary=f46d043c06441c2b4604d2532642 X-Gm-Message-State: ALoCoQk6iNR7mkMIGwjeCRfJn3qgAiX5mcTfmp7yKYVacp3XuHDHh9tKTR7EAtbVnrC1v9QiZ0Yr X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 63 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1357154477 news.xs4all.nl 6863 [2001:888:2000:d::a6]:33266 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:36007 --f46d043c06441c2b4604d2532642 Content-Type: text/plain; charset=ISO-8859-1 I would like to announce Datagram Transport Layer Security for Python. From the top of the project README: PyDTLS brings Datagram Transport Layer Security (DTLS - RFC 6347: http://tools.ietf.org/html/rfc6347) to the Python environment. In a nutshell, DTLS brings security (encryption, server authentication, user authentication, and message authentication) to UDP datagram payloads in a manner equivalent to what SSL/TLS does for TCP stream content. DTLS is now very easy to use in Python. If you're familiar with the ssl module in Python's standard library, you already know how. All it takes is passing a datagram/UDP socket to the *wrap_socket* function instead of a stream/TCP socket. Here's how one sets up the client side of a connection: import ssl from socket import socket, AF_INET, SOCK_DGRAM from dtls import do_patch do_patch() sock = ssl.wrap_socket(socket(AF_INET, SOCK_DGRAM)) sock.connect(('foo.bar.com', 1234)) sock.send('Hi there') The project is hosted at https://github.com/rbit/pydtls. PyPI has packages: http://pypi.python.org/pypi/Dtls/0.1.0. I hope it proves useful. Ray --f46d043c06441c2b4604d2532642 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable I would like to announce Datagram Transport Layer Security for Python. From= the top of the project README:

PyDT= LS brings Datagram Transport Layer Security (DTLS - RFC 6347:
http://tools.ietf.org/html/rfc6347= ) to the Python environment. In a
nutshell, DTLS brings security (encryption, server authentication,
user = authentication, and message authentication) to UDP datagram
payloads in = a manner equivalent to what SSL/TLS does for TCP stream
content.

DTLS is now very easy to use in Python. If you're familiar with the=
ssl module in Python's standard library, you already know how. All = it
takes is passing a datagram/UDP socket to the *wrap_socket* function<= br> instead of a stream/TCP socket. Here's how one sets up the client side<= br>of a connection:

=A0=A0=A0 import ssl
=A0=A0=A0 from socket im= port socket, AF_INET, SOCK_DGRAM
=A0=A0=A0 from dtls import do_patch
= =A0=A0=A0 do_patch()
=A0=A0=A0 sock =3D ssl.wrap_socket(socket(AF_INET, SOCK_DGRAM))
=A0=A0= =A0 sock.connect(('foo.bar.com',= 1234))
=A0=A0=A0 sock.send('Hi there')

The project= is hosted at https://github.com= /rbit/pydtls. PyPI has packages: http://pypi.python.org/pypi/Dtls/0.1.0.

I hope it proves useful.

Ray

--f46d043c06441c2b4604d2532642--