mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2026-01-30 06:52:14 +01:00
Merge pull request #4350 from cconlon/pythonCompatD
OpenSSL compatibility fixes: BIO_set_nbio(), SHA3 NID, WOLFSSL_PYTHON
This commit is contained in:
63
src/bio.c
63
src/bio.c
@@ -1696,42 +1696,47 @@ void* wolfSSL_BIO_get_data(WOLFSSL_BIO* bio)
|
||||
}
|
||||
|
||||
/* If flag is 0 then blocking is set, if 1 then non blocking.
|
||||
* Always returns 1
|
||||
* Always returns WOLFSSL_SUCCESS.
|
||||
*/
|
||||
long wolfSSL_BIO_set_nbio(WOLFSSL_BIO* bio, long on)
|
||||
{
|
||||
int ret = 0;
|
||||
#ifndef WOLFSSL_DTLS
|
||||
(void)on;
|
||||
#endif
|
||||
WOLFSSL_ENTER("wolfSSL_BIO_set_nbio");
|
||||
|
||||
switch (bio->type) {
|
||||
case WOLFSSL_BIO_SOCKET:
|
||||
#ifdef XFCNTL
|
||||
{
|
||||
int flag = XFCNTL(bio->num, F_GETFL, 0);
|
||||
if (on)
|
||||
ret = XFCNTL(bio->num, F_SETFL, flag | O_NONBLOCK);
|
||||
else
|
||||
ret = XFCNTL(bio->num, F_SETFL, flag & ~O_NONBLOCK);
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
case WOLFSSL_BIO_SSL:
|
||||
#ifdef WOLFSSL_DTLS
|
||||
wolfSSL_dtls_set_using_nonblock((WOLFSSL*)bio->ptr, (int)on);
|
||||
#endif
|
||||
break;
|
||||
if (bio) {
|
||||
switch (bio->type) {
|
||||
case WOLFSSL_BIO_SOCKET:
|
||||
#ifdef XFCNTL
|
||||
{
|
||||
int ret;
|
||||
int flag = XFCNTL(bio->num, F_GETFL, 0);
|
||||
if (on) {
|
||||
ret = XFCNTL(bio->num, F_SETFL, flag | O_NONBLOCK);
|
||||
}
|
||||
else {
|
||||
ret = XFCNTL(bio->num, F_SETFL, flag & ~O_NONBLOCK);
|
||||
}
|
||||
|
||||
default:
|
||||
WOLFSSL_MSG("Unsupported bio type for non blocking");
|
||||
break;
|
||||
if (ret == -1) {
|
||||
WOLFSSL_MSG("Call to XFCNTL failed");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
case WOLFSSL_BIO_SSL:
|
||||
#ifdef WOLFSSL_DTLS
|
||||
wolfSSL_dtls_set_using_nonblock((WOLFSSL*)bio->ptr, (int)on);
|
||||
#endif
|
||||
break;
|
||||
|
||||
default:
|
||||
WOLFSSL_MSG("Unsupported bio type for non blocking");
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (ret != -1)
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
|
||||
(void)on;
|
||||
|
||||
return WOLFSSL_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
|
||||
24
src/ssl.c
24
src/ssl.c
@@ -27966,8 +27966,9 @@ static long wolf_set_options(long old_op, long op)
|
||||
WOLFSSL_MSG("\tSSL_OP_NO_SSLv3");
|
||||
}
|
||||
|
||||
if ((op & SSL_OP_CIPHER_SERVER_PREFERENCE) == SSL_OP_CIPHER_SERVER_PREFERENCE) {
|
||||
WOLFSSL_MSG("\tSSL_OP_CIPHER_SERVER_PREFERENCE");
|
||||
if ((op & WOLFSSL_OP_CIPHER_SERVER_PREFERENCE) ==
|
||||
WOLFSSL_OP_CIPHER_SERVER_PREFERENCE) {
|
||||
WOLFSSL_MSG("\tWOLFSSL_OP_CIPHER_SERVER_PREFERENCE");
|
||||
}
|
||||
|
||||
if ((op & SSL_OP_NO_COMPRESSION) == SSL_OP_NO_COMPRESSION) {
|
||||
@@ -31175,7 +31176,20 @@ const WOLFSSL_ObjectInfo wolfssl_object_info[] = {
|
||||
#ifdef WOLFSSL_SHA512
|
||||
{ NID_sha512, SHA512h, oidHashType, "SHA512", "sha512"},
|
||||
#endif
|
||||
|
||||
#ifdef WOLFSSL_SHA3
|
||||
#ifndef WOLFSSL_NOSHA3_224
|
||||
{ NID_sha3_224, SHA3_224h, oidHashType, "SHA3-224", "sha3-224"},
|
||||
#endif
|
||||
#ifndef WOLFSSL_NOSHA3_256
|
||||
{ NID_sha3_256, SHA3_256h, oidHashType, "SHA3-256", "sha3-256"},
|
||||
#endif
|
||||
#ifndef WOLFSSL_NOSHA3_384
|
||||
{ NID_sha3_384, SHA3_384h, oidHashType, "SHA3-384", "sha3-384"},
|
||||
#endif
|
||||
#ifndef WOLFSSL_NOSHA3_512
|
||||
{ NID_sha3_512, SHA3_512h, oidHashType, "SHA3-512", "sha3-512"},
|
||||
#endif
|
||||
#endif /* WOLFSSL_SHA3 */
|
||||
/* oidSigType */
|
||||
#ifndef NO_DSA
|
||||
#ifndef NO_SHA
|
||||
@@ -45840,8 +45854,8 @@ long wolfSSL_CTX_ctrl(WOLFSSL_CTX* ctx, int cmd, long opt, void* pt)
|
||||
|
||||
#ifdef WOLFSSL_QT
|
||||
/* Set whether to use client or server cipher preference */
|
||||
if ((ctrl_opt & SSL_OP_CIPHER_SERVER_PREFERENCE)
|
||||
== SSL_OP_CIPHER_SERVER_PREFERENCE) {
|
||||
if ((ctrl_opt & WOLFSSL_OP_CIPHER_SERVER_PREFERENCE)
|
||||
== WOLFSSL_OP_CIPHER_SERVER_PREFERENCE) {
|
||||
WOLFSSL_MSG("Using Server's Cipher Preference.");
|
||||
ctx->useClientOrder = FALSE;
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user