assorted cleanups and refactors for C89 conformance, codespell and check-source-text, and consistent heap shim usage.

.github/workflows/codespell.yml: remove */README_jp.txt from "skip" list.

IDE/Renesas/cs+/Projects/t4_demo/README_jp.txt: convert from SHIFT_JIS to UTF-8.

cmake/options.h.in: use "#cmakedefine HAVE_PTHREAD 1" to avoid conflict with config.h.

configure.ac: add --enable-c89, and remove !ENABLED_OPENSSLEXTRA dependency from AM_CONDITIONAL([BUILD_CRYPTONLY],...).

wolfcrypt/src/asn.c: refactor SetOthername() for efficiency, and add PRAGMA_GCC to suppress false positive -Wstringop-overflow associated with -fstack-protector.

wolfssl/wolfcrypt/rsa.h: add WC_ prefixes to RSA_PKCS1_PADDING_SIZE and RSA_PKCS1_OAEP_PADDING_SIZE, and define unprefixed compat aliases only if !OPENSSL_COEXIST.

wolfssl/wolfcrypt/types.h:

  #ifdef WOLF_C89, #define WC_BITFIELD unsigned;
  enhance WOLF_ENUM_DUMMY_LAST_ELEMENT() to include the line number, to construct unique labels given a per-filename argument, to accommodate anonymous enums.

examples/asn1/asn1.c:
examples/client/client.c:
examples/pem/pem.c:
examples/server/server.c:
wolfcrypt/src/sp_dsp32.c:
wolfcrypt/src/wc_port.c:
wolfssl/test.h:

  use XMALLOC/XREALLOC/XFREE consistently, not malloc/realloc/free.

wolfcrypt/benchmark/benchmark.c:
wolfcrypt/src/memory.c:
wolfcrypt/test/test.c:
wolfssl/wolfcrypt/mem_track.h:
wolfssl/wolfcrypt/settings.h:
wolfssl/wolfcrypt/types.h:

  annotate intentional native heap access with "/* native heap */".

wolfcrypt/src/asn.c:
wolfssl/callbacks.h:
wolfssl/openssl/ec.h:
wolfssl/openssl/ssl.h:
wolfssl/wolfcrypt/hpke.h:
wolfssl/wolfcrypt/types.h:

  fix enum trailing commas.

wolfssl/openssl/ec.h:
wolfssl/openssl/evp.h:
wolfssl/openssl/rsa.h:
wolfssl/openssl/ssl.h:

  use WC_BITFIELD in bitfield elements, not byte or word16, to allow for pedantic C89 conformant builds.

wolfssl/openssl/ec.h:
wolfssl/openssl/evp.h:
wolfssl/openssl/pem.h:
wolfssl/openssl/ssl.h:
wolfssl/wolfcrypt/logging.h:
avoid variadic macros wherever possible, and where unavoidable, #ifdef WOLF_NO_VARIADIC_MACROS, define them with empty arg lists, rather than ..., to support Watcom compiler.

wolfssl/wolfcrypt/settings.h: if defined(__WATCOMC__), define WOLF_NO_VARIADIC_MACROS.
This commit is contained in:
Daniel Pouzzner
2024-11-07 22:36:24 -06:00
parent b648d35449
commit aa18bbca55
31 changed files with 342 additions and 290 deletions

View File

@ -27,4 +27,4 @@ jobs:
# The exclude_file contains lines of code that should be ignored. This is useful for individual lines which have non-words that can safely be ignored.
exclude_file: '.codespellexcludelines'
# To skip files entirely from being processed, add it to the following list:
skip: '*.cproject,*.der,*.mtpj,*.pem,*.vcxproj,.git,*.launch,*.scfg,*/README_jp.txt'
skip: '*.cproject,*.der,*.mtpj,*.pem,*.vcxproj,.git,*.launch,*.scfg'

View File

