X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;ds=inline;f=src%2Fssl.c;h=ab953f36b6b876e2d91edae223adf9fc1de0d778;hb=4a60669fa1d85ec4644acaed84bad7ac8f79fdba;hp=92aaf02e3d3b02fd8208d361e0d8421a2ccd4628;hpb=4cbeba525933d413a48e74429545e0fe7f4c7009;p=umurmur.git diff --git a/src/ssl.c b/src/ssl.c index 92aaf02..ab953f3 100644 --- a/src/ssl.c +++ b/src/ssl.c @@ -45,7 +45,6 @@ #include #include #include -#include int ciphers[] = { @@ -142,6 +141,8 @@ static void pssl_debug(void *ctx, int level, const char *str) void SSLi_init(void) { + char verstring[12]; + initCert(); if (builtInTestCertificate) { Log_warn("*** Using built-in test certificate and RSA key ***"); @@ -151,7 +152,13 @@ void SSLi_init(void) else initKey(); havege_init(&hs); + +#ifdef POLARSSL_VERSION_MAJOR + version_get_string(verstring); + Log_info("PolarSSL library version %s initialized", verstring); +#else Log_info("PolarSSL library initialized"); +#endif } void SSLi_deinit(void) @@ -184,8 +191,12 @@ SSL_handle_t *SSLi_newconnection(int *fd, bool_t *SSLready) ssl_set_dbg(ssl, pssl_debug, NULL); ssl_set_bio(ssl, net_recv, fd, net_send, fd); +#ifdef POLARSSL_API_V1 + ssl_set_ciphersuites(ssl, ciphers); +#else ssl_set_ciphers(ssl, ciphers); - ssl_set_session(ssl, 0, 0, ssn); +#endif + ssl_set_session(ssl, 0, 0, ssn); ssl_set_own_cert(ssl, &certificate, &key); ssl_set_dh_param(ssl, my_dhm_P, my_dhm_G); @@ -199,7 +210,11 @@ int SSLi_nonblockaccept(SSL_handle_t *ssl, bool_t *SSLready) rc = ssl_handshake(ssl); if (rc != 0) { +#ifdef POLARSSL_API_V1 + if (rc == POLARSSL_ERR_NET_WANT_READ || rc == POLARSSL_ERR_NET_WANT_WRITE) { +#else if (rc == POLARSSL_ERR_NET_TRY_AGAIN) { +#endif return 0; } else { Log_warn("SSL handshake failed: %d", rc); @@ -213,8 +228,13 @@ int SSLi_nonblockaccept(SSL_handle_t *ssl, bool_t *SSLready) int SSLi_read(SSL_handle_t *ssl, uint8_t *buf, int len) { int rc; + rc = ssl_read(ssl, buf, len); +#ifdef POLARSSL_API_V1 + if (rc == POLARSSL_ERR_NET_WANT_READ) +#else if (rc == POLARSSL_ERR_NET_TRY_AGAIN) +#endif return SSLI_ERROR_WANT_READ; return rc; } @@ -222,8 +242,13 @@ int SSLi_read(SSL_handle_t *ssl, uint8_t *buf, int len) int SSLi_write(SSL_handle_t *ssl, uint8_t *buf, int len) { int rc; + rc = ssl_write(ssl, buf, len); +#ifdef POLARSSL_API_V1 + if (rc == POLARSSL_ERR_NET_WANT_WRITE) +#else if (rc == POLARSSL_ERR_NET_TRY_AGAIN) +#endif return SSLI_ERROR_WANT_WRITE; return rc; }