checkpoint progress: add wolfSSL_BIO_s_dgram, wolfSSL_BIO_new_dgram, WOLFSSL_BIO_DGRAM, and remove now-duplicate prototype and definition of wolfSSL_X509_STORE_get0_param.

This commit is contained in:
Daniel Pouzzner
2024-05-20 18:13:10 -05:00
parent 8468a70b72
commit 3f921e0a32
3 changed files with 49 additions and 8 deletions

View File

@ -351,6 +351,15 @@ int wolfSSL_BIO_read(WOLFSSL_BIO* bio, void* buf, int len)
ret = NOT_COMPILED_IN;
#endif
break;
case WOLFSSL_BIO_DGRAM:
#ifdef USE_WOLFSSL_IO
/* BIO requires built-in socket support
* (cannot be used with WOLFSSL_USER_IO) */
ret = wolfIO_RecvDgram(bio->num, (char*)buf, len, 0);
#else
ret = NOT_COMPILED_IN;
#endif
break;
} /* switch */
}
@ -732,6 +741,15 @@ int wolfSSL_BIO_write(WOLFSSL_BIO* bio, const void* data, int len)
ret = NOT_COMPILED_IN;
#endif
break;
case WOLFSSL_BIO_DGRAM:
#ifdef USE_WOLFSSL_IO
/* BIO requires built-in socket support
* (cannot be used with WOLFSSL_USER_IO) */
ret = wolfIO_SendDgram(bio->num, (char*)data, len, 0);
#else
ret = NOT_COMPILED_IN;
#endif
break;
} /* switch */
}
@ -1830,6 +1848,7 @@ long wolfSSL_BIO_set_nbio(WOLFSSL_BIO* bio, long on)
if (bio) {
switch (bio->type) {
case WOLFSSL_BIO_SOCKET:
case WOLFSSL_BIO_DGRAM:
#ifdef XFCNTL
{
int ret;
@ -2146,6 +2165,32 @@ int wolfSSL_BIO_flush(WOLFSSL_BIO* bio)
return bio;
}
WOLFSSL_BIO_METHOD *wolfSSL_BIO_s_dgram(void)
{
static WOLFSSL_BIO_METHOD meth =
WOLFSSL_BIO_METHOD_INIT(WOLFSSL_BIO_DGRAM);
WOLFSSL_ENTER("wolfSSL_BIO_s_dgram");
return &meth;
}
WOLFSSL_BIO* wolfSSL_BIO_new_dgram(int fd, int closeF)
{
WOLFSSL_BIO* bio = wolfSSL_BIO_new(wolfSSL_BIO_s_dgram());
WOLFSSL_ENTER("wolfSSL_BIO_new_dgram");
if (bio) {
bio->type = WOLFSSL_BIO_DGRAM;
bio->shutdown = (byte)closeF;
bio->num = fd;
}
return bio;
}
/**
* Create new socket BIO object. This is a pure TCP connection with
* no SSL or TLS protection.

View File

@ -8805,11 +8805,6 @@ const WOLFSSL_X509_VERIFY_PARAM *wolfSSL_X509_VERIFY_PARAM_lookup(const char *na
return NULL;
}
const WOLFSSL_X509_VERIFY_PARAM *wolfSSL_X509_STORE_get0_param(const WOLFSSL_X509_STORE *store)
{
return store->param;
}
/* inherits properties of param "to" to param "from"
*
* WOLFSSL_VPARAM_DEFAULT any values in "src" is copied

View File

@ -474,7 +474,8 @@ enum BIO_TYPE {
WOLFSSL_BIO_BIO = 5,
WOLFSSL_BIO_FILE = 6,
WOLFSSL_BIO_BASE64 = 7,
WOLFSSL_BIO_MD = 8
WOLFSSL_BIO_MD = 8,
WOLFSSL_BIO_DGRAM = 9
};
enum BIO_FLAGS {
@ -1774,6 +1775,7 @@ WOLFSSL_API WOLFSSL_BIO_METHOD* wolfSSL_BIO_f_buffer(void);
WOLFSSL_API long wolfSSL_BIO_set_write_buffer_size(WOLFSSL_BIO* bio, long size);
WOLFSSL_API WOLFSSL_BIO_METHOD* wolfSSL_BIO_f_ssl(void);
WOLFSSL_API WOLFSSL_BIO* wolfSSL_BIO_new_socket(int sfd, int flag);
WOLFSSL_API WOLFSSL_BIO* wolfSSL_BIO_new_dgram(int fd, int closeF);
WOLFSSL_API int wolfSSL_BIO_eof(WOLFSSL_BIO* b);
WOLFSSL_API WOLFSSL_BIO_METHOD* wolfSSL_BIO_s_mem(void);
@ -1833,6 +1835,7 @@ WOLFSSL_API WOLFSSL_BIO *wolfSSL_BIO_new_fd(int fd, int close_flag);
WOLFSSL_API WOLFSSL_BIO_METHOD *wolfSSL_BIO_s_bio(void);
WOLFSSL_API WOLFSSL_BIO_METHOD *wolfSSL_BIO_s_socket(void);
WOLFSSL_API WOLFSSL_BIO_METHOD *wolfSSL_BIO_s_dgram(void);
WOLFSSL_API WOLFSSL_BIO *wolfSSL_BIO_new_connect(const char *str);
WOLFSSL_API WOLFSSL_BIO *wolfSSL_BIO_new_accept(const char *port);
@ -2141,8 +2144,6 @@ WOLFSSL_API int wolfSSL_X509_VERIFY_PARAM_set1(WOLFSSL_X509_VERIFY_PARAM* to,
const WOLFSSL_X509_VERIFY_PARAM* from);
WOLFSSL_API const WOLFSSL_X509_VERIFY_PARAM *wolfSSL_X509_VERIFY_PARAM_lookup(
const char *name);
WOLFSSL_API const WOLFSSL_X509_VERIFY_PARAM *wolfSSL_X509_STORE_get0_param(
const WOLFSSL_X509_STORE *store);
WOLFSSL_API int wolfSSL_X509_VERIFY_PARAM_inherit(WOLFSSL_X509_VERIFY_PARAM *to,
const WOLFSSL_X509_VERIFY_PARAM *from);
WOLFSSL_API int wolfSSL_X509_load_crl_file(WOLFSSL_X509_LOOKUP *ctx,