@ -1,71 +1,71 @@
wolfSSL/AlphaProject<EFBFBD>{<7B>[<5B>h<EFBFBD>f<EFBFBD><66><EFBFBD>@<40>Z<EFBFBD>b<EFBFBD>g<EFBFBD>A<EFBFBD>b<EFBFBD>v<EFBFBD>K<EFBFBD>C<EFBFBD>h
wolfSSL/AlphaProjectボードデモ セットアップガイド
<EFBFBD><EFBFBD><EFBFBD>̃f<EFBFBD><EFBFBD><EFBFBD>͈ȉ<EFBFBD><EFBFBD>̊‹<EFBFBD><EFBFBD>Ńe<EFBFBD>X<EFBFBD>g<EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><EFBFBD>܂<EFBFBD><EFBFBD>B
このデモは以下の環境でテストしています。
Renesas : CS+ v6.01, v8.01
Board : AP-RX71M-0A
wolfSSL : 3.15.3, 4.0.0
<EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD>A<EFBFBD>b<EFBFBD>v<EFBFBD><EFBFBD>F
セットアップ手順:
<EFBFBD>P<EFBFBD>D<EFBFBD>\<5C>t<EFBFBD>g<EFBFBD>E<EFBFBD>F<EFBFBD>A<EFBFBD>̓<EFBFBD><CC93><EFBFBD>
<EFBFBD>@- AP<EFBFBD>{<7B>[<5B>h<EFBFBD>t<EFBFBD><74><EFBFBD>̃\<5C>t<EFBFBD>g<EFBFBD>E<EFBFBD>F<EFBFBD>A<EFBFBD><EFBFBD><EA8EAE><EFBFBD>K<EFBFBD><4B><EFBFBD>ȃt<C883>H<EFBFBD><48><EFBFBD>_<EFBFBD>[<5B><><EFBFBD>ɉ𓀂<C989><F0938082>܂<EFBFBD><DC82>B
<EFBFBD>@- <20><><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD>H<EFBFBD><48><EFBFBD>_<EFBFBD>[<5B><><EFBFBD><EFBFBD>wolfssl<73><EFBFBD><EA8EAE><EFBFBD>𓀂<EFBFBD><F0938082>܂<EFBFBD><DC82>B
1.ソフトウェアの入手
 - APボード付属のソフトウェア一式を適当なフォルダー下に解凍します。
 - 同じフォルダー下にwolfssl一式を解凍します。
<EFBFBD>Q<EFBFBD>DwolfSSL<EFBFBD>̃Z<EFBFBD>b<EFBFBD>g<EFBFBD>A<EFBFBD>b<EFBFBD>v
<EFBFBD>@- CS+<EFBFBD>ɂ<EFBFBD>wolfssl\IDE\Renesas\cs+\Project<EFBFBD><EFBFBD><EFBFBD><EFBFBD>wolfssl\wolfssl_lib.mtpj<EFBFBD><EFBFBD><EFBFBD>J<EFBFBD><EFBFBD>
<EFBFBD>@<40>@wolfSSL<EFBFBD><EFBFBD><EFBFBD>C<EFBFBD>u<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[<5B>̃r<CC83><72><EFBFBD>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>B
<EFBFBD>@- <20><><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD>H<EFBFBD><48><EFBFBD>_<EFBFBD>̉<EFBFBD><CC89><EFBFBD>t4_demo.mtpj<70><6A><EFBFBD>J<EFBFBD><4A><EFBFBD>A<EFBFBD>f<EFBFBD><66><EFBFBD>v<EFBFBD><76><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD><EFBFBD>̃r<CC83><72><EFBFBD>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>B
<EFBFBD>@<40><><EFBFBD>̃v<CC83><76><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD>u<EFBFBD><75><EFBFBD><EFBFBD><EFBFBD>[<5B>`<60><><EFBFBD>Ńr<C583><72><EFBFBD>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>B
wolfSSLのセットアップ
 - CS+にてwolfssl¥IDE¥Renesas¥cs+¥Project下のwolfssl¥wolfssl_lib.mtpjを開き
  wolfSSLライブラリーのビルドをします。
 - 同じフォルダの下のt4_demo.mtpjを開き、デモプログラムのビルドをします。
 このプログラムもライブラリー形式でビルドされます。
<EFBFBD>R<EFBFBD>DAlphaProject<EFBFBD><EFBFBD><EFBFBD>̃Z<EFBFBD>b<EFBFBD>g<EFBFBD>A<EFBFBD>b<EFBFBD>v
AlphaProject側のセットアップ
!!** <EFBFBD>T<EFBFBD><EFBFBD><EFBFBD>v<EFBFBD><EFBFBD><EFBFBD>v<EFBFBD><EFBFBD><EFBFBD>O<EFBFBD><EFBFBD><EFBFBD><EFBFBD> v2.0 <20><><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD>́A_ether_ => _usbfunc_ **!!
!!** <EFBFBD>ƒu<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> **!!
!!** サンプルプログラム v2.0 を使用する場合は、_ether_ => _usbfunc_ **!!
!!** と置き換えてください **!!
<EFBFBD>@<40>f<EFBFBD><66><EFBFBD><EFBFBD>ap_rx71m_0a_sample_cs\Sample\ap_rx71m_0a_ether_sample_cs<EFBFBD>t<EFBFBD>H<EFBFBD><EFBFBD><EFBFBD>_<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>@ap_rx71m_0a_ether_sample_cs.mtpj<EFBFBD>v<EFBFBD><EFBFBD><EFBFBD>W<EFBFBD>F<EFBFBD>N<EFBFBD>g<EFBFBD>𗘗p<EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><EFBFBD>B
<EFBFBD>@
<EFBFBD>@- ap_rx71m_0a_sample_cs\Sample\ap_rx71m_0a_ether_sample_cs\src<EFBFBD>t<EFBFBD>H<EFBFBD><EFBFBD><EFBFBD>_<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>@AP_RX71M_0A.c<EFBFBD>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>J<EFBFBD><4A><EFBFBD>A
<EFBFBD>@<40>X<EFBFBD>V<EFBFBD>s<EFBFBD>ڂ<EFBFBD>echo_srv_init()<EFBFBD>̉<EFBFBD><EFBFBD><EFBFBD>wolfSSL_init()<EFBFBD><EFBFBD><EFBFBD>}<7D><><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>B
 デモはap_rx71m_0a_sample_cs¥Sample¥ap_rx71m_0a_ether_sample_csフォルダ下の
 ap_rx71m_0a_ether_sample_cs.mtpjプロジェクトを利用します。
 
 - ap_rx71m_0a_sample_cs¥Sample¥ap_rx71m_0a_ether_sample_cs¥srcフォルダ下の
 AP_RX71M_0A.cファイルを開き、
 97行目のecho_srv_init()の下にwolfSSL_init()を挿入します。
===
sci_init();
can_init();
echo_srv_init();
wolfSSL_init(); <- <EFBFBD><EFBFBD><EFBFBD>̍s<EFBFBD><EFBFBD><EFBFBD>}<7D><>
wolfSSL_init(); <- この行を挿入
===
!!** <EFBFBD>T<EFBFBD><EFBFBD><EFBFBD>v<EFBFBD><EFBFBD><EFBFBD>v<EFBFBD><EFBFBD><EFBFBD>O<EFBFBD><EFBFBD><EFBFBD><EFBFBD> v2.0 <20><><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD>́A<CD81><41><EFBFBD>L **!!
!!** サンプルプログラム v2.0 を使用する場合は、下記 **!!
===
CanInit();
SciInit();
EthernetAppInit();
UsbfInit();
wolfSSL_init(); <- <EFBFBD><EFBFBD><EFBFBD>̍s<EFBFBD><EFBFBD><EFBFBD>}<7D><>
wolfSSL_init(); <- この行を挿入
===
!!**********************************************************************!!
<EFBFBD>@- ap_rx71m_0a_sample_cs\Sample\ap_rx71m_0a_ether_sample_cs\src\smc_gen\r_bsp_config.h
<EFBFBD>@<40><><EFBFBD>J<EFBFBD><4A><EFBFBD>A<EFBFBD>X<EFBFBD>^<5E>b<EFBFBD>N<EFBFBD>T<EFBFBD>C<EFBFBD>Y<EFBFBD>ƃq<C683>[<5B>v<EFBFBD>T<EFBFBD>C<EFBFBD>Y<EFBFBD><59><EFBFBD>ȉ<EFBFBD><C889>̂悤<CC82>ɐݒ肵<DD92>܂<EFBFBD><DC82>B
<EFBFBD>@
<EFBFBD>@120<EFBFBD>s<EFBFBD><EFBFBD> #pragma stacksize su=0x2000
<EFBFBD>@139<EFBFBD>s<EFBFBD><EFBFBD> #define BSP_CFG_HEAP_BYTES (0xa000)
 - ap_rx71m_0a_sample_cs¥Sample¥ap_rx71m_0a_ether_sample_cs¥src¥smc_gen¥r_bsp_config.h
 を開き、スタックサイズとヒープサイズを以下のように設定します。
 
 120行目 #pragma stacksize su=0x2000
 139行目 #define BSP_CFG_HEAP_BYTES (0xa000)
!!** <EFBFBD>T<EFBFBD><EFBFBD><EFBFBD>v<EFBFBD><EFBFBD><EFBFBD>v<EFBFBD><EFBFBD><EFBFBD>O<EFBFBD><EFBFBD><EFBFBD><EFBFBD> v2.0 <20><><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD>́A<CD81><41><EFBFBD>L **!!
<EFBFBD>@- ap_rx71m_0a_sample_cs\Sample\ap_rx71m_0a_usbfunc_sample_cs\src\smc_gen\r_bsp_config.h
<EFBFBD>@<40><><EFBFBD>J<EFBFBD><4A><EFBFBD>A<EFBFBD>X<EFBFBD>^<5E>b<EFBFBD>N<EFBFBD>T<EFBFBD>C<EFBFBD>Y<EFBFBD>ƃq<C683>[<5B>v<EFBFBD>T<EFBFBD>C<EFBFBD>Y<EFBFBD><59><EFBFBD>ȉ<EFBFBD><C889>̂悤<CC82>ɐݒ肵<DD92>܂<EFBFBD><DC82>B
<EFBFBD>@154<EFBFBD>s<EFBFBD><EFBFBD> #pragma stacksize su=0x2000
<EFBFBD>@175<EFBFBD>s<EFBFBD><EFBFBD> #define BSP_CFG_HEAP_BYTES (0xa000)
!!** サンプルプログラム v2.0 を使用する場合は、下記 **!!
 - ap_rx71m_0a_sample_cs¥Sample¥ap_rx71m_0a_usbfunc_sample_cs¥src¥smc_gen¥r_bsp_config.h
 を開き、スタックサイズとヒープサイズを以下のように設定します。
 154行目 #pragma stacksize su=0x2000
 175行目 #define BSP_CFG_HEAP_BYTES (0xa000)
!!**********************************************************************!!
<EFBFBD>@- IP<EFBFBD>A<EFBFBD>h<EFBFBD><EFBFBD><EFBFBD>X<EFBFBD>̃f<EFBFBD>t<EFBFBD>H<EFBFBD><EFBFBD><EFBFBD>g<EFBFBD>l<EFBFBD>͈ȉ<EFBFBD><EFBFBD>̂悤<EFBFBD>ɂȂ<EFBFBD><EFBFBD>Ă<EFBFBD><EFBFBD>܂<EFBFBD><EFBFBD>B
<EFBFBD>@<40>K<EFBFBD>v<EFBFBD><76><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>΁ASample\ap_rx71m_0a_ether_sample_cs\src\r_t4_rx\src\config_tcpudp.c
<EFBFBD>@<40><><EFBFBD><EFBFBD>139<33>s<EFBFBD>ڂ<EFBFBD><DA82><EFBFBD><EFBFBD>̒<EFBFBD><CC92>`<60><><EFBFBD>ύX<CF8D><58><EFBFBD>܂<EFBFBD><DC82>B
<EFBFBD>@!!** <EFBFBD>T<EFBFBD><EFBFBD><EFBFBD>v<EFBFBD><EFBFBD><EFBFBD>v<EFBFBD><EFBFBD><EFBFBD>O<EFBFBD><EFBFBD><EFBFBD><EFBFBD> v2.0 <20><><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD>́A<CD81><41><EFBFBD>L **!!
Sample\ap_rx71m_0a_usbfunc_sample_cs\src\tcp_sample\src\config_tcpudp.c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>166<EFBFBD>s<EFBFBD>ڂ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̒<EFBFBD><EFBFBD>`<60><><EFBFBD>ύX<CF8D><58><EFBFBD>܂<EFBFBD><DC82>B
 - IPアドレスのデフォルト値は以下のようになっています。
 必要があれば、Sample¥ap_rx71m_0a_ether_sample_cs¥src¥r_t4_rx¥src¥config_tcpudp.c
 内の139行目からの定義を変更します。
 !!** サンプルプログラム v2.0 を使用する場合は、下記 **!!
Sample¥ap_rx71m_0a_usbfunc_sample_cs¥src¥tcp_sample¥src¥config_tcpudp.c
内の166行目からの定義を変更します。
!!**********************************************************************!!
===
@ -75,74 +75,74 @@ wolfSSL/AlphaProject
===
<EFBFBD>@- CS+<EFBFBD><EFBFBD>ap_rx71m_0a_ether_sample_cs.mtpj<EFBFBD>v<EFBFBD><EFBFBD><EFBFBD>W<EFBFBD>F<EFBFBD>N<EFBFBD>g<EFBFBD><EFBFBD><EFBFBD>J<EFBFBD><EFBFBD><EFBFBD>AwolfSSL<EFBFBD>ƃf<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD>u<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>@<40>o<EFBFBD>^<5E><><EFBFBD>܂<EFBFBD><DC82>BCC-RX(<28>r<EFBFBD><72><EFBFBD>h<EFBFBD>c<EFBFBD>[<5B><>)-><3E><><EFBFBD><EFBFBD><EFBFBD>N<EFBFBD>E<EFBFBD>I<EFBFBD>v<EFBFBD>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>^<5E>u-><3E>g<EFBFBD>p<EFBFBD><70><EFBFBD><EFBFBD>C<EFBFBD>u<EFBFBD><75><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>@<40>ȉ<EFBFBD><C889>̓<EFBFBD><CC93>‚̃t<CC83>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>o<EFBFBD>^<5E><><EFBFBD>܂<EFBFBD><DC82>B
<EFBFBD>@wolfssl\IDE\Renesas\cs+\Projects\wolfssl_lib\DefaultBuild\wolfssl_lib.lib
<EFBFBD>@wolfssl\IDE\Renesas\cs+\Projects\t4_demo\DefaultBuild\t4_demo.lib
 - CS+ap_rx71m_0a_ether_sample_cs.mtpjプロジェクトを開き、wolfSSLとデモライブラリを
 登録します。CC-RX(ビルドツール)->リンク・オプションタブ->使用するライブラリに
 以下の二つのファイルを登録します。
 wolfssl¥IDE¥Renesas¥cs+¥Projects¥wolfssl_lib¥DefaultBuild¥wolfssl_lib.lib
 wolfssl¥IDE¥Renesas¥cs+¥Projects¥t4_demo¥DefaultBuild¥t4_demo.lib
- CC-RX(<EFBFBD>r<EFBFBD><EFBFBD><EFBFBD>h<EFBFBD>c<EFBFBD>[<5B><>)-><3E><><EFBFBD>C<EFBFBD>u<EFBFBD><75><EFBFBD><EFBFBD><EFBFBD>[<5B>W<EFBFBD>F<EFBFBD>l<EFBFBD><6C><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>^<5E>u-><3E><><EFBFBD>C<EFBFBD>u<EFBFBD><75><EFBFBD><EFBFBD><EFBFBD>[<5B>\<5C><><EFBFBD><EFBFBD><EFBFBD>uC99<39>v<EFBFBD>ɁA
ctype.h<EFBFBD><EFBFBD><EFBFBD>L<EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>u<EFBFBD>͂<EFBFBD><EFBFBD>v<EFBFBD>ɐݒ肵<EFBFBD>܂<EFBFBD><EFBFBD>B
- CC-RX(ビルドツール)->ライブラリージェネレーションタブ->ライブラリー構成を「C99」に、
ctype.hを有効にするを「はい」に設定します。
<EFBFBD>@- <20>v<EFBFBD><76><EFBFBD>W<EFBFBD>F<EFBFBD>N<EFBFBD>g<EFBFBD>̃r<CC83><72><EFBFBD>h<EFBFBD>A<EFBFBD>^<5E>[<5B>Q<EFBFBD>b<EFBFBD>g<EFBFBD>ւ̃_<CC83>E<EFBFBD><45><EFBFBD><EFBFBD><EFBFBD>[<5B>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̂<EFBFBD><CC82>A<EFBFBD>\<5C><>-><3E>f<EFBFBD>o<EFBFBD>b<EFBFBD>O<EFBFBD>E<EFBFBD>R<EFBFBD><52><EFBFBD>\<5C>[<5B><>
<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD>R<EFBFBD><52><EFBFBD>\<5C>[<5B><><EFBFBD><EFBFBD><EFBFBD>\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>B<EFBFBD><42><EFBFBD>s<EFBFBD><73><EFBFBD>J<EFBFBD>n<EFBFBD><6E><EFBFBD><EFBFBD><EFBFBD>ƃR<C683><52><EFBFBD>\<5C>[<5B><><EFBFBD>Ɉȉ<C988><C889>̕\<5C><><EFBFBD><EFBFBD><EFBFBD>o<EFBFBD>͂<EFBFBD><CD82><EFBFBD><EFBFBD>܂<EFBFBD><DC82>B
<EFBFBD>@
 - プロジェクトのビルド、ターゲットへのダウンロードをしたのち、表示->デバッグ・コンソール
 からコンソールを表示させます。実行を開始するとコンソールに以下の表示が出力されます。
 
===
<EFBFBD>@wolfSSL Demo
 wolfSSL Demo
t: test, b: benchmark, s: server, or c <IP addr> <Port>: client
$
===
t<EFBFBD>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD>F<EFBFBD>e<EFBFBD>Í<EFBFBD><C38D><EFBFBD><EFBFBD>A<EFBFBD><41><EFBFBD>S<EFBFBD><53><EFBFBD>Y<EFBFBD><59><EFBFBD>̊ȒP<C892>ȃe<C883>X<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>s<EFBFBD><73><EFBFBD>܂<EFBFBD><DC82>B<EFBFBD><42><EFBFBD>v<EFBFBD>̃A<CC83><41><EFBFBD>S<EFBFBD><53><EFBFBD>Y<EFBFBD><59><EFBFBD><EFBFBD>
<EFBFBD>@<40>g<EFBFBD>ݍ<EFBFBD><DD8D>܂<EFBFBD><DC82>Ă<EFBFBD><C482><EFBFBD>m<EFBFBD>F<EFBFBD><46><EFBFBD><EFBFBD>Ƃ<EFBFBD><C682>ł<EFBFBD><C582>܂<EFBFBD><DC82>B<EFBFBD>g<EFBFBD>ݍ<EFBFBD><DD8D>ރA<DE83><41><EFBFBD>S<EFBFBD><53><EFBFBD>Y<EFBFBD><59><EFBFBD>̓r<CD83><72><EFBFBD>h<EFBFBD>I<EFBFBD>v<EFBFBD>V<EFBFBD><56><EFBFBD><EFBFBD>
<EFBFBD>@<40>ŕύX<CF8D><58><EFBFBD><EFBFBD>Ƃ<EFBFBD><C682>ł<EFBFBD><C582>܂<EFBFBD><DC82>B<EFBFBD>ڂ<EFBFBD><DA82><EFBFBD><EFBFBD>̓<EFBFBD><CD83>[<5B>U<EFBFBD>}<7D>j<EFBFBD><6A><EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD>Q<EFBFBD>Ƃ<EFBFBD><C682>Ă<EFBFBD><C482><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B
b<EFBFBD>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD>F<EFBFBD>e<EFBFBD>Í<EFBFBD><C38D>A<EFBFBD><41><EFBFBD>S<EFBFBD><53><EFBFBD>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD>Ƃ̊ȒP<C892>ȃx<C883><78><EFBFBD>`<60>}<7D>[<5B>N<EFBFBD><4E><EFBFBD><EFBFBD><EFBFBD>s<EFBFBD><73><EFBFBD>܂<EFBFBD><DC82>B
s<EFBFBD>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD>F<EFBFBD>ȒP<C892><50>TLS<4C>T<EFBFBD>[<5B>o<EFBFBD><6F><EFBFBD>N<EFBFBD><4E><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>B<EFBFBD>N<EFBFBD><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƃr<C683><72><EFBFBD>h<EFBFBD><68><EFBFBD><EFBFBD>IP<49>A<EFBFBD>h<EFBFBD><68><EFBFBD>X<EFBFBD>A
<EFBFBD>@<40>|<7C>[<5B>g50000<30>ɂ<EFBFBD>TLS<4C>ڑ<EFBFBD><DA91><EFBFBD><EFBFBD>҂<EFBFBD><D282>܂<EFBFBD><DC82>B
c<EFBFBD>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD>F<EFBFBD>ȒP<C892><50>TLS<4C>N<EFBFBD><4E><EFBFBD>C<EFBFBD>A<EFBFBD><41><EFBFBD>g<EFBFBD><67><EFBFBD>N<EFBFBD><4E><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>B<EFBFBD>N<EFBFBD><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƒ<EFBFBD><C691><EFBFBD><EFBFBD>A<EFBFBD>[<5B>M<EFBFBD><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>g<EFBFBD>Ŏw<C58E><EFBFBD>
<EFBFBD>@IP<49>A<EFBFBD>h<EFBFBD><68><EFBFBD>X<EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>[<5B>M<EFBFBD><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>g<EFBFBD>Ŏw<C58E><EFBFBD><EFBFBD>|<7C>[<5B>g<EFBFBD>ɑ΂<C991><CE82><EFBFBD>TLS<4C>ڑ<EFBFBD><DA91><EFBFBD><EFBFBD>܂<EFBFBD><DC82>B
tコマンド:各暗号化アルゴリズムの簡単なテストを実行します。所要のアルゴリズムが
 組み込まれているか確認することができます。組み込むアルゴリズムはビルドオプション
 で変更することができます。詳しくはユーザマニュアルを参照してください。
bコマンド:各暗号アルゴリズムごとの簡単なベンチマークを実行します。
sコマンド簡単なTLSサーバを起動します。起動するとビルド時のIPアドレス、
 ポート50000にてTLS接続を待ちます。
cコマンド簡単なTLSクライアントを起動します。起動すると第一アーギュメントで指定された
 IPアドレス、第二アーギュメントで指定されたポートに対してTLS接続します。
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̃R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD><68><EFBFBD>P<EFBFBD><50><EFBFBD>̂ݎ<CC82><DD8E>s<EFBFBD><73><EFBFBD>܂<EFBFBD><DC82>B<EFBFBD>J<EFBFBD><4A><EFBFBD>Ԃ<EFBFBD><D482><EFBFBD><EFBFBD>s<EFBFBD><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>́AMPU<50><55><EFBFBD><EFBFBD><EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD>
<EFBFBD>ċN<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><EFBFBD>B
いずれのコマンドも回のみ実行します。繰り返し実行したい場合は、MPUをリセットして
再起動します。
<EFBFBD>S<EFBFBD>D<EFBFBD>Ό<EFBFBD><EFBFBD>e<EFBFBD>X<EFBFBD>g
<EFBFBD>@<40>f<EFBFBD><66><EFBFBD>̂<EFBFBD><CC82>A<EFBFBD><41><EFBFBD>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD><68><EFBFBD>g<EFBFBD><67><EFBFBD>āA<C481><41><EFBFBD>̋@<40><><EFBFBD>ƊȒP<C892>ȑΌ<C891><CE8C>e<EFBFBD>X<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƃ<EFBFBD><C682>ł<EFBFBD><C582>܂<EFBFBD><DC82>B
<EFBFBD>@Ubuntu<EFBFBD>Ȃǂ<EFBFBD>GCC, make<EFBFBD>‹<EFBFBD><EFBFBD>AWindows<EFBFBD><EFBFBD>Visual Studio<EFBFBD>Ȃǂ<EFBFBD>
<EFBFBD>@<40>Ό<EFBFBD><CE8C>e<EFBFBD>X<EFBFBD>g<EFBFBD>p<EFBFBD>̃T<CC83>[<5B>o<EFBFBD>A<EFBFBD>N<EFBFBD><4E><EFBFBD>C<EFBFBD>A<EFBFBD><41><EFBFBD>g<EFBFBD><67><EFBFBD>r<EFBFBD><72><EFBFBD>h<EFBFBD><68><EFBFBD><EFBFBD>Ƃ<EFBFBD><C682>ł<EFBFBD><C582>܂<EFBFBD><DC82>B
4.対向テスト
 デモのs、cコマンドを使って、他の機器と簡単な対向テストをすることができます。
 UbuntuなどのGCC, make環境、WindowsVisual Studioなどで
 対向テスト用のサーバ、クライアントをビルドすることができます。
<EFBFBD>@GCC,make<EFBFBD>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD>‹<EFBFBD><C28B>ł́A<CD81>_<EFBFBD>E<EFBFBD><45><EFBFBD><EFBFBD><EFBFBD>[<5B>h<EFBFBD>𓀂<EFBFBD><F0938082><EFBFBD>wolfssl<73>̃f<CC83>B<EFBFBD><42><EFBFBD>N<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>ňȉ<C588><C889><EFBFBD>
<EFBFBD>@<40>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD>𔭍s<F094AD8D><73><EFBFBD><EFBFBD><EFBFBD>ƁA<C681><41><EFBFBD>C<EFBFBD>u<EFBFBD><75><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>e<EFBFBD>X<EFBFBD>g<EFBFBD>p<EFBFBD>̃N<CC83><4E><EFBFBD>C<EFBFBD>A<EFBFBD><41><EFBFBD>g<EFBFBD>A<EFBFBD>T<EFBFBD>[<5B>o<EFBFBD>ȂLjꎮ<C788><EA8EAE><EFBFBD>r<EFBFBD><72><EFBFBD>h
<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>B
<EFBFBD>@
<EFBFBD>@$ ./configure
<EFBFBD>@$ make check
<EFBFBD>@
<EFBFBD>@<40><><EFBFBD>̌<EFBFBD><CC8C>A<EFBFBD>ȉ<EFBFBD><C889>̂悤<CC82>Ȏw<C88E><77><EFBFBD>ŃN<C583><4E><EFBFBD>C<EFBFBD>A<EFBFBD><41><EFBFBD>g<EFBFBD>܂<EFBFBD><DC82>̓T<CD83>[<5B>o<EFBFBD><6F><EFBFBD>N<EFBFBD><4E><EFBFBD><EFBFBD><EFBFBD>āA<C481>{<7B>[<5B>h<EFBFBD><68><EFBFBD><EFBFBD>
<EFBFBD>@<40>f<EFBFBD><66><EFBFBD>ƑΌ<C691><CE8C>e<EFBFBD>X<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD>Ƃ<EFBFBD><C682>ł<EFBFBD><C582>܂<EFBFBD><DC82>B
<EFBFBD>@
<EFBFBD>@PC<50><43><EFBFBD>F
<EFBFBD>@$ ./examples/server/server -b -d
<EFBFBD>@<40>{<7B>[<5B>h<EFBFBD><68><EFBFBD>F
<EFBFBD>@<40>@> c <IP<EFBFBD>A<EFBFBD>h<EFBFBD><EFBFBD><EFBFBD>X> 11111
 GCC,makeコマンド環境では、ダウンロード解凍したwolfsslのディレクトリ下で以下の
 コマンドを発行すると、ライブラリ、テスト用のクライアント、サーバなど一式がビルド
 されます。
 
 $ ./configure
 $ make check
 
 その後、以下のような指定でクライアントまたはサーバを起動して、ボード上の
 デモと対向テストすることができます。
 
 PC側
 $ ./examples/server/server -b -d
 ボード側:
  > c <IPアドレス> 11111
<EFBFBD>@<40>{<7B>[<5B>h<EFBFBD><68><EFBFBD>F
<EFBFBD>@<40>@> s
<EFBFBD>@PC<50><43><EFBFBD>F<EFBFBD>@
<EFBFBD>@$ ./examples/client/client -h <IP<EFBFBD>A<EFBFBD>h<EFBFBD><EFBFBD><EFBFBD>X> -p 50000
<EFBFBD>@
<EFBFBD>@
<EFBFBD>@Windows<EFBFBD><EFBFBD>Visual Studio<EFBFBD>ł́A<EFBFBD>_<EFBFBD>E<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[<5B>h<EFBFBD>𓀂<EFBFBD><F0938082><EFBFBD>wolfssl<73>t<EFBFBD>H<EFBFBD><48><EFBFBD>_<EFBFBD><5F><EFBFBD><EFBFBD>wolfssl64.sln
<EFBFBD>@<40><><EFBFBD>J<EFBFBD><4A><EFBFBD>A<EFBFBD>\<5C><><EFBFBD><EFBFBD><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>r<EFBFBD><72><EFBFBD>h<EFBFBD><68><EFBFBD>܂<EFBFBD><DC82>BDebug<75>t<EFBFBD>H<EFBFBD><48><EFBFBD>_<EFBFBD><5F><EFBFBD>Ƀr<C983><72><EFBFBD>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD><EFBFBD>client.exe<EFBFBD><EFBFBD>
<EFBFBD>@server.exe<EFBFBD>𗘗p<EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><EFBFBD>B
<EFBFBD>@
PC<EFBFBD><EFBFBD><EFBFBD>F
<EFBFBD>@Debug> .\server -b -d
<EFBFBD>@<40>{<7B>[<5B>h<EFBFBD><68><EFBFBD>F
<EFBFBD>@<40>@> c <IP<EFBFBD>A<EFBFBD>h<EFBFBD><EFBFBD><EFBFBD>X> 11111
 ボード側:
  > s
 PC側 
 $ ./examples/client/client -h <IPアドレス> -p 50000
 
 
 WindowsVisual Studioでは、ダウンロード解凍したwolfsslフォルダ下のwolfssl64.sln
 を開き、ソリューションをビルドします。Debugフォルダ下にビルドされるclient.exe
 server.exeを利用します。
 
PC側:
 Debug> .¥server -b -d
 ボード側:
  > c <IPアドレス> 11111
<EFBFBD>@<40>{<7B>[<5B>h<EFBFBD><68><EFBFBD>F
<EFBFBD>@<40>@> s
<EFBFBD>@PC<50><43><EFBFBD>F
<EFBFBD>@Debug> .\client -h <IP<EFBFBD>A<EFBFBD>h<EFBFBD><EFBFBD><EFBFBD>X> -p 50000
 ボード側:
  > s
 PC側
 Debug> .¥client -h <IPアドレス> -p 50000
<EFBFBD>ȏ<EFBFBD><EFBFBD>A
以上、

View File

@ -131,7 +131,7 @@ extern "C" {
#undef HAVE_POLY1305
#cmakedefine HAVE_POLY1305
#undef HAVE_PTHREAD
#cmakedefine HAVE_PTHREAD
#cmakedefine HAVE_PTHREAD 1
#undef HAVE_REPRODUCIBLE_BUILD
#cmakedefine HAVE_REPRODUCIBLE_BUILD
#undef HAVE_SESSION_TICKET

View File

@ -6000,6 +6000,19 @@ else
fi
# C89 build
AC_ARG_ENABLE([c89],
[AS_HELP_STRING([--enable-c89],[Build with C89 toolchain (default: disabled)])],
[ ENABLED_C89=$enableval ],
[ ENABLED_C89=no ]
)
if test "$ENABLED_C89" = "yes"
then
AM_CFLAGS="$AM_CFLAGS -DWOLF_C89"
test "$enable_inline" = "" && enable_inline=no
fi
# inline Build
AC_ARG_ENABLE([inline],
[AS_HELP_STRING([--enable-inline],[Enable inline functions (default: enabled)])],
@ -9928,7 +9941,7 @@ AM_CONDITIONAL([USE_VALGRIND],[test "x$ENABLED_VALGRIND" = "xyes"])
AM_CONDITIONAL([BUILD_MD4],[test "x$ENABLED_MD4" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
AM_CONDITIONAL([BUILD_PWDBASED],[test "x$ENABLED_PWDBASED" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
AM_CONDITIONAL([BUILD_SCRYPT],[test "x$ENABLED_SCRYPT" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
AM_CONDITIONAL([BUILD_CRYPTONLY],[test "x$ENABLED_CRYPTONLY" = "xyes" && test "x$ENABLED_OPENSSLEXTRA" = "xno"])
AM_CONDITIONAL([BUILD_CRYPTONLY],[test "x$ENABLED_CRYPTONLY" = "xyes"])
AM_CONDITIONAL([BUILD_FASTMATH],[test "x$ENABLED_FASTMATH" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
AM_CONDITIONAL([BUILD_HEAPMATH],[test "x$ENABLED_HEAPMATH" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
AM_CONDITIONAL([BUILD_EXAMPLE_SERVERS],[test "x$ENABLED_EXAMPLES" = "xyes" && test "x$ENABLED_LEANTLS" = "xno"])
@ -10497,6 +10510,7 @@ echo " * ARM ASM SM3/SM4 Crypto $ENABLED_ARMASM_CRYPTO_SM4"
echo " * RISC-V ASM $ENABLED_RISCV_ASM"
echo " * Write duplicate: $ENABLED_WRITEDUP"
echo " * Xilinx Hardware Acc.: $ENABLED_XILINX"
echo " * C89: $ENABLED_C89"
echo " * Inline Code: $ENABLED_INLINE"
echo " * Linux AF_ALG: $ENABLED_AFALG"
echo " * Linux KCAPI: $ENABLED_KCAPI"

View File

@ -66,7 +66,7 @@ static int asn1App_ReadFile(FILE* fp, unsigned char** pdata, word32* plen)
word32 len = 0;
size_t read_len;
/* Allocate a minimum amount. */
unsigned char* data = (unsigned char*)malloc(DATA_INC_LEN);
unsigned char* data = (unsigned char*)XMALLOC(DATA_INC_LEN, NULL, DYNAMIC_TYPE_TMP_BUFFER);
if (data != NULL) {
/* Read more data. */
@ -74,7 +74,7 @@ static int asn1App_ReadFile(FILE* fp, unsigned char** pdata, word32* plen)
unsigned char* p;
if (ferror(fp)) {
free(data);
XFREE(data, NULL, DYNAMIC_TYPE_TMP_BUFFER);
return IO_FAILED_E;
}
@ -87,10 +87,10 @@ static int asn1App_ReadFile(FILE* fp, unsigned char** pdata, word32* plen)
}
/* Make space for more data to be added to buffer. */
p = (unsigned char*)realloc(data, len + DATA_INC_LEN);
p = (unsigned char*)XREALLOC(data, len + DATA_INC_LEN, NULL, DYNAMIC_TYPE_TMP_BUFFER);
if (p == NULL) {
/* Reallocation failed - free current buffer. */
free(data);
XFREE(data, NULL, DYNAMIC_TYPE_TMP_BUFFER);
data = NULL;
break;
}
@ -132,7 +132,7 @@ static int PrintDer(FILE* fp)
/* Print DER/BER. */
ret = wc_Asn1_PrintAll(&asn1, &opts, data, len);
/* Dispose of buffer. */
free(data);
XFREE(data, NULL, DYNAMIC_TYPE_TMP_BUFFER);
}
return ret;
@ -168,7 +168,7 @@ static int PrintBase64(FILE* fp)
ret = wc_Asn1_PrintAll(&asn1, &opts, data, len);
}
/* Dispose of buffer. */
free(data);
XFREE(data, NULL, DYNAMIC_TYPE_TMP_BUFFER);
}
return ret;
@ -280,7 +280,7 @@ static int PrintPem(FILE* fp, int pem_skip)
ret = wc_Asn1_PrintAll(&asn1, &opts, data, len);
}
/* Dispose of buffer. */
free(data);
XFREE(data, NULL, DYNAMIC_TYPE_TMP_BUFFER);
}
return ret;

View File

@ -789,9 +789,9 @@ static int ClientBenchmarkThroughput(WOLFSSL_CTX* ctx, char* host, word16 port,
/* Compare TX and RX buffers */
if (XMEMCMP(tx_buffer, rx_buffer, (size_t)len) != 0) {
free(tx_buffer);
XFREE(tx_buffer, NULL, DYNAMIC_TYPE_TMP_BUFFER);
tx_buffer = NULL;
free(rx_buffer);
XFREE(rx_buffer, NULL, DYNAMIC_TYPE_TMP_BUFFER);
rx_buffer = NULL;
err_sys("Compare TX and RX buffers failed");
}

View File

@ -100,7 +100,7 @@ static int pemApp_ReadFile(FILE* fp, unsigned char** pdata, word32* plen)
word32 len = 0;
size_t read_len;
/* Allocate a minimum amount. */
unsigned char* data = (unsigned char*)malloc(DATA_INC_LEN + BLOCK_SIZE_MAX);
unsigned char* data = (unsigned char*)XMALLOC(DATA_INC_LEN + BLOCK_SIZE_MAX, NULL, DYNAMIC_TYPE_TMP_BUFFER);
if (data != NULL) {
/* Read more data. */
@ -116,11 +116,11 @@ static int pemApp_ReadFile(FILE* fp, unsigned char** pdata, word32* plen)
}
/* Make space for more data to be added to buffer. */
p = (unsigned char*)realloc(data, len + DATA_INC_LEN +
BLOCK_SIZE_MAX);
p = (unsigned char*)XREALLOC(data, len + DATA_INC_LEN +
BLOCK_SIZE_MAX, NULL, DYNAMIC_TYPE_TMP_BUFFER);
if (p == NULL) {
/* Reallocation failed - free current buffer. */
free(data);
XFREE(data, NULL, DYNAMIC_TYPE_TMP_BUFFER);
data = NULL;
break;
}
@ -560,7 +560,7 @@ static int EncryptDer(unsigned char* in, word32 in_len, char* password,
}
if (ret == 0) {
/* Allocate memory for encrypted DER data. */
*enc = (unsigned char*)malloc(*enc_len);
*enc = (unsigned char*)XMALLOC(*enc_len, NULL, DYNAMIC_TYPE_TMP_BUFFER);
if (*enc == NULL) {
ret = 1;
}
@ -613,7 +613,7 @@ static int ConvDerToPem(unsigned char* in, word32 offset, word32 len,
}
if ((ret == 0) && (pem_len > 0)) {
/* Allocate memory to hold PEM encoding. */
pem = (unsigned char*)malloc(pem_len);
pem = (unsigned char*)XMALLOC(pem_len, NULL, DYNAMIC_TYPE_TMP_BUFFER);
if (pem == NULL) {
ret = 1;
}
@ -624,7 +624,7 @@ static int ConvDerToPem(unsigned char* in, word32 offset, word32 len,
type);
if (ret <= 0) {
fprintf(stderr, "Could not convert DER to PEM\n");
free(pem);
XFREE(pem, NULL, DYNAMIC_TYPE_TMP_BUFFER);
}
if (ret > 0) {
*out = pem;
@ -1025,16 +1025,16 @@ out:
wc_FreeDer(&der);
}
else if (out != NULL) {
free(out);
XFREE(out, NULL, DYNAMIC_TYPE_TMP_BUFFER);
}
#if defined(WOLFSSL_DER_TO_PEM) && defined(WOLFSSL_ENCRYPTED_KEYS) && \
!defined(NO_PWDBASED)
if (enc != NULL) {
free(enc);
XFREE(enc, NULL, DYNAMIC_TYPE_TMP_BUFFER);
}
#endif
if (in != NULL) {
free(in);
XFREE(in, NULL, DYNAMIC_TYPE_TMP_BUFFER);
}
if (ret < 0) {
fprintf(stderr, "%s\n", wc_GetErrorString(ret));

View File

@ -422,7 +422,7 @@ int ServerEchoData(SSL* ssl, int clientfd, int echoData, int block,
size_t xfer_bytes = 0;
char* buffer;
buffer = (char*)malloc((size_t)block);
buffer = (char*)XMALLOC((size_t)block, NULL, DYNAMIC_TYPE_TMP_BUFFER);
if (!buffer) {
err_sys_ex(runWithErrors, "Server buffer malloc failed");
}
@ -465,7 +465,7 @@ int ServerEchoData(SSL* ssl, int clientfd, int echoData, int block,
break;
}
if (err == WOLFSSL_ERROR_ZERO_RETURN) {
free(buffer);
XFREE(buffer, NULL, DYNAMIC_TYPE_TMP_BUFFER);
return WOLFSSL_ERROR_ZERO_RETURN;
}
}
@ -507,7 +507,7 @@ int ServerEchoData(SSL* ssl, int clientfd, int echoData, int block,
}
}
free(buffer);
XFREE(buffer, NULL, DYNAMIC_TYPE_TMP_BUFFER);
if (throughput) {
#ifdef __MINGW32__
@ -3635,7 +3635,7 @@ THREAD_RETURN WOLFSSL_THREAD server_test(void* args)
else
printf("Get list of client's protocol name failed\n");
free(list);
(void)wolfSSL_ALPN_FreePeerProtocol(ssl, &list);
}
#endif

View File

@ -784,7 +784,7 @@ static CRL_Entry* DupCRL_Entry(const CRL_Entry* ent, void* heap)
#endif
if (dupl->toBeSigned == NULL || dupl->signature == NULL
#ifdef WC_RSA_PSS
/* allow sigParamsSz is zero and malloc(0) to return NULL */
/* allow sigParamsSz is zero and XMALLOC(0) to return NULL */
|| (dupl->sigParams == NULL && dupl->sigParamsSz != 0)
#endif
) {

View File

@ -3067,8 +3067,8 @@ static void* benchmarks_do(void* args)
bench_buf_size += 16 - (bench_buf_size % 16);
#ifdef WOLFSSL_AFALG_XILINX_AES
bench_plain = (byte*)aligned_alloc(64, (size_t)bench_buf_size + 16);
bench_cipher = (byte*)aligned_alloc(64, (size_t)bench_buf_size + 16);
bench_plain = (byte*)aligned_alloc(64, (size_t)bench_buf_size + 16); /* native heap */
bench_cipher = (byte*)aligned_alloc(64, (size_t)bench_buf_size + 16); /* native heap */
#else
bench_plain = (byte*)XMALLOC((size_t)bench_buf_size + 16,
HEAP_HINT, DYNAMIC_TYPE_WOLF_BIGINT);

View File

@ -16115,7 +16115,6 @@ word32 SetOthername(void *name, byte *output)
WOLFSSL_ASN1_OTHERNAME *nm = (WOLFSSL_ASN1_OTHERNAME *)name;
char *nameStr = NULL;
word32 nameSz = 0;
word32 len = 0;
if ((nm == NULL) || (nm->value == NULL)) {
WOLFSSL_MSG("otherName value is NULL");
@ -16125,11 +16124,13 @@ word32 SetOthername(void *name, byte *output)
nameStr = nm->value->value.utf8string->data;
nameSz = (word32)nm->value->value.utf8string->length;
len = nm->type_id->objSz +
SetHeader(ASN_CONSTRUCTED | ASN_CONTEXT_SPECIFIC, nameSz + 2, NULL, 0) +
SetHeader(CTC_UTF8, nameSz, NULL, 0) + nameSz;
if (output != NULL) {
if (output == NULL) {
return nm->type_id->objSz +
SetHeader(ASN_CONSTRUCTED | ASN_CONTEXT_SPECIFIC, nameSz + 2, NULL, 0) +
SetHeader(CTC_UTF8, nameSz, NULL, 0) + nameSz;
}
else {
const byte *output_start = output;
/* otherName OID */
XMEMCPY(output, nm->type_id->obj, nm->type_id->objSz);
output += nm->type_id->objSz;
@ -16137,12 +16138,19 @@ word32 SetOthername(void *name, byte *output)
output += SetHeader(ASN_CONSTRUCTED | ASN_CONTEXT_SPECIFIC, nameSz + 2,
output, 0);
/* work around false positive from -fstack-protector */
PRAGMA_GCC_DIAG_PUSH
PRAGMA_GCC("GCC diagnostic ignored \"-Wstringop-overflow\"")
output += SetHeader(CTC_UTF8, nameSz, output, 0);
XMEMCPY(output, nameStr, nameSz);
}
PRAGMA_GCC_DIAG_POP
return len;
XMEMCPY(output, nameStr, nameSz);
output += nameSz;
return (word32)(output - output_start);
}
}
#endif /* OPENSSL_EXTRA */
@ -21826,7 +21834,7 @@ enum {
#ifdef WC_RSA_PSS
RPKCERTASN_IDX_SPUBKEYINFO_ALGO_P_SEQ,
#endif
RPKCERTASN_IDX_SPUBKEYINFO_PUBKEY,
RPKCERTASN_IDX_SPUBKEYINFO_PUBKEY
};
#endif /* HAVE_RPK */

View File

@ -69,9 +69,9 @@ Possible memory options:
void *z_realloc(void *ptr, size_t size)
{
if (ptr == NULL)
ptr = malloc(size);
ptr = malloc(size); /* native heap */
else
ptr = realloc(ptr, size);
ptr = realloc(ptr, size); /* native heap */
return ptr;
}
@ -360,7 +360,7 @@ void* wolfSSL_Malloc(size_t size)
}
#endif
res = malloc(size);
res = malloc(size); /* native heap */
#else
WOLFSSL_MSG("No malloc available");
#endif
@ -401,7 +401,7 @@ void* wolfSSL_Malloc(size_t size)
#endif
}
else {
free(res); /* clear */
free(res); /* native heap */
}
gMemFailCount = gMemFailCountSeed; /* reset */
return NULL;
@ -445,7 +445,7 @@ void wolfSSL_Free(void *ptr)
}
else {
#ifndef WOLFSSL_NO_MALLOC
free(ptr);
free(ptr); /* native heap */
#else
WOLFSSL_MSG("No free available");
#endif
@ -503,7 +503,7 @@ void* wolfSSL_Realloc(void *ptr, size_t size)
}
else {
#ifndef WOLFSSL_NO_MALLOC
res = realloc(ptr, size);
res = realloc(ptr, size); /* native heap */
#else
WOLFSSL_MSG("No realloc available");
#endif
@ -1002,7 +1002,7 @@ void* wolfSSL_Malloc(size_t size, void* heap, int type)
/* check for testing heap hint was set */
#ifdef WOLFSSL_HEAP_TEST
if (heap == (void*)WOLFSSL_HEAP_TEST) {
return malloc(size);
return malloc(size); /* native heap */
}
#endif
@ -1013,7 +1013,7 @@ void* wolfSSL_Malloc(size_t size, void* heap, int type)
if (type == DYNAMIC_TYPE_CTX || type == DYNAMIC_TYPE_METHOD ||
type == DYNAMIC_TYPE_CERT_MANAGER) {
WOLFSSL_MSG("ERROR allowing null heap hint for ctx/method");
res = malloc(size);
res = malloc(size); /* native heap */
}
else {
WOLFSSL_MSG("ERROR null heap hint passed into XMALLOC");
@ -1022,11 +1022,11 @@ void* wolfSSL_Malloc(size_t size, void* heap, int type)
#else
#ifndef WOLFSSL_NO_MALLOC
#ifdef FREERTOS
res = pvPortMalloc(size);
res = pvPortMalloc(size); /* native heap */
#elif defined(WOLFSSL_EMBOS)
res = OS_HEAP_malloc(size);
#else
res = malloc(size);
res = malloc(size); /* native heap */
#endif
#ifdef WOLFSSL_DEBUG_MEMORY
@ -1189,7 +1189,7 @@ void wolfSSL_Free(void *ptr, void* heap, int type)
#ifdef WOLFSSL_DEBUG_MEMORY
fprintf(stderr, "Free: %p at %s:%d\n", pt, func, line);
#endif
return free(ptr);
return free(ptr); /* native heap */
}
#endif
@ -1206,11 +1206,11 @@ void wolfSSL_Free(void *ptr, void* heap, int type)
#endif
#ifndef WOLFSSL_NO_MALLOC
#ifdef FREERTOS
vPortFree(ptr);
vPortFree(ptr); /* native heap */
#elif defined(WOLFSSL_EMBOS)
OS_HEAP_free(ptr);
OS_HEAP_free(ptr); /* native heap */
#else
free(ptr);
free(ptr); /* native heap */
#endif
#ifdef WOLFSSL_DEBUG_MEMORY
fprintf(stderr, "Free: %p at %s:%d\n", ptr, func, line);
@ -1335,7 +1335,7 @@ void* wolfSSL_Realloc(void *ptr, size_t size, void* heap, int type)
/* check for testing heap hint was set */
#ifdef WOLFSSL_HEAP_TEST
if (heap == (void*)WOLFSSL_HEAP_TEST) {
return realloc(ptr, size);
return realloc(ptr, size); /* native heap */
}
#endif
@ -1344,7 +1344,7 @@ void* wolfSSL_Realloc(void *ptr, size_t size, void* heap, int type)
WOLFSSL_MSG("ERROR null heap hint passed in to XREALLOC");
#endif
#ifndef WOLFSSL_NO_MALLOC
res = realloc(ptr, size);
res = realloc(ptr, size); /* native heap */
#else
WOLFSSL_MSG("NO heap found to use for realloc");
#endif /* WOLFSSL_NO_MALLOC */
@ -1493,7 +1493,7 @@ void* XMALLOC(size_t n, void* heap, int type)
return NULL;
}
return malloc(n);
return malloc(n); /* native heap */
}
void* XREALLOC(void *p, size_t n, void* heap, int type)
@ -1514,7 +1514,7 @@ void* XREALLOC(void *p, size_t n, void* heap, int type)
return NULL;
}
return realloc(p, n);
return realloc(p, n); /* native heap */
}
void XFREE(void *p, void* heap, int type)
@ -1527,7 +1527,7 @@ void XFREE(void *p, void* heap, int type)
if (type == DYNAMIC_TYPE_OUT_BUFFER)
return; /* do nothing, static pool */
free(p);
free(p); /* native heap */
}
#endif /* HAVE_IO_POOL */
@ -1554,7 +1554,7 @@ void *xmalloc(size_t n, void* heap, int type, const char* func,
#endif
}
else
p32 = malloc(n + sizeof(word32) * 4);
p32 = malloc(n + sizeof(word32) * 4); /* native heap */
if (p32 != NULL) {
p32[0] = (word32)n;
@ -1597,7 +1597,7 @@ void *xrealloc(void *p, size_t n, void* heap, int type, const char* func,
#endif
}
else
p32 = realloc(oldp32, n + sizeof(word32) * 4);
p32 = realloc(oldp32, n + sizeof(word32) * 4); /* native heap */
if (p32 != NULL) {
p32[0] = (word32)n;
@ -1643,7 +1643,7 @@ void xfree(void *p, void* heap, int type, const char* func, const char* file,
#endif
}
else
free(p32);
free(p32); /* native heap */
}
(void)heap;

View File

@ -2801,7 +2801,9 @@ static int wc_RsaFunctionSync(const byte* in, word32 inLen, byte* out,
ret = wc_RsaEncryptSize(key);
if (ret < 0) {
#ifdef DEBUG_WOLFSSL
WOLFSSL_MSG_EX("wc_RsaEncryptSize failed err = %d", ret);
#endif
return ret;
}
keyLen = (word32)ret;

View File

@ -4538,21 +4538,21 @@ void wc_ecc_fp_free(void)
}
AEEResult wolfSSL_open(const char *uri, remote_handle64 *handle)
AEEResult wolfSSL_open(const char *uri, remote_handle64 *handle)
{
/* can be any value or ignored, rpc layer doesn't care
* also ok
* *handle = 0;
* *handle = 0xdeadc0de;
*/
*handle = (remote_handle64)malloc(1);
*handle = (remote_handle64)XMALLOC(1, NULL, DYNAMIC_TYPE_ECC);
return 0;
}
AEEResult wolfSSL_close(remote_handle64 handle)
AEEResult wolfSSL_close(remote_handle64 handle)
{
if (handle)
free((void*)handle);
XFREE((void*)handle, NULL, DYNAMIC_TYPE_ECC);
return 0;
}
#endif /* HAVE_ECC_VERIFY */

View File

@ -1782,7 +1782,7 @@ int wolfSSL_HwPkMutexUnLock(void)
static void destruct_key(void *buf)
{
if (buf != NULL) {
free(buf);
XFREE(buf, NULL, DYNAMIC_TYPE_OS_BUF);
}
}
@ -1911,7 +1911,7 @@ int wolfSSL_HwPkMutexUnLock(void)
key_ptr = pthread_getspecific(key_own_hw_mutex);
if (key_ptr == NULL) {
key_ptr = malloc(sizeof(int));
key_ptr = XMALLOC(sizeof(int), NULL, DYNAMIC_TYPE_OS_BUF);
if (key_ptr == NULL) {
return MEMORY_E;
}
@ -3901,7 +3901,7 @@ char* mystrnstr(const char* s1, const char* s2, unsigned int n)
XMEMSET(thread, 0, sizeof(*thread));
thread->threadStack = (void *)XMALLOC(WOLFSSL_NETOS_STACK_SZ, NULL,
DYNAMIC_TYPE_TMP_BUFFER);
DYNAMIC_TYPE_OS_BUF);
if (thread->threadStack == NULL)
return MEMORY_E;
@ -3923,7 +3923,7 @@ char* mystrnstr(const char* s1, const char* s2, unsigned int n)
2, 2,
1, TX_AUTO_START);
if (result != TX_SUCCESS) {
free(thread->threadStack);
XFREE(thread->threadStack, NULL, DYNAMIC_TYPE_OS_BUF);
thread->threadStack = NULL;
return MEMORY_E;
}
@ -3934,7 +3934,7 @@ char* mystrnstr(const char* s1, const char* s2, unsigned int n)
int wolfSSL_JoinThread(THREAD_TYPE thread)
{
/* TODO: maybe have to use tx_thread_delete? */
free(thread.threadStack);
XFREE(thread.threadStack, NULL, DYNAMIC_TYPE_OS_BUF);
thread.threadStack = NULL;
return 0;
}

View File

@ -57516,7 +57516,7 @@ static void *my_Malloc_cb(size_t size)
#endif
malloc_cnt++;
#ifndef WOLFSSL_NO_MALLOC
return malloc(size);
return malloc(size); /* native heap */
#else
WOLFSSL_MSG("No malloc available");
(void)size;
@ -57535,7 +57535,7 @@ static void my_Free_cb(void *ptr)
#endif
free_cnt++;
#ifndef WOLFSSL_NO_MALLOC
free(ptr);
free(ptr); /* native heap */
#else
WOLFSSL_MSG("No free available");
(void)ptr;
@ -57553,7 +57553,7 @@ static void *my_Realloc_cb(void *ptr, size_t size)
#endif
realloc_cnt++;
#ifndef WOLFSSL_NO_MALLOC
return realloc(ptr, size);
return realloc(ptr, size); /* native heap */
#else
WOLFSSL_MSG("No realloc available");
(void)ptr;

View File

@ -36,7 +36,7 @@ enum { /* CALLBACK CONSTANTS */
MAX_CIPHERNAME_SZ = 24,
MAX_TIMEOUT_NAME_SZ = 24,
MAX_PACKETS_HANDSHAKE = 14, /* 12 for client auth plus 2 alerts */
MAX_VALUE_SZ = 128, /* all handshake packets but Cert should
MAX_VALUE_SZ = 128 /* all handshake packets but Cert should
fit here */
};

View File

@ -88,7 +88,7 @@ enum {
#endif
WOLFSSL_EC_EXPLICIT_CURVE = 0x000,
WOLFSSL_EC_NAMED_CURVE = 0x001,
WOLFSSL_EC_NAMED_CURVE = 0x001
};
#ifndef OPENSSL_COEXIST
@ -185,8 +185,8 @@ struct WOLFSSL_EC_KEY {
word16 pkcs8HeaderSz;
/* option bits */
byte inSet:1; /* internal set from external ? */
byte exSet:1; /* external set from internal ? */
WC_BITFIELD inSet:1; /* internal set from external ? */
WC_BITFIELD exSet:1; /* external set from internal ? */
wolfSSL_Ref ref; /* Reference count information. */
};
@ -451,7 +451,11 @@ typedef WOLFSSL_EC_KEY_METHOD EC_KEY_METHOD;
#define EC_GROUP_order_bits wolfSSL_EC_GROUP_order_bits
#define EC_GROUP_method_of wolfSSL_EC_GROUP_method_of
#ifndef NO_WOLFSSL_STUB
#define EC_GROUP_set_point_conversion_form(...) WC_DO_NOTHING
#ifdef WOLF_NO_VARIADIC_MACROS
#define EC_GROUP_set_point_conversion_form() WC_DO_NOTHING
#else
#define EC_GROUP_set_point_conversion_form(...) WC_DO_NOTHING
#endif
#endif
#define EC_METHOD_get_field_type wolfSSL_EC_METHOD_get_field_type

View File

@ -732,8 +732,8 @@ struct WOLFSSL_EVP_CIPHER_CTX {
#endif
#if defined(HAVE_AESGCM) || defined(HAVE_AESCCM) || \
defined(WOLFSSL_SM4_GCM) || defined(WOLFSSL_SM4_CCM)
byte authIvGenEnable:1;
byte authIncIv:1;
WC_BITFIELD authIvGenEnable:1;
WC_BITFIELD authIncIv:1;
#endif
#endif
};
@ -1253,7 +1253,7 @@ WOLFSSL_API int wolfSSL_EVP_SignInit_ex(WOLFSSL_EVP_MD_CTX* ctx,
#define EVP_MD_block_size wolfSSL_EVP_MD_block_size
#define EVP_MD_type wolfSSL_EVP_MD_type
#ifndef NO_WOLFSSL_STUB
#define EVP_MD_CTX_set_flags(...) WC_DO_NOTHING
#define EVP_MD_CTX_set_flags(ctx, flags) WC_DO_NOTHING
#endif
#define EVP_Digest wolfSSL_EVP_Digest

View File

@ -280,7 +280,7 @@ int wolfSSL_PEM_write_DHparams(XFILE fp, WOLFSSL_DH* dh);
#define PEM_read_bio_EC_PUBKEY wolfSSL_PEM_read_bio_EC_PUBKEY
#define PEM_read_bio_ECPKParameters wolfSSL_PEM_read_bio_ECPKParameters
#ifndef NO_WOLFSSL_STUB
#define PEM_write_bio_ECPKParameters(...) 0
#define PEM_write_bio_ECPKParameters(out, x) 0
#endif
/* EVP_KEY */
#define PEM_read_bio_PrivateKey wolfSSL_PEM_read_bio_PrivateKey

View File

@ -78,7 +78,7 @@ typedef struct WOLFSSL_RSA_METHOD {
/* Name of RSA key implementation. */
char *name;
/* RSA method dynamically allocated. */
word16 dynamic:1;
WC_BITFIELD dynamic:1;
} WOLFSSL_RSA_METHOD;
#ifndef WOLFSSL_RSA_TYPE_DEFINED /* guard on redeclaration */
@ -106,9 +106,9 @@ typedef struct WOLFSSL_RSA {
int flags; /* Flags of implementation. */
/* bits */
byte inSet:1; /* Internal set from external. */
byte exSet:1; /* External set from internal. */
byte ownRng:1; /* Rng needs to be free'd. */
WC_BITFIELD inSet:1; /* Internal set from external. */
WC_BITFIELD exSet:1; /* External set from internal. */
WC_BITFIELD ownRng:1; /* Rng needs to be free'd. */
} WOLFSSL_RSA;
#endif

View File

@ -835,7 +835,7 @@ wolfSSL_X509_STORE_set_verify_cb((WOLFSSL_X509_STORE *)(s), (WOLFSSL_X509_STORE_
#define X509_REVOKED_get0_serialNumber wolfSSL_X509_REVOKED_get0_serial_number
#define X509_REVOKED_get0_revocationDate wolfSSL_X509_REVOKED_get0_revocation_date
#define X509_check_purpose(...) 0
#define X509_check_purpose(x, id, ca) 0
#define OCSP_parse_url wolfSSL_OCSP_parse_url
@ -980,7 +980,7 @@ wolfSSL_X509_STORE_set_verify_cb((WOLFSSL_X509_STORE *)(s), (WOLFSSL_X509_STORE_
#define ASN1_STRING_print(x, y) wolfSSL_ASN1_STRING_print ((WOLFSSL_BIO*)(x), (WOLFSSL_ASN1_STRING*)(y))
#define d2i_DISPLAYTEXT wolfSSL_d2i_DISPLAYTEXT
#ifndef NO_WOLFSSL_STUB
#define ASN1_STRING_set_default_mask_asc(...) 1
#define ASN1_STRING_set_default_mask_asc(p) 1
#endif
#define ASN1_GENERALSTRING WOLFSSL_ASN1_STRING
@ -1014,7 +1014,7 @@ wolfSSL_X509_STORE_set_verify_cb((WOLFSSL_X509_STORE *)(s), (WOLFSSL_X509_STORE_
#define ASN1_IA5STRING_free wolfSSL_ASN1_STRING_free
#define ASN1_IA5STRING_set wolfSSL_ASN1_STRING_set
#define ASN1_PRINTABLE_type(...) V_ASN1_PRINTABLESTRING
#define ASN1_PRINTABLE_type(s, max) V_ASN1_PRINTABLESTRING
#define ASN1_UTCTIME_pr wolfSSL_ASN1_UTCTIME_pr
@ -1565,7 +1565,7 @@ typedef WOLFSSL_SRTP_PROTECTION_PROFILE SRTP_PROTECTION_PROFILE;
#define PSK_MAX_IDENTITY_LEN 128
#define SSL_CTX_clear_options wolfSSL_CTX_clear_options
#define SSL_CTX_add_server_custom_ext(...) 0
#define SSL_CTX_add_server_custom_ext(ctx, ext_type, add_cb, free_cb, add_arg, parse_cb, parse_arg) 0
#define SSL_get0_verified_chain wolfSSL_get0_verified_chain
#define X509_chain_up_ref wolfSSL_X509_chain_up_ref
@ -1573,8 +1573,8 @@ typedef WOLFSSL_SRTP_PROTECTION_PROFILE SRTP_PROTECTION_PROFILE;
#endif /* HAVE_STUNNEL || WOLFSSL_NGINX */
#ifndef NO_WOLFSSL_STUB
#define b2i_PrivateKey_bio(...) NULL
#define b2i_PVK_bio(...) NULL
#define b2i_PrivateKey_bio(in) NULL
#define b2i_PVK_bio(in, cb, u) NULL
#endif
#define SSL_CTX_get_default_passwd_cb wolfSSL_CTX_get_default_passwd_cb
@ -1784,8 +1784,8 @@ typedef WOLFSSL_SRTP_PROTECTION_PROFILE SRTP_PROTECTION_PROFILE;
#define X509_OBJECT_retrieve_by_subject wolfSSL_X509_OBJECT_retrieve_by_subject
#ifndef NO_WOLFSSL_STUB
#define OBJ_create_objects(...) WC_DO_NOTHING
#define sk_SSL_COMP_free(...) WC_DO_NOTHING
#define OBJ_create_objects(in) WC_DO_NOTHING
#define sk_SSL_COMP_free(sk) WC_DO_NOTHING
#endif
#define ASN1_OBJECT_new wolfSSL_ASN1_OBJECT_new

View File

@ -183,7 +183,7 @@ WOLFSSL_API WOLFSSL_ASN1_STRING* wolfSSL_a2i_IPADDRESS(const char* ipa);
#define X509V3_EXT_d2i wolfSSL_X509V3_EXT_d2i
#define X509V3_EXT_add_nconf wolfSSL_X509V3_EXT_add_nconf
#ifndef NO_WOLFSSL_STUB
#define X509V3_parse_list(...) NULL
#define X509V3_parse_list(line) NULL
#endif
#define i2s_ASN1_OCTET_STRING wolfSSL_i2s_ASN1_STRING
#define a2i_IPADDRESS wolfSSL_a2i_IPADDRESS
@ -191,8 +191,8 @@ WOLFSSL_API WOLFSSL_ASN1_STRING* wolfSSL_a2i_IPADDRESS(const char* ipa);
#define X509V3_EXT_conf_nid wolfSSL_X509V3_EXT_conf_nid
#define X509V3_set_ctx wolfSSL_X509V3_set_ctx
#ifndef NO_WOLFSSL_STUB
#define X509V3_set_nconf(...) WC_DO_NOTHING
#define X509V3_EXT_cleanup(...) WC_DO_NOTHING
#define X509V3_set_nconf(ctx, conf) WC_DO_NOTHING
#define X509V3_EXT_cleanup() WC_DO_NOTHING
#endif
#define X509V3_set_ctx_test(ctx) wolfSSL_X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, CTX_TEST)
#define X509V3_set_ctx_nodb wolfSSL_X509V3_set_ctx_nodb

View File

@ -510,10 +510,10 @@ struct WOLFSSL_EVP_PKEY {
word16 pkcs8HeaderSz;
/* option bits */
byte ownDh:1; /* if struct owns DH and should free it */
byte ownEcc:1; /* if struct owns ECC and should free it */
byte ownDsa:1; /* if struct owns DSA and should free it */
byte ownRsa:1; /* if struct owns RSA and should free it */
WC_BITFIELD ownDh:1; /* if struct owns DH and should free it */
WC_BITFIELD ownEcc:1; /* if struct owns ECC and should free it */
WC_BITFIELD ownDsa:1; /* if struct owns DSA and should free it */
WC_BITFIELD ownRsa:1; /* if struct owns RSA and should free it */
};
struct WOLFSSL_X509_PKEY {
@ -862,7 +862,7 @@ enum AlertLevel {
enum SNICbReturn {
warning_return = alert_warning,
fatal_return = alert_fatal,
noack_return,
noack_return
};
/* WS_RETURN_CODE macro
@ -2310,10 +2310,10 @@ WOLFSSL_API int wolfSSL_get_client_suites_sigalgs(const WOLFSSL* ssl,
const byte** suites, word16* suiteSz,
const byte** hashSigAlgo, word16* hashSigAlgoSz);
typedef struct WOLFSSL_CIPHERSUITE_INFO {
byte rsaAuth:1;
byte eccAuth:1;
byte eccStatic:1;
byte psk:1;
WC_BITFIELD rsaAuth:1;
WC_BITFIELD eccAuth:1;
WC_BITFIELD eccStatic:1;
WC_BITFIELD psk:1;
} WOLFSSL_CIPHERSUITE_INFO;
WOLFSSL_API WOLFSSL_CIPHERSUITE_INFO wolfSSL_get_ciphersuite_info(byte first,
byte second);
@ -2456,7 +2456,7 @@ enum {
WOLFSSL_OCSP_CHECKALL = 4,
WOLFSSL_CRL_CHECKALL = 1,
WOLFSSL_CRL_CHECK = 2,
WOLFSSL_CRL_CHECK = 2
};
/* Separated out from other enums because of size */
@ -2503,7 +2503,7 @@ enum {
| WOLFSSL_OP_TLS_D5_BUG
| WOLFSSL_OP_TLS_BLOCK_PADDING_BUG
| WOLFSSL_OP_DONT_INSERT_EMPTY_FRAGMENTS
| WOLFSSL_OP_TLS_ROLLBACK_BUG),
| WOLFSSL_OP_TLS_ROLLBACK_BUG)
};
#if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL) || \
@ -3571,7 +3571,7 @@ enum {
WOLFSSL_BLOCK_TYPE = 2,
WOLFSSL_STREAM_TYPE = 3,
WOLFSSL_AEAD_TYPE = 4,
WOLFSSL_TLS_HMAC_INNER_SZ = 13, /* SEQ_SZ + ENUM + VERSION_SZ + LEN_SZ */
WOLFSSL_TLS_HMAC_INNER_SZ = 13 /* SEQ_SZ + ENUM + VERSION_SZ + LEN_SZ */
};
/* for GetBulkCipher and internal use
@ -4061,7 +4061,7 @@ WOLFSSL_API void* wolfSSL_CTX_GetHeap(WOLFSSL_CTX* ctx, WOLFSSL* ssl);
/* SNI types */
enum {
WOLFSSL_SNI_HOST_NAME = 0,
WOLFSSL_SNI_HOST_NAME = 0
};
WOLFSSL_ABI WOLFSSL_API int wolfSSL_UseSNI(WOLFSSL* ssl, unsigned char type,
@ -4081,7 +4081,7 @@ enum {
WOLFSSL_SNI_ANSWER_ON_MISMATCH = 0x02,
/* Abort the handshake if the client didn't send a SNI request. */
WOLFSSL_SNI_ABORT_ON_ABSENCE = 0x04,
WOLFSSL_SNI_ABORT_ON_ABSENCE = 0x04
};
WOLFSSL_API void wolfSSL_SNI_SetOptions(WOLFSSL* ssl, unsigned char type,
@ -4132,7 +4132,7 @@ enum {
WOLFSSL_ALPN_NO_MATCH = 0,
WOLFSSL_ALPN_MATCH = 1,
WOLFSSL_ALPN_CONTINUE_ON_MISMATCH = 2,
WOLFSSL_ALPN_FAILED_ON_MISMATCH = 4,
WOLFSSL_ALPN_FAILED_ON_MISMATCH = 4
};
enum {
@ -4174,7 +4174,7 @@ enum {
WOLFSSL_MFL_2_13 = 5, /* 8192 bytes *//* wolfSSL ONLY!!! */
WOLFSSL_MFL_2_8 = 6, /* 256 bytes *//* wolfSSL ONLY!!! */
WOLFSSL_MFL_MIN = WOLFSSL_MFL_2_9,
WOLFSSL_MFL_MAX = WOLFSSL_MFL_2_8,
WOLFSSL_MFL_MAX = WOLFSSL_MFL_2_8
};
#ifndef NO_WOLFSSL_CLIENT
@ -4336,6 +4336,7 @@ enum {
WOLFSSL_PQC_MAX = 12105,
#endif /* WOLFSSL_ML_KEM */
#endif /* HAVE_PQC */
WOLF_ENUM_DUMMY_LAST_ELEMENT(SSL_H)
};
enum {
@ -4344,6 +4345,7 @@ enum {
WOLFSSL_EC_PF_X962_COMP_PRIME = 1,
WOLFSSL_EC_PF_X962_COMP_CHAR2 = 2,
#endif
WOLF_ENUM_DUMMY_LAST_ELEMENT(SSL_H)
};
#ifdef HAVE_SUPPORTED_CURVES
@ -5593,7 +5595,7 @@ WOLFSSL_API int wolfSSL_get_ephemeral_key(WOLFSSL* ssl, int keyAlgo,
enum {
WOLFSSL_CERT_TYPE_UNKNOWN = -1,
WOLFSSL_CERT_TYPE_X509 = 0,
WOLFSSL_CERT_TYPE_RPK = 2,
WOLFSSL_CERT_TYPE_RPK = 2
};
#define MAX_CLIENT_CERT_TYPE_CNT 2
#define MAX_SERVER_CERT_TYPE_CNT 2

View File

@ -2257,7 +2257,7 @@ static WC_INLINE void OCSPRespFreeCb(void* ioCtx, unsigned char* response)
LIBCALL_CHECK_RET(XFSEEK(lFile, 0, XSEEK_SET));
if (fileSz > 0) {
*bufLen = (size_t)fileSz;
*buf = (byte*)malloc(*bufLen);
*buf = (byte*)XMALLOC(*bufLen, NULL, DYNAMIC_TYPE_TMP_BUFFER);
if (*buf == NULL) {
ret = MEMORY_E;
fprintf(stderr,
@ -2322,7 +2322,7 @@ static WC_INLINE void OCSPRespFreeCb(void* ioCtx, unsigned char* response)
}
if (buff)
free(buff);
XFREE(buff, NULL, DYNAMIC_TYPE_TMP_BUFFER);
}
static WC_INLINE void load_ssl_buffer(WOLFSSL* ssl, const char* fname, int type)
@ -2364,7 +2364,7 @@ static WC_INLINE void OCSPRespFreeCb(void* ioCtx, unsigned char* response)
}
if (buff)
free(buff);
XFREE(buff, NULL, DYNAMIC_TYPE_TMP_BUFFER);
}
#ifdef TEST_PK_PRIVKEY
@ -2378,20 +2378,20 @@ static WC_INLINE void OCSPRespFreeCb(void* ioCtx, unsigned char* response)
if (ret != 0)
return ret;
*derBuf = (byte*)malloc(bufLen);
*derBuf = (byte*)XMALLOC(bufLen, NULL, DYNAMIC_TYPE_TMP_BUFFER);
if (*derBuf == NULL) {
free(buf);
XFREE(buf, NULL, DYNAMIC_TYPE_TMP_BUFFER);
return MEMORY_E;
}
ret = wc_KeyPemToDer(buf, (word32)bufLen, *derBuf, (word32)bufLen, NULL);
if (ret < 0) {
free(buf);
free(*derBuf);
XFREE(buf, NULL, DYNAMIC_TYPE_TMP_BUFFER);
XFREE(*derBuf, NULL, DYNAMIC_TYPE_TMP_BUFFER);
return ret;
}
*derLen = ret;
free(buf);
XFREE(buf, NULL, DYNAMIC_TYPE_TMP_BUFFER);
return 0;
}
@ -3060,14 +3060,14 @@ static WC_INLINE void SetupAtomicUser(WOLFSSL_CTX* ctx, WOLFSSL* ssl)
AtomicEncCtx* encCtx;
AtomicDecCtx* decCtx;
encCtx = (AtomicEncCtx*)malloc(sizeof(AtomicEncCtx));
encCtx = (AtomicEncCtx*)XMALLOC(sizeof(AtomicEncCtx), NULL, DYNAMIC_TYPE_TMP_BUFFER);
if (encCtx == NULL)
err_sys_with_errno("AtomicEncCtx malloc failed");
XMEMSET(encCtx, 0, sizeof(AtomicEncCtx));
decCtx = (AtomicDecCtx*)malloc(sizeof(AtomicDecCtx));
decCtx = (AtomicDecCtx*)XMALLOC(sizeof(AtomicDecCtx), NULL, DYNAMIC_TYPE_TMP_BUFFER);
if (decCtx == NULL) {
free(encCtx);
XFREE(encCtx, NULL, DYNAMIC_TYPE_TMP_BUFFER);
err_sys_with_errno("AtomicDecCtx malloc failed");
}
XMEMSET(decCtx, 0, sizeof(AtomicDecCtx));
@ -3102,12 +3102,12 @@ static WC_INLINE void FreeAtomicUser(WOLFSSL* ssl)
if (encCtx != NULL) {
if (encCtx->keySetup == 1)
wc_AesFree(&encCtx->aes);
free(encCtx);
XFREE(encCtx, NULL, DYNAMIC_TYPE_TMP_BUFFER);
}
if (decCtx != NULL) {
if (decCtx->keySetup == 1)
wc_AesFree(&decCtx->aes);
free(decCtx);
XFREE(decCtx, NULL, DYNAMIC_TYPE_TMP_BUFFER);
}
}
@ -3255,7 +3255,7 @@ static WC_INLINE int myEccSign(WOLFSSL* ssl, const byte* in, word32 inSz,
}
#ifdef TEST_PK_PRIVKEY
free(keyBuf);
XFREE(keyBuf, NULL, DYNAMIC_TYPE_TMP_BUFFER);
#endif
WOLFSSL_PKMSG("PK ECC Sign: ret %d outSz %u\n", ret, *outSz);
@ -3466,7 +3466,7 @@ static WC_INLINE int myEd25519Sign(WOLFSSL* ssl, const byte* in, word32 inSz,
}
#ifdef TEST_PK_PRIVKEY
free(keyBuf);
XFREE(keyBuf, NULL, DYNAMIC_TYPE_TMP_BUFFER);
#endif
WOLFSSL_PKMSG("PK 25519 Sign: ret %d, outSz %d\n", ret, *outSz);
@ -3635,7 +3635,7 @@ static WC_INLINE int myEd448Sign(WOLFSSL* ssl, const byte* in, word32 inSz,
}
#ifdef TEST_PK_PRIVKEY
free(keyBuf);
XFREE(keyBuf, NULL, DYNAMIC_TYPE_TMP_BUFFER);
#endif
WOLFSSL_PKMSG("PK 448 Sign: ret %d, outSz %u\n", ret, *outSz);
@ -3835,7 +3835,7 @@ static WC_INLINE int myRsaSign(WOLFSSL* ssl, const byte* in, word32 inSz,
wc_FreeRng(&rng);
#ifdef TEST_PK_PRIVKEY
free(keyBuf);
XFREE(keyBuf, NULL, DYNAMIC_TYPE_TMP_BUFFER);
#endif
WOLFSSL_PKMSG("PK RSA Sign: ret %d, outSz %u\n", ret, *outSz);
@ -3898,7 +3898,7 @@ static WC_INLINE int myRsaSignCheck(WOLFSSL* ssl, byte* sig, word32 sigSz,
wc_FreeRsaKey(&myKey);
}
#ifdef TEST_PK_PRIVKEY
free(keyBuf);
XFREE(keyBuf, NULL, DYNAMIC_TYPE_TMP_BUFFER);
#endif
WOLFSSL_PKMSG("PK RSA SignCheck: ret %d\n", ret);
@ -3994,7 +3994,7 @@ static WC_INLINE int myRsaPssSign(WOLFSSL* ssl, const byte* in, word32 inSz,
wc_FreeRng(&rng);
#ifdef TEST_PK_PRIVKEY
free(keyBuf);
XFREE(keyBuf, NULL, DYNAMIC_TYPE_TMP_BUFFER);
#endif
WOLFSSL_PKMSG("PK RSA PSS Sign: ret %d, outSz %u\n", ret, *outSz);
@ -4102,7 +4102,7 @@ static WC_INLINE int myRsaPssSignCheck(WOLFSSL* ssl, byte* sig, word32 sigSz,
}
#ifdef TEST_PK_PRIVKEY
free(keyBuf);
XFREE(keyBuf, NULL, DYNAMIC_TYPE_TMP_BUFFER);
#endif
WOLFSSL_PKMSG("PK RSA PSS SignCheck: ret %d\n", ret);
@ -4188,7 +4188,7 @@ static WC_INLINE int myRsaDec(WOLFSSL* ssl, byte* in, word32 inSz,
}
#ifdef TEST_PK_PRIVKEY
free(keyBuf);
XFREE(keyBuf, NULL, DYNAMIC_TYPE_TMP_BUFFER);
#endif
WOLFSSL_PKMSG("PK RSA Dec: ret %d\n", ret);

View File

@ -42,7 +42,7 @@ enum {
DHKEM_P384_HKDF_SHA384 = 0x0011,
DHKEM_P521_HKDF_SHA512 = 0x0012,
DHKEM_X25519_HKDF_SHA256 = 0x0020,
DHKEM_X448_HKDF_SHA512 = 0x0021,
DHKEM_X448_HKDF_SHA512 = 0x0021
};
#define DHKEM_P256_ENC_LEN 65
@ -55,13 +55,13 @@ enum {
enum {
HKDF_SHA256 = 0x0001,
HKDF_SHA384 = 0x0002,
HKDF_SHA512 = 0x0003,
HKDF_SHA512 = 0x0003
};
/* AEAD enum */
enum {
HPKE_AES_128_GCM = 0x0001,
HPKE_AES_256_GCM = 0x0002,
HPKE_AES_256_GCM = 0x0002
};
/* TODO better way of doing this */

View File

@ -178,7 +178,7 @@ WOLFSSL_API void wolfSSL_SetLoggingPrefix(const char* prefix);
WOLFSSL_API void WOLFSSL_MSG_EX(const char* fmt, ...);
#define HAVE_WOLFSSL_MSG_EX
#else
#ifdef __WATCOMC__ /* does not allow variadic macros */
#ifdef WOLF_NO_VARIADIC_MACROS
#define WOLFSSL_MSG_EX() WC_DO_NOTHING
#else
#define WOLFSSL_MSG_EX(...) WC_DO_NOTHING
@ -201,7 +201,11 @@ WOLFSSL_API void wolfSSL_SetLoggingPrefix(const char* prefix);
#define WOLFSSL_MSG_EX(fmt, args...) \
WOLFSSL_MSG_EX2(__FILE__, __LINE__, fmt, ## args)
#else
#define WOLFSSL_MSG_EX2(...) WC_DO_NOTHING
#ifdef WOLF_NO_VARIADIC_MACROS
#define WOLFSSL_MSG_EX2() WC_DO_NOTHING
#else
#define WOLFSSL_MSG_EX2(...) WC_DO_NOTHING
#endif
#endif
#endif
WOLFSSL_API void WOLFSSL_BUFFER(const byte* buffer, word32 length);
@ -213,7 +217,10 @@ WOLFSSL_API void wolfSSL_SetLoggingPrefix(const char* prefix);
#define WOLFSSL_STUB(m) WC_DO_NOTHING
#define WOLFSSL_IS_DEBUG_ON() 0
#ifdef __WATCOMC__ /* does not allow variadic macros */
#ifdef WOLF_NO_VARIADIC_MACROS
/* note, modern preprocessors will generate errors with this definition.
* "error: macro "WOLFSSL_MSG_EX" passed 2 arguments, but takes just 0"
*/
#define WOLFSSL_MSG_EX() WC_DO_NOTHING
#else
#define WOLFSSL_MSG_EX(...) WC_DO_NOTHING
@ -229,8 +236,13 @@ WOLFSSL_API void wolfSSL_SetLoggingPrefix(const char* prefix);
#ifdef WOLFSSL_HAVE_ERROR_QUEUE
WOLFSSL_API void WOLFSSL_ERROR_LINE(int err, const char* func, unsigned int line,
const char* file, void* ctx);
#define WOLFSSL_ERROR(x) \
WOLFSSL_ERROR_LINE((x), __func__, __LINE__, __FILE__, NULL)
#ifdef WOLF_C89
#define WOLFSSL_ERROR(x) \
WOLFSSL_ERROR_LINE((x), __FILE__, __LINE__, __FILE__, NULL)
#else
#define WOLFSSL_ERROR(x) \
WOLFSSL_ERROR_LINE((x), __func__, __LINE__, __FILE__, NULL)
#endif
#else
WOLFSSL_API void WOLFSSL_ERROR(int err);
#endif /* WOLFSSL_HAVE_ERROR_QUEUE */

View File

@ -157,9 +157,9 @@ static WC_INLINE void* TrackMalloc(size_t sz)
return NULL;
#ifdef FREERTOS
mt = (memoryTrack*)pvPortMalloc(sizeof(memoryTrack) + sz);
mt = (memoryTrack*)pvPortMalloc(sizeof(memoryTrack) + sz); /* native heap */
#else
mt = (memoryTrack*)malloc(sizeof(memoryTrack) + sz);
mt = (memoryTrack*)malloc(sizeof(memoryTrack) + sz); /* native heap */
#endif
if (mt == NULL)
return NULL;
@ -300,9 +300,9 @@ static WC_INLINE void TrackFree(void* ptr)
(void)sz;
#ifdef FREERTOS
vPortFree(mt);
vPortFree(mt); /* native heap */
#else
free(mt);
free(mt); /* native heap */
#endif
}
@ -600,7 +600,7 @@ static WC_INLINE int StackSizeCheck(struct func_args* args, thread_func tf)
stackSize = PTHREAD_STACK_MIN;
#endif
ret = posix_memalign((void**)&myStack, sysconf(_SC_PAGESIZE), stackSize);
ret = posix_memalign((void**)&myStack, sysconf(_SC_PAGESIZE), stackSize); /* native heap */
if (ret != 0 || myStack == NULL) {
wc_mem_printf("posix_memalign failed\n");
return -1;
@ -650,7 +650,7 @@ static WC_INLINE int StackSizeCheck(struct func_args* args, thread_func tf)
}
}
free(myStack);
free(myStack); /* native heap */
#ifdef HAVE_STACK_SIZE_VERBOSE
printf("stack used = %lu\n", StackSizeCheck_stackSizeHWM > (stackSize - i)
? (unsigned long)StackSizeCheck_stackSizeHWM
@ -681,16 +681,16 @@ static WC_INLINE int StackSizeCheck_launch(struct func_args* args,
stackSize = PTHREAD_STACK_MIN;
#endif
shim_args = (struct stack_size_debug_context *)malloc(sizeof *shim_args);
shim_args = (struct stack_size_debug_context *)malloc(sizeof *shim_args); /* native heap */
if (shim_args == NULL) {
perror("malloc");
return -1;
}
ret = posix_memalign((void**)&myStack, sysconf(_SC_PAGESIZE), stackSize);
ret = posix_memalign((void**)&myStack, sysconf(_SC_PAGESIZE), stackSize); /* native heap */
if (ret != 0 || myStack == NULL) {
wc_mem_printf("posix_memalign failed\n");
free(shim_args);
free(shim_args); /* native heap */
return -1;
}
@ -699,8 +699,8 @@ static WC_INLINE int StackSizeCheck_launch(struct func_args* args,
ret = pthread_attr_init(&myAttr);
if (ret != 0) {
wc_mem_printf("attr_init failed\n");
free(shim_args);
free(myStack);
free(shim_args); /* native heap */
free(myStack); /* native heap */
return ret;
}
@ -749,7 +749,7 @@ static WC_INLINE int StackSizeCheck_reap(pthread_t threadId,
}
}
free(shim_args->myStack);
free(shim_args->myStack); /* native heap */
#ifdef HAVE_STACK_SIZE_VERBOSE
printf("stack used = %lu\n",
*shim_args->stackSizeHWM_ptr > (shim_args->stackSize - i)
@ -761,7 +761,7 @@ static WC_INLINE int StackSizeCheck_reap(pthread_t threadId,
printf("stack used = %lu\n", (unsigned long)used);
}
#endif
free(shim_args);
free(shim_args); /* native heap */
return (int)((size_t)status);
}

View File

@ -169,8 +169,12 @@ enum {
RSA_PSS_SALT_MAX_SZ = 62,
#ifdef OPENSSL_EXTRA
RSA_PKCS1_PADDING_SIZE = 11,
RSA_PKCS1_OAEP_PADDING_SIZE = 42, /* (2 * hashlen(SHA-1)) + 2 */
WC_RSA_PKCS1_PADDING_SIZE = 11,
WC_RSA_PKCS1_OAEP_PADDING_SIZE = 42, /* (2 * hashlen(SHA-1)) + 2 */
#ifndef OPENSSL_COEXIST
#define RSA_PKCS1_PADDING_SIZE WC_RSA_PKCS1_PADDING_SIZE
#define RSA_PKCS1_OAEP_PADDING_SIZE WC_RSA_PKCS1_OAEP_PADDING_SIZE
#endif
#endif
#ifdef WC_RSA_PSS
RSA_PSS_PAD_TERM = 0xBC,

View File

@ -1425,9 +1425,9 @@ extern void uITRON4_free(void *p) ;
#if defined(WOLFSSL_LEANPSK) && !defined(XMALLOC_USER) && \
!defined(NO_WOLFSSL_MEMORY) && !defined(WOLFSSL_STATIC_MEMORY)
#include <stdlib.h>
#define XMALLOC(s, h, type) ((void)(h), (void)(type), malloc((s)))
#define XFREE(p, h, type) ((void)(h), (void)(type), free((p)))
#define XREALLOC(p, n, h, t) ((void)(h), (void)(t), realloc((p), (n)))
#define XMALLOC(s, h, type) ((void)(h), (void)(type), malloc((s))) /* native heap */
#define XFREE(p, h, type) ((void)(h), (void)(type), free((p))) /* native heap */
#define XREALLOC(p, n, h, t) ((void)(h), (void)(t), realloc((p), (n))) /* native heap */
#endif
#if defined(XMALLOC_USER) && defined(SSN_BUILDING_LIBYASSL)
@ -1462,18 +1462,18 @@ extern void uITRON4_free(void *p) ;
(s), (__FILE__), (__LINE__), (__FUNCTION__) ))
#else
#define XMALLOC(s, h, type) \
((void)(h), (void)(type), pvPortMalloc((s)))
((void)(h), (void)(type), pvPortMalloc((s))) /* native heap */
#endif
/* XFREE */
#define XFREE(p, h, type) ((void)(h), (void)(type), vPortFree((p)))
#define XFREE(p, h, type) ((void)(h), (void)(type), vPortFree((p))) /* native heap */
/* XREALLOC */
#if defined(WOLFSSL_ESPIDF)
/* In the Espressif EDP-IDF, realloc(p, n) is equivalent to
* heap_caps_realloc(p, s, MALLOC_CAP_8BIT)
* There's no pvPortRealloc available: */
#define XREALLOC(p, n, h, t) ((void)(h), (void)(t), realloc((p), (n)))
#define XREALLOC(p, n, h, t) ((void)(h), (void)(t), realloc((p), (n))) /* native heap */
#elif defined(USE_INTEGER_HEAP_MATH) || defined(OPENSSL_EXTRA) || \
defined(OPENSSL_ALL)
/* FreeRTOS pvPortRealloc() implementation can be found here:
@ -1515,8 +1515,8 @@ extern void uITRON4_free(void *p) ;
#ifdef FREERTOS_TCP
#if !defined(NO_WOLFSSL_MEMORY) && !defined(XMALLOC_USER) && \
!defined(WOLFSSL_STATIC_MEMORY)
#define XMALLOC(s, h, type) pvPortMalloc((s))
#define XFREE(p, h, type) vPortFree((p))
#define XMALLOC(s, h, type) pvPortMalloc((s)) /* native heap */
#define XFREE(p, h, type) vPortFree((p)) /* native heap */
#endif
#define WOLFSSL_GENSEED_FORTEST
@ -1684,8 +1684,8 @@ extern void uITRON4_free(void *p) ;
#endif
#if !defined(XMALLOC_USER) && !defined(NO_WOLFSSL_MEMORY) && \
!defined(WOLFSSL_STATIC_MEMORY)
#define XMALLOC(s, h, type) ((void)(h), (void)(type), pvPortMalloc((s)))
#define XFREE(p, h, type) ((void)(h), (void)(type), vPortFree((p)))
#define XMALLOC(s, h, type) ((void)(h), (void)(type), pvPortMalloc((s))) /* native heap */
#define XFREE(p, h, type) ((void)(h), (void)(type), vPortFree((p))) /* native heap */
/* FreeRTOS pvPortRealloc() implementation can be found here:
https://github.com/wolfSSL/wolfssl-freertos/pull/3/files */
@ -1803,8 +1803,8 @@ extern void uITRON4_free(void *p) ;
#define WOLFSSL_CRYPT_HW_MUTEX 1
#if !defined(XMALLOC_USER) && !defined(NO_WOLFSSL_MEMORY)
#define XMALLOC(s, h, type) ((void)(h), (void)(type), pvPortMalloc((s)))
#define XFREE(p, h, type) ((void)(h), (void)(type), vPortFree((p)))
#define XMALLOC(s, h, type) ((void)(h), (void)(type), pvPortMalloc((s))) /* native heap */
#define XFREE(p, h, type) ((void)(h), (void)(type), vPortFree((p))) /* native heap */
#endif
/* #define USER_TICKS */
@ -2753,6 +2753,10 @@ extern void uITRON4_free(void *p) ;
#define WOLFSSL_SP_NO_DYN_STACK
#endif
#if defined(__WATCOMC__) && !defined(WOLF_NO_VARIADIC_MACROS)
#define WOLF_NO_VARIADIC_MACROS
#endif
#ifdef __INTEL_COMPILER
#pragma warning(disable:2259) /* explicit casts to smaller sizes, disable */
#endif

View File

@ -113,7 +113,11 @@ decouple library dependencies with standard string, memory and so on.
#endif
#ifndef WC_BITFIELD
#define WC_BITFIELD byte
#ifdef WOLF_C89
#define WC_BITFIELD unsigned
#else
#define WC_BITFIELD byte
#endif
#endif
#ifndef HAVE_ANONYMOUS_INLINE_AGGREGATES
@ -130,24 +134,27 @@ decouple library dependencies with standard string, memory and so on.
#endif
#endif
/* helpers for stringifying the expanded value of a macro argument rather
* than its literal text:
*/
#define _WC_STRINGIFY_L2(str) #str
#define WC_STRINGIFY(str) _WC_STRINGIFY_L2(str)
/* With a true C89-dialect compiler (simulate with gcc -std=c89 -Wall
* -Wextra -pedantic), a trailing comma on the last value in an enum
* definition is a syntax error. We use this macro to accommodate that
* without disrupting clean flow/syntax when some enum values are
* preprocessor-gated.
*/
#define WC_VALUE_OF(x) x
#if defined(WOLF_C89) || defined(WOLF_NO_TRAILING_ENUM_COMMAS)
#define WOLF_ENUM_DUMMY_LAST_ELEMENT(prefix) _wolf_ ## prefix ## _enum_dummy_last_element
#define _WOLF_ENUM_DUMMY_LAST_ELEMENT_HELPER2(a, b, c, d, e) a ## b ## c ## d ## e
#define _WOLF_ENUM_DUMMY_LAST_ELEMENT_HELPER(a, b, c, d, e) _WOLF_ENUM_DUMMY_LAST_ELEMENT_HELPER2(a, b, c, d, e)
#define WOLF_ENUM_DUMMY_LAST_ELEMENT(prefix) _WOLF_ENUM_DUMMY_LAST_ELEMENT_HELPER(_wolf_, prefix, _L, __LINE__, _enum_dummy_last_element)
#else
#define WOLF_ENUM_DUMMY_LAST_ELEMENT(prefix) /* null expansion */
#endif
/* helpers for stringifying the expanded value of a macro argument rather
* than its literal text:
*/
#define _WC_STRINGIFY_L2(str) #str
#define WC_STRINGIFY(str) _WC_STRINGIFY_L2(str)
/* try to set SIZEOF_LONG or SIZEOF_LONG_LONG if user didn't */
#if defined(_WIN32) || defined(HAVE_LIMITS_H)
/* make sure both SIZEOF_LONG_LONG and SIZEOF_LONG are set,
@ -438,16 +445,6 @@ typedef struct w64wrapper {
#define WC_SAFE_SUM_WORD32(in1, in2, out) ((in2) <= 0xffffffffU - (in1) ? \
((out) = (in1) + (in2), 1) : ((out) = 0xffffffffU, 0))
/* idea to add global alloc override by Moises Guimaraes */
/* default to libc stuff */
/* XREALLOC is used once in normal math lib, not in fast math lib */
/* XFREE on some embedded systems doesn't like free(0) so test for NULL
* explicitly.
*
* For example:
* #define XFREE(p, h, t) \
* {void* xp = (p); if (xp != NULL) free(xp, h, t);}
*/
#if defined(HAVE_IO_POOL)
WOLFSSL_API void* XMALLOC(size_t n, void* heap, int type);
WOLFSSL_API void* XREALLOC(void *p, size_t n, void* heap, int type);
@ -540,14 +537,14 @@ typedef struct w64wrapper {
#else
/* just use plain C stdlib stuff if desired */
#include <stdlib.h>
#define XMALLOC(s, h, t) ((void)(h), (void)(t), malloc((size_t)(s)))
#define XMALLOC(s, h, t) ((void)(h), (void)(t), malloc((size_t)(s))) /* native heap */
#ifdef WOLFSSL_XFREE_NO_NULLNESS_CHECK
#define XFREE(p, h, t) do { (void)(h); (void)(t); free(p); } while (0)
#define XFREE(p, h, t) do { (void)(h); (void)(t); free(p); } while (0) /* native heap */
#else
#define XFREE(p, h, t) do { void* xp = (p); (void)(h); if (xp) free(xp); } while (0)
#define XFREE(p, h, t) do { void* xp = (p); (void)(h); if (xp) free(xp); } while (0) /* native heap */
#endif
#define XREALLOC(p, n, h, t) \
((void)(h), (void)(t), realloc((p), (size_t)(n)))
((void)(h), (void)(t), realloc((p), (size_t)(n))) /* native heap */
#endif
#elif defined(WOLFSSL_LINUXKM)
@ -862,7 +859,11 @@ typedef struct w64wrapper {
#endif
#define XSPRINTF sprintf
/* snprintf not available for C89, so remap using macro */
#define XSNPRINTF(f, len, ...) sprintf(f, __VA_ARGS__)
#ifdef WOLF_NO_VARIADIC_MACROS
#error WOLF_NO_VARIADIC_MACROS requires user-supplied binding for XSNPRINTF
#else
#define XSNPRINTF(f, len, ...) sprintf(f, __VA_ARGS__)
#endif
#else
#ifndef NO_STDIO_FILESYSTEM
#include <stdio.h>
@ -1107,6 +1108,7 @@ typedef struct w64wrapper {
DYNAMIC_TYPE_LMS = 101,
DYNAMIC_TYPE_BIO = 102,
DYNAMIC_TYPE_X509_ACERT = 103,
DYNAMIC_TYPE_OS_BUF = 104,
DYNAMIC_TYPE_SNIFFER_SERVER = 1000,
DYNAMIC_TYPE_SNIFFER_SESSION = 1001,
DYNAMIC_TYPE_SNIFFER_PB = 1002,