Skip to main content

Add PSK support to pyOpenSSL

Project description

pyopenssl-psk

Add PSK support to pyOpenSSL.

Installation

$ pip install pyopenssl-psk

API

Patch Method

  • patch_context()

    Add PSK related methods to the OpenSSL.SSL.Context class.

from openssl_psk import patch_context

patch_context()

Server Methods

  • Context.use_psk_identity_hint(hint: bytes) -> None

    Set the server PSK identity hint.

  • Context.set_psk_server_callback(callback: server_callback) -> None

    Set a callback to populate the server PSK.

    server_callback(connection: Connection, client_identity: bytes) -> psk: bytes

    User provided callback function to populate the connection PSK.

from OpenSSL.SSL import Context, Connection, TLSv1_2_METHOD

PSK_MAP = {
    b'pre_shared_key_identity': b'pre_shared_key',
}

def server_callback(conn, client_identity):
    return PSK_MAP[client_identity]

ctx = Context(TLSv1_2_METHOD)
ctx.set_cipher_list(b'PSK')
ctx.use_psk_identity_hint(b'pre_shared_key_identity_hint')
ctx.set_psk_server_callback(server_callback)
server = Connection(ctx)

Client Methods

  • Context.set_psk_client_callback(callback: client_callback) -> None

    Set a callback to populate the client PSK identity and PSK.

    client_callback(connection: Connection, identity_hint: bytes) -> tuple(psk_identity: bytes, psk: bytes)

    User provided callback function to populate the connection PSK identity and PSK.

from OpenSSL.SSL import Context, Connection, TLSv1_2_METHOD

def client_callback(conn, identity_hint):
    return (b'pre_shared_key_identity', b'pre_shared_key')

ctx = Context(TLSv1_2_METHOD)
ctx.set_cipher_list(b'PSK')
ctx.set_psk_client_callback(client_callback)
client = Connection(ctx)

See OpenSSL.SSL documentation for more information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyopenssl-psk-1.0.0.tar.gz (7.4 kB view hashes)

Uploaded Source

Built Distribution

pyopenssl_psk-1.0.0-py2.py3-none-any.whl (7.6 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page