forked from wolfSSL/wolfssl
Adding BIO and EVP api
This commit is contained in:
@@ -3868,6 +3868,29 @@ WOLFSSL_API int wolfSSL_BIO_get_mem_data(WOLFSSL_BIO* bio,void* p);
|
||||
*/
|
||||
WOLFSSL_API long wolfSSL_BIO_set_fd(WOLFSSL_BIO* b, int fd, int flag);
|
||||
|
||||
/*!
|
||||
\ingroup IO
|
||||
|
||||
\brief Sets the close flag, used to indicate that the i/o stream should be
|
||||
closed when the BIO is freed
|
||||
|
||||
\return SSL_SUCCESS(1) upon success.
|
||||
|
||||
\param bio WOLFSSL_BIO structure.
|
||||
\param flag flag for behavior when closing i/o stream.
|
||||
|
||||
_Example_
|
||||
\code
|
||||
WOLFSSL_BIO* bio;
|
||||
// setup bio
|
||||
wolfSSL_BIO_set_close(bio, BIO_NOCLOSE);
|
||||
\endcode
|
||||
|
||||
\sa wolfSSL_BIO_new
|
||||
\sa wolfSSL_BIO_free
|
||||
*/
|
||||
WOLFSSL_API int wolfSSL_BIO_set_close(WOLFSSL_BIO *b, long flag);
|
||||
|
||||
/*!
|
||||
\ingroup IO
|
||||
|
||||
|
342
src/ssl.c
342
src/ssl.c
@@ -4073,6 +4073,64 @@ const WOLFSSL_EVP_CIPHER *wolfSSL_EVP_get_cipherbynid(int id)
|
||||
static char *EVP_AES_256_CBC;
|
||||
#endif
|
||||
#endif /* HAVE_AES_CBC */
|
||||
|
||||
#ifdef HAVE_AES_OFB
|
||||
#ifdef WOLFSSL_AES_128
|
||||
static char *EVP_AES_128_OFB;
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_192
|
||||
static char *EVP_AES_192_OFB;
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_256
|
||||
static char *EVP_AES_256_OFB;
|
||||
#endif
|
||||
#endif /* HAVE_AES_OFB */
|
||||
|
||||
#ifdef HAVE_AES_XTS
|
||||
#ifdef WOLFSSL_AES_128
|
||||
static char *EVP_AES_128_XTS;
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_256
|
||||
static char *EVP_AES_256_XTS;
|
||||
#endif
|
||||
#endif /* HAVE_AES_XTS */
|
||||
|
||||
#ifdef HAVE_AES_CFB1
|
||||
#ifdef WOLFSSL_AES_128
|
||||
static char *EVP_AES_128_CFB1;
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_192
|
||||
static char *EVP_AES_192_CFB1;
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_256
|
||||
static char *EVP_AES_256_CFB1;
|
||||
#endif
|
||||
#endif /* HAVE_AES_CFB1 */
|
||||
|
||||
#ifdef HAVE_AES_CFB8
|
||||
#ifdef WOLFSSL_AES_128
|
||||
static char *EVP_AES_128_CFB8;
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_192
|
||||
static char *EVP_AES_192_CFB8;
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_256
|
||||
static char *EVP_AES_256_CFB8;
|
||||
#endif
|
||||
#endif /* HAVE_AES_CFB8 */
|
||||
|
||||
#ifdef HAVE_AES_CFB128
|
||||
#ifdef WOLFSSL_AES_128
|
||||
static char *EVP_AES_128_CFB128;
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_192
|
||||
static char *EVP_AES_192_CFB128;
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_256
|
||||
static char *EVP_AES_256_CFB128;
|
||||
#endif
|
||||
#endif /* HAVE_AES_CFB128 */
|
||||
|
||||
#if defined(OPENSSL_EXTRA)
|
||||
#ifdef HAVE_AESGCM
|
||||
#ifdef WOLFSSL_AES_128
|
||||
@@ -4144,6 +4202,72 @@ void wolfSSL_EVP_init(void)
|
||||
#endif
|
||||
#endif /* HAVE_AES_CBC */
|
||||
|
||||
#ifdef HAVE_AES_CFB1
|
||||
#ifdef WOLFSSL_AES_128
|
||||
EVP_AES_128_CFB1 = (char *)EVP_get_cipherbyname("AES-128-CFB1");
|
||||
#endif
|
||||
|
||||
#ifdef WOLFSSL_AES_192
|
||||
EVP_AES_192_CFB1 = (char *)EVP_get_cipherbyname("AES-192-CFB1");
|
||||
#endif
|
||||
|
||||
#ifdef WOLFSSL_AES_256
|
||||
EVP_AES_256_CFB1 = (char *)EVP_get_cipherbyname("AES-256-CFB1");
|
||||
#endif
|
||||
#endif /* HAVE_AES_CFB1 */
|
||||
|
||||
#ifdef HAVE_AES_CFB8
|
||||
#ifdef WOLFSSL_AES_128
|
||||
EVP_AES_128_CFB8 = (char *)EVP_get_cipherbyname("AES-128-CFB8");
|
||||
#endif
|
||||
|
||||
#ifdef WOLFSSL_AES_192
|
||||
EVP_AES_192_CFB8 = (char *)EVP_get_cipherbyname("AES-192-CFB8");
|
||||
#endif
|
||||
|
||||
#ifdef WOLFSSL_AES_256
|
||||
EVP_AES_256_CFB8 = (char *)EVP_get_cipherbyname("AES-256-CFB8");
|
||||
#endif
|
||||
#endif /* HAVE_AES_CFB8 */
|
||||
|
||||
#ifdef HAVE_AES_CFB12828
|
||||
#ifdef WOLFSSL_AES_128
|
||||
EVP_AES_128_CFB128 = (char *)EVP_get_cipherbyname("AES-128-CFB128");
|
||||
#endif
|
||||
|
||||
#ifdef WOLFSSL_AES_192
|
||||
EVP_AES_192_CFB128 = (char *)EVP_get_cipherbyname("AES-192-CFB128");
|
||||
#endif
|
||||
|
||||
#ifdef WOLFSSL_AES_256
|
||||
EVP_AES_256_CFB128 = (char *)EVP_get_cipherbyname("AES-256-CFB128");
|
||||
#endif
|
||||
#endif /* HAVE_AES_CFB128 */
|
||||
|
||||
#ifdef HAVE_AES_OFB
|
||||
#ifdef WOLFSSL_AES_128
|
||||
EVP_AES_128_OFB = (char *)EVP_get_cipherbyname("AES-128-OFB");
|
||||
#endif
|
||||
|
||||
#ifdef WOLFSSL_AES_192
|
||||
EVP_AES_192_OFB = (char *)EVP_get_cipherbyname("AES-192-OFB");
|
||||
#endif
|
||||
|
||||
#ifdef WOLFSSL_AES_256
|
||||
EVP_AES_256_OFB = (char *)EVP_get_cipherbyname("AES-256-OFB");
|
||||
#endif
|
||||
#endif /* HAVE_AES_OFB */
|
||||
|
||||
#ifdef HAVE_AES_XTS
|
||||
#ifdef WOLFSSL_AES_128
|
||||
EVP_AES_128_XTS = (char *)EVP_get_cipherbyname("AES-128-XTS");
|
||||
#endif
|
||||
|
||||
#ifdef WOLFSSL_AES_256
|
||||
EVP_AES_256_XTS = (char *)EVP_get_cipherbyname("AES-256-XTS");
|
||||
#endif
|
||||
#endif /* HAVE_AES_XTS */
|
||||
|
||||
#if defined(OPENSSL_EXTRA)
|
||||
#ifdef HAVE_AESGCM
|
||||
#ifdef WOLFSSL_AES_128
|
||||
@@ -4176,7 +4300,7 @@ void wolfSSL_EVP_init(void)
|
||||
EVP_AES_256_ECB = (char *)EVP_get_cipherbyname("AES-256-ECB");
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif /* ifndef NO_AES*/
|
||||
|
||||
#ifndef NO_DES3
|
||||
EVP_DES_CBC = (char *)EVP_get_cipherbyname("DES-CBC");
|
||||
@@ -14981,6 +15105,30 @@ int wolfSSL_set_compression(WOLFSSL* ssl)
|
||||
|
||||
#endif /* !NO_CERTS */
|
||||
|
||||
WOLFSSL_BIO_METHOD* wolfSSL_BIO_f_md(void)
|
||||
{
|
||||
static WOLFSSL_BIO_METHOD meth;
|
||||
|
||||
WOLFSSL_ENTER("wolfSSL_BIO_f_md");
|
||||
meth.type = WOLFSSL_BIO_MD;
|
||||
|
||||
return &meth;
|
||||
}
|
||||
|
||||
/* return the context and initialize the BIO state */
|
||||
int wolfSSL_BIO_get_md_ctx(WOLFSSL_BIO *bio, WOLFSSL_EVP_MD_CTX **mdcp)
|
||||
{
|
||||
int ret = WOLFSSL_FAILURE;
|
||||
|
||||
if ((bio != NULL) && (mdcp != NULL)) {
|
||||
*mdcp = bio->ptr;
|
||||
|
||||
/* TODO: reset bio */
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
WOLFSSL_BIO_METHOD* wolfSSL_BIO_f_buffer(void)
|
||||
{
|
||||
static WOLFSSL_BIO_METHOD meth;
|
||||
@@ -15065,7 +15213,7 @@ int wolfSSL_set_compression(WOLFSSL* ssl)
|
||||
int wolfSSL_BIO_eof(WOLFSSL_BIO* b)
|
||||
{
|
||||
WOLFSSL_ENTER("BIO_eof");
|
||||
if (b->eof)
|
||||
if ((b != NULL) && (b->eof))
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
@@ -15099,6 +15247,18 @@ int wolfSSL_set_compression(WOLFSSL* ssl)
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Sets the close flag */
|
||||
int wolfSSL_BIO_set_close(WOLFSSL_BIO *b, long flag)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_BIO_set_close");
|
||||
if (b != NULL) {
|
||||
b->shutdown = (byte)flag;
|
||||
}
|
||||
|
||||
return WOLFSSL_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
WOLFSSL_BIO* wolfSSL_BIO_new(WOLFSSL_BIO_METHOD* method)
|
||||
{
|
||||
WOLFSSL_BIO* bio;
|
||||
@@ -16327,6 +16487,156 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
|
||||
#endif /* WOLFSSL_AES_256 */
|
||||
#endif /* HAVE_AES_CBC */
|
||||
|
||||
#ifdef HAVE_AES_CFB1
|
||||
#ifdef WOLFSSL_AES_128
|
||||
const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_128_cfb1(void)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_EVP_aes_128_cfb1");
|
||||
if (EVP_AES_128_CFB1 == NULL)
|
||||
wolfSSL_EVP_init();
|
||||
return EVP_AES_128_CFB1;
|
||||
}
|
||||
#endif /* WOLFSSL_AES_128 */
|
||||
|
||||
#ifdef WOLFSSL_AES_192
|
||||
const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_192_cfb1(void)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_EVP_aes_192_cfb1");
|
||||
if (EVP_AES_192_CFB1 == NULL)
|
||||
wolfSSL_EVP_init();
|
||||
return EVP_AES_192_CFB1;
|
||||
}
|
||||
#endif /* WOLFSSL_AES_192 */
|
||||
|
||||
#ifdef WOLFSSL_AES_256
|
||||
const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_256_cfb1(void)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_EVP_aes_256_cfb1");
|
||||
if (EVP_AES_256_CFB1 == NULL)
|
||||
wolfSSL_EVP_init();
|
||||
return EVP_AES_256_CFB1;
|
||||
}
|
||||
#endif /* WOLFSSL_AES_256 */
|
||||
#endif /* HAVE_AES_CFB1 */
|
||||
|
||||
#ifdef HAVE_AES_CFB8
|
||||
#ifdef WOLFSSL_AES_128
|
||||
const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_128_cfb8(void)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_EVP_aes_128_cfb8");
|
||||
if (EVP_AES_128_CFB8 == NULL)
|
||||
wolfSSL_EVP_init();
|
||||
return EVP_AES_128_CFB8;
|
||||
}
|
||||
#endif /* WOLFSSL_AES_128 */
|
||||
|
||||
#ifdef WOLFSSL_AES_192
|
||||
const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_192_cfb8(void)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_EVP_aes_192_cfb8");
|
||||
if (EVP_AES_192_CFB8 == NULL)
|
||||
wolfSSL_EVP_init();
|
||||
return EVP_AES_192_CFB8;
|
||||
}
|
||||
#endif /* WOLFSSL_AES_192 */
|
||||
|
||||
#ifdef WOLFSSL_AES_256
|
||||
const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_256_cfb8(void)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_EVP_aes_256_cfb8");
|
||||
if (EVP_AES_256_CFB8 == NULL)
|
||||
wolfSSL_EVP_init();
|
||||
return EVP_AES_256_CFB8;
|
||||
}
|
||||
#endif /* WOLFSSL_AES_256 */
|
||||
#endif /* HAVE_AES_CFB8 */
|
||||
|
||||
#ifdef HAVE_AES_CFB12828
|
||||
#ifdef WOLFSSL_AES_128
|
||||
const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_128_cfb128(void)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_EVP_aes_128_cfb128");
|
||||
if (EVP_AES_128_CFB128 == NULL)
|
||||
wolfSSL_EVP_init();
|
||||
return EVP_AES_128_CFB128;
|
||||
}
|
||||
#endif /* WOLFSSL_AES_128 */
|
||||
|
||||
#ifdef WOLFSSL_AES_192
|
||||
const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_192_cfb128(void)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_EVP_aes_192_cfb128");
|
||||
if (EVP_AES_192_CFB128 == NULL)
|
||||
wolfSSL_EVP_init();
|
||||
return EVP_AES_192_CFB128;
|
||||
}
|
||||
#endif /* WOLFSSL_AES_192 */
|
||||
|
||||
#ifdef WOLFSSL_AES_256
|
||||
const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_256_cfb128(void)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_EVP_aes_256_cfb128");
|
||||
if (EVP_AES_256_CFB128 == NULL)
|
||||
wolfSSL_EVP_init();
|
||||
return EVP_AES_256_CFB128;
|
||||
}
|
||||
#endif /* WOLFSSL_AES_256 */
|
||||
#endif /* HAVE_AES_CFB128 */
|
||||
|
||||
#ifdef HAVE_AES_OFB
|
||||
#ifdef WOLFSSL_AES_128
|
||||
const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_128_ofb(void)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_EVP_aes_128_ofb");
|
||||
if (EVP_AES_128_OFB == NULL)
|
||||
wolfSSL_EVP_init();
|
||||
return EVP_AES_128_OFB;
|
||||
}
|
||||
#endif /* WOLFSSL_AES_128 */
|
||||
|
||||
#ifdef WOLFSSL_AES_192
|
||||
const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_192_ofb(void)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_EVP_aes_192_ofb");
|
||||
if (EVP_AES_192_OFB == NULL)
|
||||
wolfSSL_EVP_init();
|
||||
return EVP_AES_192_OFB;
|
||||
}
|
||||
#endif /* WOLFSSL_AES_192 */
|
||||
|
||||
#ifdef WOLFSSL_AES_256
|
||||
const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_256_ofb(void)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_EVP_aes_256_ofb");
|
||||
if (EVP_AES_256_OFB == NULL)
|
||||
wolfSSL_EVP_init();
|
||||
return EVP_AES_256_OFB;
|
||||
}
|
||||
#endif /* WOLFSSL_AES_256 */
|
||||
#endif /* HAVE_AES_OFB */
|
||||
|
||||
#ifdef HAVE_AES_XTS
|
||||
#ifdef WOLFSSL_AES_128
|
||||
const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_128_xts(void)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_EVP_aes_128_xts");
|
||||
if (EVP_AES_128_XTS == NULL)
|
||||
wolfSSL_EVP_init();
|
||||
return EVP_AES_128_XTS;
|
||||
}
|
||||
#endif /* WOLFSSL_AES_128 */
|
||||
|
||||
#ifdef WOLFSSL_AES_256
|
||||
const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_256_xts(void)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_EVP_aes_256_xts");
|
||||
if (EVP_AES_256_XTS == NULL)
|
||||
wolfSSL_EVP_init();
|
||||
return EVP_AES_256_XTS;
|
||||
}
|
||||
#endif /* WOLFSSL_AES_256 */
|
||||
#endif /* HAVE_AES_XTS */
|
||||
|
||||
#ifdef HAVE_AESGCM
|
||||
#ifdef WOLFSSL_AES_128
|
||||
const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_128_gcm(void)
|
||||
@@ -27922,15 +28232,13 @@ void wolfSSL_AES_cfb128_encrypt(const unsigned char *in, unsigned char* out,
|
||||
|
||||
#ifndef NO_FILESYSTEM
|
||||
/* returns amount printed on success, negative in fail case */
|
||||
int wolfSSL_BIO_printf(WOLFSSL_BIO* bio, const char* format, ...)
|
||||
int wolfSSL_BIO_vprintf(WOLFSSL_BIO* bio, const char* format, va_list args)
|
||||
{
|
||||
int ret = -1;
|
||||
va_list args;
|
||||
|
||||
if (bio == NULL)
|
||||
return WOLFSSL_FATAL_ERROR;
|
||||
|
||||
va_start(args, format);
|
||||
switch (bio->type) {
|
||||
case WOLFSSL_BIO_FILE:
|
||||
if (bio->ptr == NULL)
|
||||
@@ -27971,10 +28279,24 @@ int wolfSSL_BIO_printf(WOLFSSL_BIO* bio, const char* format, ...)
|
||||
WOLFSSL_MSG("Unsupported WOLFSSL_BIO type for wolfSSL_BIO_printf");
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* returns amount printed on success, negative in fail case */
|
||||
int wolfSSL_BIO_printf(WOLFSSL_BIO* bio, const char* format, ...)
|
||||
{
|
||||
int ret;
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
|
||||
ret = wolfSSL_BIO_vprintf(bio, format, args);
|
||||
|
||||
va_end(args);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#if !defined(NO_FILESYSTEM) && defined(__clang__)
|
||||
@@ -48608,6 +48930,16 @@ void wolfSSL_BIO_clear_retry_flags(WOLFSSL_BIO* bio)
|
||||
bio->flags &= ~(WOLFSSL_BIO_FLAG_READ|WOLFSSL_BIO_FLAG_RETRY);
|
||||
}
|
||||
|
||||
int wolfSSL_BIO_should_retry(WOLFSSL_BIO *bio)
|
||||
{
|
||||
int ret = 0;
|
||||
if (bio != NULL) {
|
||||
ret = (int)(bio->flags & WOLFSSL_BIO_FLAG_RETRY);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* DER data is PKCS#8 encrypted. */
|
||||
WOLFSSL_EVP_PKEY* wolfSSL_d2i_PKCS8PrivateKey_bio(WOLFSSL_BIO* bio,
|
||||
WOLFSSL_EVP_PKEY** pkey,
|
||||
|
@@ -52,8 +52,8 @@
|
||||
#define BIO_s_bio wolfSSL_BIO_s_bio
|
||||
#define BIO_s_socket wolfSSL_BIO_s_socket
|
||||
#define BIO_set_fd wolfSSL_BIO_set_fd
|
||||
#define BIO_set_close wolfSSL_BIO_set_close
|
||||
#define BIO_ctrl_reset_read_request wolfSSL_BIO_ctrl_reset_read_request
|
||||
|
||||
#define BIO_set_write_buf_size wolfSSL_BIO_set_write_buf_size
|
||||
#define BIO_make_bio_pair wolfSSL_BIO_make_bio_pair
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
#define BIO_gets wolfSSL_BIO_gets
|
||||
#define BIO_puts wolfSSL_BIO_puts
|
||||
|
||||
#define BIO_should_retry(...) 1
|
||||
#define BIO_should_retry wolfSSL_BIO_should_retry
|
||||
|
||||
#define BIO_TYPE_FILE WOLFSSL_BIO_FILE
|
||||
#define BIO_TYPE_BIO WOLFSSL_BIO_BIO
|
||||
|
@@ -94,6 +94,32 @@ WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_128_cbc(void);
|
||||
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_192_cbc(void);
|
||||
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_256_cbc(void);
|
||||
#endif
|
||||
#ifndef NO_AES
|
||||
#ifdef HAVE_AES_CFB1
|
||||
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_128_cfb1(void);
|
||||
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_192_cfb1(void);
|
||||
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_256_cfb1(void);
|
||||
#endif
|
||||
#ifdef HAVE_AES_CFB8
|
||||
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_128_cfb8(void);
|
||||
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_192_cfb8(void);
|
||||
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_256_cfb8(void);
|
||||
#endif
|
||||
#ifdef HAVE_AES_CFB128
|
||||
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_128_cfb128(void);
|
||||
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_192_cfb128(void);
|
||||
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_256_cfb128(void);
|
||||
#endif
|
||||
#ifdef HAVE_AES_OFB
|
||||
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_128_ofb(void);
|
||||
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_192_ofb(void);
|
||||
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_256_ofb(void);
|
||||
#endif
|
||||
#ifdef HAVE_AES_XTS
|
||||
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_128_xts(void);
|
||||
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_256_xts(void);
|
||||
#endif
|
||||
#endif /* NO_AES */
|
||||
#if !defined(NO_AES) && defined(HAVE_AESGCM)
|
||||
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_128_gcm(void);
|
||||
WOLFSSL_API const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_aes_192_gcm(void);
|
||||
@@ -571,6 +597,20 @@ typedef WOLFSSL_EVP_CIPHER_CTX EVP_CIPHER_CTX;
|
||||
#define EVP_aes_128_cbc wolfSSL_EVP_aes_128_cbc
|
||||
#define EVP_aes_192_cbc wolfSSL_EVP_aes_192_cbc
|
||||
#define EVP_aes_256_cbc wolfSSL_EVP_aes_256_cbc
|
||||
#define EVP_aes_128_cfb1 wolfSSL_EVP_aes_128_cfb1
|
||||
#define EVP_aes_192_cfb1 wolfSSL_EVP_aes_192_cfb1
|
||||
#define EVP_aes_256_cfb1 wolfSSL_EVP_aes_256_cfb1
|
||||
#define EVP_aes_128_cfb8 wolfSSL_EVP_aes_128_cfb8
|
||||
#define EVP_aes_192_cfb8 wolfSSL_EVP_aes_192_cfb8
|
||||
#define EVP_aes_256_cfb8 wolfSSL_EVP_aes_256_cfb8
|
||||
#define EVP_aes_128_cfb128 wolfSSL_EVP_aes_128_cfb128
|
||||
#define EVP_aes_192_cfb128 wolfSSL_EVP_aes_192_cfb128
|
||||
#define EVP_aes_256_cfb128 wolfSSL_EVP_aes_256_cfb128
|
||||
#define EVP_aes_128_ofb wolfSSL_EVP_aes_128_ofb
|
||||
#define EVP_aes_192_ofb wolfSSL_EVP_aes_192_ofb
|
||||
#define EVP_aes_256_ofb wolfSSL_EVP_aes_256_ofb
|
||||
#define EVP_aes_128_xts wolfSSL_EVP_aes_128_xts
|
||||
#define EVP_aes_256_xts wolfSSL_EVP_aes_256_xts
|
||||
#define EVP_aes_128_gcm wolfSSL_EVP_aes_128_gcm
|
||||
#define EVP_aes_192_gcm wolfSSL_EVP_aes_192_gcm
|
||||
#define EVP_aes_256_gcm wolfSSL_EVP_aes_256_gcm
|
||||
|
@@ -348,6 +348,7 @@ struct WOLFSSL_EVP_PKEY {
|
||||
#endif
|
||||
};
|
||||
typedef struct WOLFSSL_EVP_PKEY WOLFSSL_PKCS8_PRIV_KEY_INFO;
|
||||
typedef struct WOLFSSL_EVP_MD_CTX WOLFSSL_EVP_MD_CTX;
|
||||
|
||||
#ifndef WOLFSSL_EVP_TYPE_DEFINED /* guard on redeclaration */
|
||||
typedef struct WOLFSSL_EVP_PKEY WOLFSSL_EVP_PKEY;
|
||||
@@ -396,7 +397,8 @@ enum BIO_TYPE {
|
||||
WOLFSSL_BIO_MEMORY = 4,
|
||||
WOLFSSL_BIO_BIO = 5,
|
||||
WOLFSSL_BIO_FILE = 6,
|
||||
WOLFSSL_BIO_BASE64 = 7
|
||||
WOLFSSL_BIO_BASE64 = 7,
|
||||
WOLFSSL_BIO_MD = 8
|
||||
};
|
||||
|
||||
enum BIO_FLAGS {
|
||||
@@ -463,7 +465,7 @@ struct WOLFSSL_BIO {
|
||||
WOLFSSL_BIO* next; /* next in chain */
|
||||
WOLFSSL_BIO* pair; /* BIO paired with */
|
||||
void* heap; /* user heap hint */
|
||||
void* ptr; /* WOLFSSL, file descriptor or memory buffer */
|
||||
void* ptr; /* WOLFSSL, file descriptor, MD, or mem buf */
|
||||
void* usrCtx; /* user set pointer */
|
||||
char* infoArg; /* BIO callback argument */
|
||||
wolf_bio_info_cb infoCb; /* BIO callback */
|
||||
@@ -1191,6 +1193,10 @@ WOLFSSL_API wolf_bio_info_cb wolfSSL_BIO_get_callback(WOLFSSL_BIO *bio);
|
||||
WOLFSSL_API void wolfSSL_BIO_set_callback_arg(WOLFSSL_BIO *bio, char *arg);
|
||||
WOLFSSL_API char* wolfSSL_BIO_get_callback_arg(const WOLFSSL_BIO *bio);
|
||||
|
||||
WOLFSSL_API WOLFSSL_BIO_METHOD* wolfSSL_BIO_f_md(void);
|
||||
WOLFSSL_API int wolfSSL_BIO_get_md_ctx(WOLFSSL_BIO *bio,
|
||||
WOLFSSL_EVP_MD_CTX **mdcp);
|
||||
|
||||
WOLFSSL_API WOLFSSL_BIO_METHOD* wolfSSL_BIO_f_buffer(void);
|
||||
WOLFSSL_API long wolfSSL_BIO_set_write_buffer_size(WOLFSSL_BIO*, long size);
|
||||
WOLFSSL_API WOLFSSL_BIO_METHOD* wolfSSL_BIO_f_ssl(void);
|
||||
@@ -1213,6 +1219,7 @@ WOLFSSL_API void* wolfSSL_BIO_get_data(WOLFSSL_BIO*);
|
||||
WOLFSSL_API void wolfSSL_BIO_set_shutdown(WOLFSSL_BIO*, int);
|
||||
WOLFSSL_API int wolfSSL_BIO_get_shutdown(WOLFSSL_BIO*);
|
||||
WOLFSSL_API void wolfSSL_BIO_clear_retry_flags(WOLFSSL_BIO*);
|
||||
WOLFSSL_API int wolfSSL_BIO_should_retry(WOLFSSL_BIO *bio);
|
||||
|
||||
WOLFSSL_API WOLFSSL_BIO_METHOD *wolfSSL_BIO_meth_new(int, const char*);
|
||||
WOLFSSL_API void wolfSSL_BIO_meth_free(WOLFSSL_BIO_METHOD*);
|
||||
@@ -1229,6 +1236,7 @@ WOLFSSL_API long wolfSSL_BIO_set_ssl(WOLFSSL_BIO*, WOLFSSL*, int flag);
|
||||
#ifndef NO_FILESYSTEM
|
||||
WOLFSSL_API long wolfSSL_BIO_set_fd(WOLFSSL_BIO* b, int fd, int flag);
|
||||
#endif
|
||||
WOLFSSL_API int wolfSSL_BIO_set_close(WOLFSSL_BIO *b, long flag);
|
||||
WOLFSSL_API void wolfSSL_set_bio(WOLFSSL*, WOLFSSL_BIO* rd, WOLFSSL_BIO* wr);
|
||||
|
||||
#ifndef NO_FILESYSTEM
|
||||
@@ -1999,6 +2007,8 @@ WOLFSSL_API int wolfSSL_want(WOLFSSL*);
|
||||
WOLFSSL_API int wolfSSL_want_read(WOLFSSL*);
|
||||
WOLFSSL_API int wolfSSL_want_write(WOLFSSL*);
|
||||
|
||||
WOLFSSL_API int wolfSSL_BIO_vprintf(WOLFSSL_BIO* bio, const char* format,
|
||||
va_list args);
|
||||
WOLFSSL_API int wolfSSL_BIO_printf(WOLFSSL_BIO*, const char*, ...);
|
||||
WOLFSSL_API int wolfSSL_BIO_dump(WOLFSSL_BIO *bio, const char*, int);
|
||||
WOLFSSL_API int wolfSSL_ASN1_UTCTIME_print(WOLFSSL_BIO*,
|
||||
|
Reference in New Issue
Block a user