2017-03-17 Björn Freise Added certificate creation using ECDSA * dtls/test/makecerts_ec.bat: creates ca-cert_ec.pem, keycert_ec.pem and server-cert_ec.pem * dtls/test/openssl_ca.cnf and openssl_server.cnf: Added HOME to be able to use the conf file under windows 2017-03-17 Björn Freise Added an interface in SSLConnection() to access SSLContext() and SSL() for manipulating settings during creation * dtls/openssl.py: - Added utility functions EC_curve_nist2nid() and EC_curve_nid2nist() * dtls/patch.py: - Extended wrap_socket() arguments with callbacks for user config functions of ssl context and ssl session values - Extended SSLSocket() arguments with callbacks for user config functions of ssl context and ssl session values * dtls/sslconnection.py: - Extended SSLConnection() arguments with callbacks for user config functions of ssl context and ssl session values - During the init of client and server the corresponding user config functions are called (if given) - Added new classes SSLContext() [set_ciphers(), set_sigalgs(), set_curves(), set_ecdh_curve(), build_cert_chain(), set_ssl_logging()] and SSL() [set_mtu(), set_link_mtu()] 2017-03-17 Björn Freise Added methods getting the curves supported by the runtime openSSL lib * dtls/openssl.py: - Added class _EllipticCurve() for easy handling of the builtin curves - Added wrapper get_elliptic_curves() - which uses _EllipticCurve() - Added EC_get_builtin_curves(), EC_KEY_new_by_curve_name() and EC_KEY_free() - Added OBJ_nid2sn() for translating numeric ids to names * dtls/util.py: Added _EC_KEY() derived from _Rsrc() with own free/del method 2017-03-17 Björn Freise Added methods for setting and getting the curves used during negotiation and encryption * dtls/openssl.py: - Added SSL_CTX_set1_curves() and SSL_CTX_set1_curves_list() - Added SSL_CTX_set_ecdh_auto() and SSL_CTX_set_tmp_ecdh() - Added SSL_get1_curves(), SSL_get_shared_curve(), SSL_set1_curves() and SSL_set1_curves_list() 2017-03-17 Björn Freise Added methods for setting the signature algorithms * dtls/openssl.py: - Added SSL_CTX_set1_client_sigalgs_list(), SSL_CTX_set1_client_sigalgs(), SSL_CTX_set1_sigalgs_list() and SSL_CTX_set1_sigalgs() - Added SSL_set1_client_sigalgs_list(), SSL_set1_client_sigalgs(), SSL_set1_sigalgs_list() and SSL_set1_sigalgs() 2017-03-17 Björn Freise Added method SSL_CTX_build_cert_chain() * dtls/openssl.py: Added SSL_CTX_build_cert_chain() and corresponding constants 2017-03-17 Björn Freise Added methods *_clear_options() and *_get_options() * dtls/openssl.py: - Added SSL_CTX_clear_options() and SSL_CTX_get_options() - Added SSL_clear_options() and SSL_get_options() 2017-03-17 Björn Freise Added new methods for DTLSv1.2 * dtls/err.py: Added error code ERR_WRONG_VERSION_NUMBER * dtls/openssl.py: Added DTLS_server_method(), DTLSv1_2_server_method() and DTLSv1_2_client_method() * dtls/patch.py: Default protocol DTLS for ssl.wrap_socket() and ssl.SSLSocket() * dtls/sslconnection.py: - Introduced PROTOCOL_DTLSv1_2 and PROTOCOL_DTLS (the latter one is a synonym for the "higher" version) - Updated _init_client() and _init_server() with the new protocol methods - Default protocol DTLS for SSLConnection() - Return on ERR_WRONG_VERSION_NUMBER if client and server cannot agree on protocol version * dtls/test/unit.py: - Extended test_get_server_certificate() to iterate over the different protocol combinations - Extended test_protocol_dtlsv1() to try the different protocol combinations between client and server 2017-03-17 Björn Freise Updating openSSL libs to v1.0.2l-dev * dtls/openssl.py: Added mtu-functions SSL_set_mtu() and DTLS_set_link_mtu() * dtls/prebuilt/win32-*: Updated libs for x86 and x86_64 to version 1.0.2l-dev * dtls/sslconnection.py: mtu size set hardcoded to 1500 - otherwise the windows implementation has problems 2017-03-17 Björn Freise Added interface for SSL_CTX_set_info_callback() * dtls/openssl.py: - Added methods SSL_CTX_set_info_callback(), SSL_state_string_long(), SSL_alert_type_string_long() and SSL_alert_desc_string_long() - Added constants for state and error evaluation during callback * dtls/sslconnection.py: Added _ssl_logging_cb() as default callback function - only outputs messages when logger is active 2017-03-17 Björn Freise SSL_write() extended to handle ctypes.Array as data * dtls/openssl.py: SSL_write() can handle ctypes.Array data * dtls/sslconnection.py: Added missing import ERR_BOTH_KEY_CERT_FILES * dtls/test/simple_client.py: Added basic test client to use with dtls/test/echo_seq.py 2017-03-17 Björn Freise Beautified lists and maps, grouped imports for easy merges in the future - no changed functionality! * dtls/openssl.py: - Ordered constants according to header file from openSSL - Beautified __all__-list and map for _make_function() in order to easy merges in the future - Added a few returns in order to evaluate the success of the called methods * dtls/patch.py: Grouped imports in the following order - system, local * dtls/sslconnection.py: ssl protocol not hardcoded anymore for forked objects * dtls/x509.py: logger messages working again 2017-02-27 Ray Brown * dtls/openssl.py: support reading directly into given buffer instead of forcing buffer copy (for ssl module compatibility) * dtls/sslconnection.py: in-situ receive support, as above * dtls/patch.py: various changes for compatibility with the ssl module of Python 2.7.12; note that the ssl module's new SSLContext is not supported * dtls/test/unit.py: changes to support the updated ssl module, including fix of deprecation warnings * setup.py: increase version to 1.0.2 2014-01-18 Ray Brown * setup.py: Increase version to 1.0.1 for release to PyPI 2014-01-18 Jayson Vantuyl * sslconnection.py: fix missing error code import 2014-01-18 Ray Brown * setup.py: First stable version, 1.0.0 * dtls/test/makecerts: Generate valid and current certificates for unit test suite * dtls/test/openssl_ca.cnf: Configuration file for CA certificate * dtls/test/openssl_server.cnf: Configuration file for server certificate * dtls/test/certs/ca-cert.pem: updated certificate, valid for 10 years * dtls/test/certs/server-cert.pem: updated certificate, valid for 10 years * dtls/test/certs/keycert.pem: updated server certificate from server-cert.pem, along with that certificate's private key * dtls/test/server-key.pem: deleted (it was not needed) 2012-12-31 Ray Brown * All: Version 0.1.0: initial public release