Skip to content

Commit

Permalink
Merge pull request wolfSSL#8164 from douzzer/20241105-c89-expansion-etc
Browse files Browse the repository at this point in the history
20241105-c89-expansion-etc
  • Loading branch information
dgarske authored Nov 8, 2024
2 parents b648d35 + 469b9ef commit c868c3e
Show file tree
Hide file tree
Showing 30 changed files with 327 additions and 275 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/codespell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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'
208 changes: 104 additions & 104 deletions IDE/Renesas/cs+/Projects/t4_demo/README_jp.txt
Original file line number Diff line number Diff line change
@@ -1,71 +1,71 @@
wolfSSL/AlphaProject�{�[�h�f���@�Z�b�g�A�b�v�K�C�h
wolfSSL/AlphaProjectボードデモ セットアップガイド

���̃f���͈ȉ��̊‹��Ńe�X�g���Ă��܂��B
このデモは以下の環境でテストしています。

Renesas : CS+ v6.01, v8.01
Board : AP-RX71M-0A
wolfSSL : 3.15.3, 4.0.0

�Z�b�g�A�b�v�菇�F
セットアップ手順:

�P�D�\�t�g�E�F�A�̓���
�@- AP�{�[�h�t���̃\�t�g�E�F�A�ꎮ��K���ȃt�H���_�[���ɉ𓀂��܂��B
�@- �����t�H���_�[����wolfssl�ꎮ���𓀂��܂��B
1.ソフトウェアの入手
 - APボード付属のソフトウェア一式を適当なフォルダー下に解凍します。
 - 同じフォルダー下にwolfssl一式を解凍します。

�Q�DwolfSSL�̃Z�b�g�A�b�v
�@- CS+�ɂ�wolfssl\IDE\Renesas\cs+\Project����wolfssl\wolfssl_lib.mtpj���J��
�@�@wolfSSL���C�u�����[�̃r���h�����܂��B
�@- �����t�H���_�̉���t4_demo.mtpj���J���A�f���v���O�����̃r���h�����܂��B
�@���̃v���O���������C�u�����[�`���Ńr���h����܂��B
2.wolfSSLのセットアップ
 - CS+にてwolfssl¥IDE¥Renesas¥cs+¥Project下のwolfssl¥wolfssl_lib.mtpjを開き
  wolfSSLライブラリーのビルドをします。
 - 同じフォルダの下のt4_demo.mtpjを開き、デモプログラムのビルドをします。
 このプログラムもライブラリー形式でビルドされます。

�R�DAlphaProject���̃Z�b�g�A�b�v
3.AlphaProject側のセットアップ

!!** �T���v���v���O���� v2.0 ���g�p����ꍇ�́A_ether_ => _usbfunc_ **!!
!!** �ƒu�������Ă������� **!!
!!** サンプルプログラム v2.0 を使用する場合は、_ether_ => _usbfunc_ **!!
!!** と置き換えてください **!!

�@�f����ap_rx71m_0a_sample_cs\Sample\ap_rx71m_0a_ether_sample_cs�t�H���_����
�@ap_rx71m_0a_ether_sample_cs.mtpj�v���W�F�N�g�𗘗p���܂��B
�@
�@- ap_rx71m_0a_sample_cs\Sample\ap_rx71m_0a_ether_sample_cs\src�t�H���_����
�@AP_RX71M_0A.c�t�@�C�����J���A
�@�X�V�s�ڂ�echo_srv_init()�̉���wolfSSL_init()��}�����܂��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(); <- ���̍s��}��
wolfSSL_init(); <- この行を挿入
===

!!** �T���v���v���O���� v2.0 ���g�p����ꍇ�́A���L **!!
!!** サンプルプログラム v2.0 を使用する場合は、下記 **!!
===
CanInit();
SciInit();
EthernetAppInit();
UsbfInit();
wolfSSL_init(); <- ���̍s��}��
wolfSSL_init(); <- この行を挿入
===
!!**********************************************************************!!

�@- ap_rx71m_0a_sample_cs\Sample\ap_rx71m_0a_ether_sample_cs\src\smc_gen\r_bsp_config.h
�@���J���A�X�^�b�N�T�C�Y�ƃq�[�v�T�C�Y���ȉ��̂悤�ɐݒ肵�܂��B
�@
�@120�s�� #pragma stacksize su=0x2000
�@139�s�� #define BSP_CFG_HEAP_BYTES (0xa000)

!!** �T���v���v���O���� v2.0 ���g�p����ꍇ�́A���L **!!
�@- ap_rx71m_0a_sample_cs\Sample\ap_rx71m_0a_usbfunc_sample_cs\src\smc_gen\r_bsp_config.h
�@���J���A�X�^�b�N�T�C�Y�ƃq�[�v�T�C�Y���ȉ��̂悤�ɐݒ肵�܂��B
�@154�s�� #pragma stacksize su=0x2000
�@175�s�� #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)

!!** サンプルプログラム 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)
!!**********************************************************************!!

�@- IP�A�h���X�̃f�t�H���g�l�͈ȉ��̂悤�ɂȂ��Ă��܂��B
�@�K�v������΁ASample\ap_rx71m_0a_ether_sample_cs\src\r_t4_rx\src\config_tcpudp.c
�@����139�s�ڂ���̒�`��ύX���܂��B
�@!!** �T���v���v���O���� v2.0 ���g�p����ꍇ�́A���L **!!
Sample\ap_rx71m_0a_usbfunc_sample_cs\src\tcp_sample\src\config_tcpudp.c
����166�s�ڂ���̒�`��ύX���܂��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行目からの定義を変更します。
!!**********************************************************************!!

===
Expand All @@ -75,74 +75,74 @@ wolfSSL/AlphaProject
===


�@- CS+��ap_rx71m_0a_ether_sample_cs.mtpj�v���W�F�N�g���J���AwolfSSL�ƃf�����C�u������
�@�o�^���܂��BCC-RX(�r���h�c�[��)->�����N�E�I�v�V�����^�u->�g�p���郉�C�u������
�@�ȉ��̓�‚̃t�@�C����o�^���܂��B
�@wolfssl\IDE\Renesas\cs+\Projects\wolfssl_lib\DefaultBuild\wolfssl_lib.lib
�@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(�r���h�c�[��)->���C�u�����[�W�F�l���[�V�����^�u->���C�u�����[�\�����uC99�v�ɁA
ctype.h��L���ɂ�����u�͂��v�ɐݒ肵�܂��B
- CC-RX(ビルドツール)->ライブラリージェネレーションタブ->ライブラリー構成を「C99」に、
ctype.hを有効にするを「はい」に設定します。

�@- �v���W�F�N�g�̃r���h�A�^�[�Q�b�g�ւ̃_�E�����[�h�������̂��A�\��->�f�o�b�O�E�R���\�[��
�@����R���\�[����\�������܂��B���s���J�n����ƃR���\�[���Ɉȉ��̕\�����o�͂���܂��B
�@
 - プロジェクトのビルド、ターゲットへのダウンロードをしたのち、表示->デバッグ・コンソール
 からコンソールを表示させます。実行を開始するとコンソールに以下の表示が出力されます。
 
===
�@wolfSSL Demo
 wolfSSL Demo
t: test, b: benchmark, s: server, or c <IP addr> <Port>: client
$
===

t�R�}���h�F�e�Í����A���S���Y���̊ȒP�ȃe�X�g�����s���܂��B���v�̃A���S���Y����
�@�g�ݍ��܂�Ă��邩�m�F���邱�Ƃ��ł��܂��B�g�ݍ��ރA���S���Y���̓r���h�I�v�V����
�@�ŕύX���邱�Ƃ��ł��܂��B�ڂ����̓��[�U�}�j���A�����Q�Ƃ��Ă��������B
b�R�}���h�F�e�Í��A���S���Y�����Ƃ̊ȒP�ȃx���`�}�[�N�����s���܂��B
s�R�}���h�F�ȒP��TLS�T�[�o���N�����܂��B�N������ƃr���h����IP�A�h���X�A
�@�|�[�g50000�ɂ�TLS�ڑ���҂��܂��B
c�R�}���h�F�ȒP��TLS�N���C�A���g���N�����܂��B�N������Ƒ��A�[�M�������g�Ŏw�肳�ꂽ
�@IP�A�h���X�A���A�[�M�������g�Ŏw�肳�ꂽ�|�[�g�ɑ΂���TLS�ڑ����܂��B

������̃R�}���h���P��̂ݎ��s���܂��B�J��Ԃ����s�������ꍇ�́AMPU�����Z�b�g����
�ċN�����܂��B

�S�D�Ό��e�X�g
�@�f���̂��A���R�}���h���g���āA���̋@��ƊȒP�ȑΌ��e�X�g�����邱�Ƃ��ł��܂��B
�@Ubuntu�Ȃǂ�GCC, make�‹��AWindows��Visual Studio�Ȃǂ�
�@�Ό��e�X�g�p�̃T�[�o�A�N���C�A���g���r���h���邱�Ƃ��ł��܂��B

�@GCC,make�R�}���h�‹��ł́A�_�E�����[�h�𓀂���wolfssl�̃f�B���N�g�����ňȉ���
�@�R�}���h�𔭍s����ƁA���C�u�����A�e�X�g�p�̃N���C�A���g�A�T�[�o�ȂLjꎮ���r���h
�@����܂��B
�@
�@$ ./configure
�@$ make check
�@
�@���̌�A�ȉ��̂悤�Ȏw��ŃN���C�A���g�܂��̓T�[�o���N�����āA�{�[�h���
�@�f���ƑΌ��e�X�g���邱�Ƃ��ł��܂��B
�@
�@PC���F
�@$ ./examples/server/server -b -d
�@�{�[�h���F
�@�@> c <IP�A�h���X> 11111

�@�{�[�h���F
�@�@> s
�@PC���F�@
�@$ ./examples/client/client -h <IP�A�h���X> -p 50000
�@
�@
�@Windows��Visual Studio�ł́A�_�E�����[�h�𓀂���wolfssl�t�H���_����wolfssl64.sln
�@���J���A�\�����[�V�������r���h���܂��BDebug�t�H���_���Ƀr���h�����client.exe��
�@server.exe�𗘗p���܂��B
�@
PC���F
�@Debug> .\server -b -d
�@�{�[�h���F
�@�@> c <IP�A�h���X> 11111

�@�{�[�h���F
�@�@> s
�@PC���F
�@Debug> .\client -h <IP�A�h���X> -p 50000

�ȏ�A
tコマンド:各暗号化アルゴリズムの簡単なテストを実行します。所要のアルゴリズムが
 組み込まれているか確認することができます。組み込むアルゴリズムはビルドオプション
 で変更することができます。詳しくはユーザマニュアルを参照してください。
bコマンド:各暗号アルゴリズムごとの簡単なベンチマークを実行します。
sコマンド:簡単なTLSサーバを起動します。起動するとビルド時のIPアドレス、
 ポート50000にてTLS接続を待ちます。
cコマンド:簡単なTLSクライアントを起動します。起動すると第一アーギュメントで指定された
 IPアドレス、第二アーギュメントで指定されたポートに対してTLS接続します。

いずれのコマンドも1回のみ実行します。繰り返し実行したい場合は、MPUをリセットして
再起動します。

4.対向テスト
 デモのs、cコマンドを使って、他の機器と簡単な対向テストをすることができます。
 UbuntuなどのGCC, make環境、WindowsのVisual Studioなどで
 対向テスト用のサーバ、クライアントをビルドすることができます。

 GCC,makeコマンド環境では、ダウンロード解凍したwolfsslのディレクトリ下で以下の
 コマンドを発行すると、ライブラリ、テスト用のクライアント、サーバなど一式がビルド
 されます。
 
 $ ./configure
 $ make check
 
 その後、以下のような指定でクライアントまたはサーバを起動して、ボード上の
 デモと対向テストすることができます。
 
 PC側:
 $ ./examples/server/server -b -d
 ボード側:
  > c <IPアドレス> 11111

 ボード側:
  > s
 PC側: 
 $ ./examples/client/client -h <IPアドレス> -p 50000
 
 
 WindowsのVisual Studioでは、ダウンロード解凍したwolfsslフォルダ下のwolfssl64.sln
 を開き、ソリューションをビルドします。Debugフォルダ下にビルドされるclient.exeと
 server.exeを利用します。
 
PC側:
 Debug> .¥server -b -d
 ボード側:
  > c <IPアドレス> 11111

 ボード側:
  > s
 PC側:
 Debug> .¥client -h <IPアドレス> -p 50000

以上、
2 changes: 1 addition & 1 deletion cmake/options.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
16 changes: 15 additions & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -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)])],
Expand Down Expand Up @@ -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"])
Expand Down Expand Up @@ -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"
Expand Down
14 changes: 7 additions & 7 deletions examples/asn1/asn1.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,15 +66,15 @@ 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. */
while ((read_len = fread(data + len, 1, DATA_INC_LEN, fp)) != 0) {
unsigned char* p;

if (ferror(fp)) {
free(data);
XFREE(data, NULL, DYNAMIC_TYPE_TMP_BUFFER);
return IO_FAILED_E;
}

Expand All @@ -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;
}
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down
4 changes: 2 additions & 2 deletions examples/client/client.c
Original file line number Diff line number Diff line change
Expand Up @@ -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");
}
Expand Down
Loading

0 comments on commit c868c3e

Please sign in to comment.