Repository: qpid-proton Updated Branches: refs/heads/master 6e63fd787 -> 2d9c08699
PROTON-1445: c proactor SSL support Fix regression introduced by PROTON-1445 that caused the AMQP protocol header to be sent too early, breaking SSL communication. Added proactor.c test for SSL connections. Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/2d9c0869 Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/2d9c0869 Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/2d9c0869 Branch: refs/heads/master Commit: 2d9c086997038698267fa66d9fbccb9b6e6306e4 Parents: 6e63fd7 Author: Alan Conway <[email protected]> Authored: Mon Mar 27 19:41:11 2017 -0400 Committer: Alan Conway <[email protected]> Committed: Mon Mar 27 19:57:24 2017 -0400 ---------------------------------------------------------------------- proton-c/include/proton/ssl.h | 2 +- proton-c/src/proactor/libuv.c | 7 +- proton-c/src/ssl/openssl.c | 1 - proton-c/src/tests/CMakeLists.txt | 3 + proton-c/src/tests/proactor.c | 69 ++++++++++++++++++- proton-c/src/tests/ssl_certs/README.txt | 24 +++++++ .../src/tests/ssl_certs/tclient-certificate.p12 | Bin 0 -> 1032 bytes .../src/tests/ssl_certs/tclient-certificate.pem | 19 +++++ proton-c/src/tests/ssl_certs/tclient-full.p12 | Bin 0 -> 2476 bytes .../src/tests/ssl_certs/tclient-private-key.pem | 30 ++++++++ .../src/tests/ssl_certs/tserver-certificate.p12 | Bin 0 -> 1032 bytes .../src/tests/ssl_certs/tserver-certificate.pem | 19 +++++ proton-c/src/tests/ssl_certs/tserver-full.p12 | Bin 0 -> 2476 bytes .../src/tests/ssl_certs/tserver-private-key.pem | 30 ++++++++ proton-c/src/tests/test_config.h.in | 26 +++++++ 15 files changed, 224 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/2d9c0869/proton-c/include/proton/ssl.h ---------------------------------------------------------------------- diff --git a/proton-c/include/proton/ssl.h b/proton-c/include/proton/ssl.h index 4e5a0ca..4e5ae77 100644 --- a/proton-c/include/proton/ssl.h +++ b/proton-c/include/proton/ssl.h @@ -153,7 +153,7 @@ PN_EXTERN void pn_ssl_domain_free(pn_ssl_domain_t *domain); * protected. * @return 0 on success */ -PN_EXTERN int pn_ssl_domain_set_credentials(pn_ssl_domain_t *domain, +PN_EXTERN int pn_ssl_domain_set_credentials(pn_ssl_domain_t *domain, const char *credential_1, const char *credential_2, const char *password); http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/2d9c0869/proton-c/src/proactor/libuv.c ---------------------------------------------------------------------- diff --git a/proton-c/src/proactor/libuv.c b/proton-c/src/proactor/libuv.c index 18d9101..aa10f83 100644 --- a/proton-c/src/proactor/libuv.c +++ b/proton-c/src/proactor/libuv.c @@ -504,7 +504,6 @@ static void on_connect(uv_connect_t *connect, int err) { pconnection_t *pc = (pconnection_t*)connect->data; if (!err) { pc->connected = 1; - pn_connection_open(pc->driver.connection); work_notify(&pc->work); uv_freeaddrinfo(pc->addr.getaddrinfo.addrinfo); /* Done with address info */ pc->addr.getaddrinfo.addrinfo = NULL; @@ -840,6 +839,10 @@ static bool leader_process_pconnection(pconnection_t *pc) { /* We can't do anything while a write request is pending */ return false; } + /* Must process INIT and BOUND events before we do any IO-related stuff */ + if (pn_connection_driver_has_event(&pc->driver)) { + return true; + } if (pn_connection_driver_finished(&pc->driver)) { uv_mutex_lock(&pc->lock); pc->wake = W_CLOSED; /* wake() is a no-op from now on */ @@ -851,7 +854,6 @@ static bool leader_process_pconnection(pconnection_t *pc) { pn_millis_t next_tick = leader_tick(pc); pn_rwbytes_t rbuf = pn_connection_driver_read_buffer(&pc->driver); pn_bytes_t wbuf = pn_connection_driver_write_buffer(&pc->driver); - /* If we still have no events, make async UV requests */ if (!pn_connection_driver_has_event(&pc->driver)) { int err = 0; @@ -1040,6 +1042,7 @@ void pn_proactor_cancel_timeout(pn_proactor_t *p) { int pn_proactor_connect(pn_proactor_t *p, pn_connection_t *c, const char *addr) { pconnection_t *pc = pconnection(p, c, false); if (pc) { + pn_connection_open(pc->driver.connection); /* Auto-open */ parse_addr(&pc->addr, addr); work_start(&pc->work); } else { http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/2d9c0869/proton-c/src/ssl/openssl.c ---------------------------------------------------------------------- diff --git a/proton-c/src/ssl/openssl.c b/proton-c/src/ssl/openssl.c index 0d7c40b..351b0aa 100644 --- a/proton-c/src/ssl/openssl.c +++ b/proton-c/src/ssl/openssl.c @@ -762,7 +762,6 @@ bool pn_ssl_get_protocol_name(pn_ssl_t *ssl0, char *buffer, size_t size ) const SSL_CIPHER *c; pni_ssl_t *ssl = get_ssl_internal(ssl0); - *buffer = '\0'; if (ssl->ssl && (c = SSL_get_current_cipher( ssl->ssl ))) { const char *v = SSL_CIPHER_get_version(c); if (v) { http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/2d9c0869/proton-c/src/tests/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/proton-c/src/tests/CMakeLists.txt b/proton-c/src/tests/CMakeLists.txt index 3ad114a..52983bc 100644 --- a/proton-c/src/tests/CMakeLists.txt +++ b/proton-c/src/tests/CMakeLists.txt @@ -19,6 +19,9 @@ add_definitions(${COMPILE_WARNING_FLAGS} ${COMPILE_PLATFORM_FLAGS}) +configure_file(test_config.h.in test_config.h) +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + if (ENABLE_VALGRIND AND VALGRIND_EXE) set(memcheck-cmd ${VALGRIND_EXE} --error-exitcode=42 --quiet --leak-check=full --trace-children=yes) http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/2d9c0869/proton-c/src/tests/proactor.c ---------------------------------------------------------------------- diff --git a/proton-c/src/tests/proactor.c b/proton-c/src/tests/proactor.c index b8c4088..80eeb9a 100644 --- a/proton-c/src/tests/proactor.c +++ b/proton-c/src/tests/proactor.c @@ -18,11 +18,13 @@ */ #include "test_tools.h" +#include "test_config.h" #include <proton/condition.h> #include <proton/connection.h> #include <proton/event.h> #include <proton/listener.h> #include <proton/proactor.h> +#include <proton/ssl.h> #include <proton/transport.h> #include <stdio.h> #include <stdlib.h> @@ -65,7 +67,7 @@ static void proactor_test_free(proactor_test_t *pts, size_t n) { #define PROACTOR_TEST_FREE(A) proactor_test_free(A, sizeof(A)/sizeof(*A)) static void save_condition(pn_event_t *e) { - /* FIXME aconway 2017-03-23: extend pn_event_condition to include listener */ + /* TODO aconway 2017-03-23: extend pn_event_condition to include listener */ last_condition[0] = '\0'; pn_condition_t *cond = NULL; if (pn_event_listener(e)) { @@ -283,7 +285,7 @@ static void test_connection_wake(test_t *t) { pn_connection_wake(c); TEST_ETYPE_EQUAL(t, PN_CONNECTION_WAKE, PROACTOR_TEST_RUN(pts)); TEST_ETYPE_EQUAL(t, PN_TRANSPORT_CLOSED, PROACTOR_TEST_RUN(pts)); - /* The pn_connection_t is still valid so wake is legal but a no-op */ + /* The pn_connection_t is still valid so wake is legal but a no-op */ pn_connection_wake(c); PROACTOR_TEST_FREE(pts); @@ -465,6 +467,68 @@ static void test_free_cleanup(test_t *t) { pn_connection_free(pn_connection()); } +/* TODO aconway 2017-03-27: need windows version with .p12 certs */ +#define CERTFILE(NAME) CMAKE_CURRENT_SOURCE_DIR "/ssl_certs/" NAME ".pem" + +static pn_event_type_t ssl_handler(test_t *t, pn_event_t *e) { + pn_connection_t *c = pn_event_connection(e); + switch (pn_event_type(e)) { + + case PN_CONNECTION_BOUND: { + bool incoming = (pn_connection_state(c) & PN_LOCAL_UNINIT); + pn_ssl_domain_t *ssld = pn_ssl_domain(incoming ? PN_SSL_MODE_SERVER : PN_SSL_MODE_CLIENT); + TEST_CHECK(t, 0 == pn_ssl_domain_set_credentials( + ssld, CERTFILE("tserver-certificate"), CERTFILE("tserver-private-key"), "tserverpw")); + TEST_CHECK(t, 0 == pn_ssl_init(pn_ssl(pn_event_transport(e)), ssld, NULL)); + pn_ssl_domain_free(ssld); + return PN_EVENT_NONE; + } + + case PN_CONNECTION_REMOTE_OPEN: { + if (pn_connection_state(c) | PN_LOCAL_ACTIVE) { + /* Outgoing connection is complete, close it */ + pn_connection_close(c); + } else { + /* Incoming connection, check for SSL */ + pn_ssl_t *ssl = pn_ssl(pn_event_transport(e)); + TEST_CHECK(t, ssl); + TEST_CHECK(t, pn_ssl_get_protocol_name(ssl, NULL, 0)); + pn_connection_open(c); /* Return the open (no-op if already open) */ + } + return PN_CONNECTION_REMOTE_OPEN; + } + + default: + return common_handler(t, e); + } +} + +/* Establish an SSL connection between proactors*/ +static void test_ssl(test_t *t) { + if (!pn_ssl_present()) { + TEST_LOGF(t, "Skip SSL test, no support"); + return; + } + + proactor_test_t pts[] ={ { ssl_handler }, { ssl_handler } }; + PROACTOR_TEST_INIT(pts, t); + pn_proactor_t *client = pts[0].proactor, *server = pts[1].proactor; + test_port_t port = test_port(localhost); + pn_proactor_listen(server, pn_listener(), port.host_port, 4); + TEST_ETYPE_EQUAL(t, PN_LISTENER_OPEN, PROACTOR_TEST_RUN(pts)); + sock_close(port.sock); + pn_connection_t *c = pn_connection(); + pn_proactor_connect(client, c, port.host_port); + /* Open ok at both ends */ + TEST_ETYPE_EQUAL(t, PN_CONNECTION_REMOTE_OPEN, PROACTOR_TEST_RUN(pts)); + TEST_STR_EQUAL(t,"", last_condition); + TEST_ETYPE_EQUAL(t, PN_CONNECTION_REMOTE_OPEN, PROACTOR_TEST_RUN(pts)); + TEST_STR_EQUAL(t, "", last_condition); + TEST_ETYPE_EQUAL(t, PN_TRANSPORT_CLOSED, PROACTOR_TEST_RUN(pts)); + TEST_ETYPE_EQUAL(t, PN_TRANSPORT_CLOSED, PROACTOR_TEST_RUN(pts)); + + PROACTOR_TEST_FREE(pts); +} int main(int argc, char **argv) { int failed = 0; @@ -475,5 +539,6 @@ int main(int argc, char **argv) { RUN_ARGV_TEST(failed, t, test_connection_wake(&t)); RUN_ARGV_TEST(failed, t, test_ipv4_ipv6(&t)); RUN_ARGV_TEST(failed, t, test_free_cleanup(&t)); + RUN_ARGV_TEST(failed, t, test_ssl(&t)); return failed; } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/2d9c0869/proton-c/src/tests/ssl_certs/README.txt ---------------------------------------------------------------------- diff --git a/proton-c/src/tests/ssl_certs/README.txt b/proton-c/src/tests/ssl_certs/README.txt new file mode 100644 index 0000000..9a8a4f9 --- /dev/null +++ b/proton-c/src/tests/ssl_certs/README.txt @@ -0,0 +1,24 @@ +This directory contains basic self signed test certificates for use by +proton examples. + +The ".pem" files are in the format expected by proton implementations +using OpenSSL. The ".p12" file are for Windows implementations using +SChannel. + +The commands used to generate the certificates follow. + + +make_pn_cert() +{ + name=$1 + subject=$2 + passwd=$3 + # create the pem files + openssl req -newkey rsa:2048 -keyout $name-private-key.pem -out $name-certificate.pem -subj $subject -passout pass:$passwd -x509 -days 3650 + # create the p12 files + openssl pkcs12 -export -out $name-full.p12 -passin pass:$passwd -passout pass:$passwd -inkey $name-private-key.pem -in $name-certificate.pem -name $name + openssl pkcs12 -export -out $name-certificate.p12 -in $name-certificate.pem -name $name -nokeys -passout pass: +} + +make_pn_cert tserver /CN=test_server/OU=proton_test tserverpw +make_pn_cert tclient /CN=test_client/OU=proton_test tclientpw http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/2d9c0869/proton-c/src/tests/ssl_certs/tclient-certificate.p12 ---------------------------------------------------------------------- diff --git a/proton-c/src/tests/ssl_certs/tclient-certificate.p12 b/proton-c/src/tests/ssl_certs/tclient-certificate.p12 new file mode 100644 index 0000000..4d0e000 Binary files /dev/null and b/proton-c/src/tests/ssl_certs/tclient-certificate.p12 differ http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/2d9c0869/proton-c/src/tests/ssl_certs/tclient-certificate.pem ---------------------------------------------------------------------- diff --git a/proton-c/src/tests/ssl_certs/tclient-certificate.pem b/proton-c/src/tests/ssl_certs/tclient-certificate.pem new file mode 100644 index 0000000..8088e2e --- /dev/null +++ b/proton-c/src/tests/ssl_certs/tclient-certificate.pem @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIDKzCCAhOgAwIBAgIJAIV7frIjftgcMA0GCSqGSIb3DQEBCwUAMCwxFDASBgNV +BAMMC3Rlc3RfY2xpZW50MRQwEgYDVQQLDAtwcm90b25fdGVzdDAeFw0xNTExMjcx +ODEwMzlaFw0yNTExMjQxODEwMzlaMCwxFDASBgNVBAMMC3Rlc3RfY2xpZW50MRQw +EgYDVQQLDAtwcm90b25fdGVzdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAPCIS4qUdOtQplUxZ6WW0LXcvosqFP6qOiCARLSEWpR3B8bq213rzefwwfcM +4TtMr88bP+huLKmlyMfwpl8yB88eXkscPgaAce2zk24urWkFXKSQ6GPitWBLGqBa +V+W0wJ4mfW7MwefVslWfGXI381QEUlBHjkFG30AtzMMTRj2GK2JqUlRXZPljGyB7 +WcXwxcoS+HkKV7FtHWSkLAzyXwQ9vsCUEYdWTUaGXfCUNRSRV7h1LIANbu03NxV0 +XdEl7WXcr7tuTw3axeUGhRFVhLegrxKLuZTTno4aAJnEr8uaDzjxvXnv3Ne2igvy +gRfZgOMx+XrZEob9OpAoRghQt4cCAwEAAaNQME4wHQYDVR0OBBYEFE4vbyiM0RjG +TLMLLGGhMZE/5x1GMB8GA1UdIwQYMBaAFE4vbyiM0RjGTLMLLGGhMZE/5x1GMAwG +A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAErr/rvLS9Ig0UCMwh1J1lA9 +/gvXf93iIK/SjrFIAqYRmfZxg4husfoes8t2hFUeuqoH05TuSOoXG8p8DpgTSGmF +jAFe+T90vJZTm0oqZkkkI/hdzjGQoHURRp9/O2Z/lm39KSKGVAN5pUWCUDi/G5iS +P9LZPJN6a5syXMrR6x62IPxAXowlpXkRghKClF3zPOaOBTzT1V27EkI8IEgC+p45 +246EooLnw8ibB+ucNc3KHNzpgKGVd/622+I+Q5eg9AT9PLFttP+R2ECsrVDDPYuA +p0qaSnwgeozj/d6K3FOgKKEKbzBmpWgkv0jdcVk18aPMHypI/RDtZ/+3ET2Ksi8= +-----END CERTIFICATE----- http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/2d9c0869/proton-c/src/tests/ssl_certs/tclient-full.p12 ---------------------------------------------------------------------- diff --git a/proton-c/src/tests/ssl_certs/tclient-full.p12 b/proton-c/src/tests/ssl_certs/tclient-full.p12 new file mode 100644 index 0000000..ad2d7d3 Binary files /dev/null and b/proton-c/src/tests/ssl_certs/tclient-full.p12 differ http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/2d9c0869/proton-c/src/tests/ssl_certs/tclient-private-key.pem ---------------------------------------------------------------------- diff --git a/proton-c/src/tests/ssl_certs/tclient-private-key.pem b/proton-c/src/tests/ssl_certs/tclient-private-key.pem new file mode 100644 index 0000000..e5c114d --- /dev/null +++ b/proton-c/src/tests/ssl_certs/tclient-private-key.pem @@ -0,0 +1,30 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQICy6ghWp45z4CAggA +MBQGCCqGSIb3DQMHBAiVdDoo4NIghQSCBMixGm1bm/omMxsaKnIPO7zm5dyLexJ+ +yTFpmh2KV7kQqmpzCyIOdoG6K8YqFnie2XdFWm3S8faRHoMq54bDmyEWIxfQPq5f +I1iYFbIZkbnhUvK53RActsEUMf0locS4xylU7VQK3XTAwp0TVip3Lp3ehEMEdcXL +iUWibGsoTPKcY9MIWGXZAJXsEXoeHt6k2hHo1G4E0/Bi6mLW1LY/cxZCjHTGD6qI +Kt54SCCDvinqVa+rixw6yX9F14EA6bhALami8e+Ccd3lqHOyYlXcBaSS1ezCg6ig +oNK97mC+gEGy1KlkZDKWXclFoOCBXRBe4DByre6Rlq3yeI9L42bvAuSBSmf5QT5g +73Yl8vjEAKR65awBT09dPuKu7t+Fb6vkwF8/t+uyj9IuL+42UuXhMLK3ohf+6DbU +8/zB4y3GXI80QmWM0+Wx4n6khFhPFLHt2q0Sn6V9PG1vtHyiq50oSCoyrPQLaecp +hefnMCFBYTcT3JUwmoVGGy0boIAwL7T4aGsMt7QhwOx5tU35tKFxyY7m4fX14AKo +2EIy+TPQwCGkGf3Puy/Pc9VA8IAxB5+WwSrjk+NeCv88eIX7gy43k4rCr+OmD9FF +wknr3xoP3KYhNXjdZ4Ep/1UHSK+JAtzzbNLQjDcqN+gQPg/yUX6ih0j5K3Wvh9bK +E/DvzbpJroUZPgzR+8z5O68CfsD+OIdpHBFTKqAFmzvUuqpADpr998LdCjD+lW+V +xZZgZa8KEblwgiH3fdGbYl46Ho1zrZisf439DbqyybAuBIQB4NSZcL/MAgVGO17k +QDpVElWZWYrFm4CFTcvS2HvIzRmbefF5m5oJedsN7Q6WQCp+3gnwYx1xIOknd7pW +N4AHNnqjscSj9yACj/EiBVKAKNnC5H7ZGZTsaAjMETZyjLXfI2AZ3Fviz4zFR+oz +NkAfFB6WUpRpl7H02FzrzYT7XkkLcXd6H6g+mv2iDa9uKWk/PS2QlqnJt8/dHEHD +JKTG331yDK5GHlKAVGF3nP5BwFGgTQMuSoeiOervMXPUwDpQ8OaYkuaRej0cZLgT +kAF9sUjqdsoYNcXDFHALp6y5g8qYkfrxrlIbKs82zIsmB5I+dtZbUaD3a0zAUrmW +5Xm3Pc9dVP0EXKwfHz6zqPReEw2yYLisB5IoHd4M2wa3GzHBdra1ij4QTmvd3o7e +buGFoX8KJQAcig0zpbYkoDP2gPhIh9rY4unVPQNX1Q8/wRsiJAZZsYvZY+A+SmuZ +bwSwk+8ZJRsFzdYYYhQeRytD5cDAIQiClcI5Yj4T9dWQV/gf0N/wIBDNTMp0jJAy +1l7PuXTfGZodNJWZH0oqsrNoWbn/k67NildvvofIKX+h09Nxszr670Pvj0qoHd5/ +CWq30lnxoJBUgbikFOz6ZuuHi/ZiCXL+haH+v8hJKN5ptRKnyYJQHchRB/IOGRoT +5lmWxo8a7K+yXhp0VBDHJfw3685ms0xQX8Xj4X3MEuN64zd0fB1JmhtP12ydK85J +ABawNKlRQPw5weckwtCviXQX+vX25S/xu3xA6IuqlHyqL/1t3DICzuxeOyT2mZxD +tKQxEgNihPvu32vn9m74qA3adEaxuWPRkPZuTeITHOkMTZolvqYX/5olBsSgYwka +7/g= +-----END ENCRYPTED PRIVATE KEY----- http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/2d9c0869/proton-c/src/tests/ssl_certs/tserver-certificate.p12 ---------------------------------------------------------------------- diff --git a/proton-c/src/tests/ssl_certs/tserver-certificate.p12 b/proton-c/src/tests/ssl_certs/tserver-certificate.p12 new file mode 100644 index 0000000..f38b67d Binary files /dev/null and b/proton-c/src/tests/ssl_certs/tserver-certificate.p12 differ http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/2d9c0869/proton-c/src/tests/ssl_certs/tserver-certificate.pem ---------------------------------------------------------------------- diff --git a/proton-c/src/tests/ssl_certs/tserver-certificate.pem b/proton-c/src/tests/ssl_certs/tserver-certificate.pem new file mode 100644 index 0000000..86231f3 --- /dev/null +++ b/proton-c/src/tests/ssl_certs/tserver-certificate.pem @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIDKzCCAhOgAwIBAgIJAPnYOOQCJ3kDMA0GCSqGSIb3DQEBCwUAMCwxFDASBgNV +BAMMC3Rlc3Rfc2VydmVyMRQwEgYDVQQLDAtwcm90b25fdGVzdDAeFw0xNTExMjcx +ODEwMzlaFw0yNTExMjQxODEwMzlaMCwxFDASBgNVBAMMC3Rlc3Rfc2VydmVyMRQw +EgYDVQQLDAtwcm90b25fdGVzdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAKJNB78lgw4KtXDAvXocTLud6mbn6zgfB6ETIF+kcrukOH9DnPxjLBBM4Lig +sp1+kmeudFK5/X8riDrvIW52b/rlEBLgLB+oDtI74m6OTbBs9L+FUFYOuxApetQF +qoJy2vf9pWfy4uku24vCpeo7eVLi6ypu4lXE3LR+Km3FruHI1NKonHBMhwXSOWqF +pYM6/4IZJ4fbV0+eU0Jrx+05s6XHg5vone2BVJKxeSIBje+zWnNnh8+qG0Z70Jgp +aMetME5KGnLNgD1okpH0vb3lwjvuqkkx4WswGVZGbLLkSqqBpXPyM9fCFVy5aKSL +DBq7IABQtO67O2nBzK3OyigHrUUCAwEAAaNQME4wHQYDVR0OBBYEFGV1PY0FCFbJ +gpcDVKI6JGiRTt3kMB8GA1UdIwQYMBaAFGV1PY0FCFbJgpcDVKI6JGiRTt3kMAwG +A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAIx1TOTGWnnbpan4bse7wuvH +GYSNDJhoTVS+X1TC63xukJD1JBAsCNTqg/ZV6lN3XEl7vvOXfGoCiyXM6a9XOKUo +gSDtMrIr+wTh6Ss1yRO8QcCJmxH5JDXNu1ojtwsjFW/vneI4IL9kwpDsSlMQEX/E +EkkQwtAx/Cvfe7pecZL4qSeykJOUMTts9H8fCAZqEiRZBA3ugJxqF8jwLP3DoFVQ +6QZzKDY6CSPqfMnVb5i0MAIYVDpau+e3N9dgQpZD22F/zbua0OVbfAPdiRMnYxML +FT4sxLnh+5YVqwpVWbEKp4onHe2Fq6YIvAxUYAJ3SBA2C8O2RAVKWxf1jko3jYI= +-----END CERTIFICATE----- http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/2d9c0869/proton-c/src/tests/ssl_certs/tserver-full.p12 ---------------------------------------------------------------------- diff --git a/proton-c/src/tests/ssl_certs/tserver-full.p12 b/proton-c/src/tests/ssl_certs/tserver-full.p12 new file mode 100644 index 0000000..d4a0e40 Binary files /dev/null and b/proton-c/src/tests/ssl_certs/tserver-full.p12 differ http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/2d9c0869/proton-c/src/tests/ssl_certs/tserver-private-key.pem ---------------------------------------------------------------------- diff --git a/proton-c/src/tests/ssl_certs/tserver-private-key.pem b/proton-c/src/tests/ssl_certs/tserver-private-key.pem new file mode 100644 index 0000000..91dcf0e --- /dev/null +++ b/proton-c/src/tests/ssl_certs/tserver-private-key.pem @@ -0,0 +1,30 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQI1cT0c2J3GcQCAggA +MBQGCCqGSIb3DQMHBAi1hxSX2LJ+EgSCBMheHJ0iXr5A36Natjk/LcAEeKUMT9s+ +sMzoQceCWe8qMlQluWksr9iDdZ4JRIE8cpK8dbmx4dLY/SShUzdlhJHCSa4zZBHq +8cZ/jGUF/RF1rqdgjK589eUq+uOl3/gXKzG/SxBqayy6PSn12kX3qnvmlkXCmtwU +lg+iBm5wRcJ0MyVHaJkyA8sW8gr186C/VAau6Yu0crQXN7NRo9snrd4ewuYMIEhZ +hgaG9XsYQWB1bPhAaKj80CZGxsQbJyTwcbKKkB3IY4WXx8mmhuiNl+vKT3HBJ9Ju +YB6tgIjs8CJ4X2P4aU3yNJwG1QldgHSqmFGQ19bcZAw3s3kzwjdzRf4H2V16XOBd +zQ5AEs/ffVMzMIAfkb1gYwgunZ2CVwwDJ2mi1RcgkX+Og2aFQc+fxXcVOnDcGLxV +6fuCuZ2lsXfoiIyRh9kj3L75N12GtVUvgBdnMuOc1wPw6XnGQtDwt0acJpdexLMG +k0j57r/gcgzTcmF3qNM+y9L/HLssgrJkvVJw2Np5gmtIyfDocsDUWUbClS4dTpYf +oTngUTU+vWtHBuaUnb+f5/WJaRS/S7mmR8usbVG3i9WnEr/vlPJpbJFSjW2S6u/H +7cFxKUmmBZsSuEv/EKt9a+Sh62kprOChm4myqfCI1/gvNKfUZC6m0Vp8zf+2LgAq +2RgbMuqysMjWUtV4kDRZT7oCYckUDwsCHdbLES3nmVrtBk2ShMKHBpDp8/GoRuiV +jdV7/EjKM/M1kXtFYYe3z7Mxv++lKYIJ7bNwVrQ8nrhce/VwHw6D5emWXNCJXhKZ +FW7EM2ZOZ9eaKOlCsIi8sbjV6Yie9IY6HJKKmi3CpO0Tv5kLBdHkru8vGCSFm3O1 +n7wz7Ys5FBSlZ19X0NwQSCQX1Q4w+tido6i1SCRX0qJEdTNGuGwVXMHCf4/1zyHV +hj8vnxh8fzo79LFrwlTTgwLg1Mr8sEUFFDJ/raJ1AhFXi8n24trtNR8EHxRW8wtD +CLCKaqkEqfBiFXK/Yq3RrefCayPHiD+DaNsI8BwefMGpED3vD8YYCjAzXNPh/CSF +sc1i1jWMzbJhzOoFSPNXhlfusbUFMFQ/6olatmH47SY6HBBOL3DDP5uQ0jw8P454 +QBjlMOpEZmZxO6TcEtJwu0vzgog4rQ5g3NWy6SIpjWehNwTynLt7yM3R5WTI6cZs +0GTv/rqo2/SUoNsFmnGIUwj/DrBe4XOAq1nS2ZlEctxKhBsKH0hMFp6D1rXOzrgl +bwcq+oistoB0TLcThShyNgSqzW1znQ1n5SVUk9b5rRhSttJxn3yOMewH0i3v8bPo +HOhP5kaGjblPsCYyhlL/SNVF0OXEGTwLNey7FQdWFOwVwTRRXe7k+uGZ2d5hg+Jn +It/trDZ1RDYbVmB7/Qy73c16J4mvhOUJ2de5ZciFBjkidbiiUKLj9xnjK9k9Sauo +MKhNnDMAEU5VDQM3xNe5BRdX8dFLwfF5H64sU3nROF83aUnDgvfFEowYPnCuPYfm +m4aQHfoBSg4j3v1OeOwktcl+Q2TjxPHfWhbWeRBfxOTqQ/suYhnQChuFSK/qyo9K +ccgotqghhunRsWMoZT25H7AZM6yKb1sMz/0oyMRIKeGqoYh+ULM5XLY0xNYd4/xU +WtQ= +-----END ENCRYPTED PRIVATE KEY----- http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/2d9c0869/proton-c/src/tests/test_config.h.in ---------------------------------------------------------------------- diff --git a/proton-c/src/tests/test_config.h.in b/proton-c/src/tests/test_config.h.in new file mode 100644 index 0000000..d1d3a18 --- /dev/null +++ b/proton-c/src/tests/test_config.h.in @@ -0,0 +1,26 @@ +#ifndef TESTS_TEST_CONFIG_H +#define TESTS_TEST_CONFIG_H + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/* Make source tree locations available to tests */ +#define CMAKE_CURRENT_SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@" + +#endif // TESTS_TEST_CONFIG_H --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
