Skip to content

Commit c868c3e

Browse files
authored
Merge pull request #8164 from douzzer/20241105-c89-expansion-etc
20241105-c89-expansion-etc
2 parents b648d35 + 469b9ef commit c868c3e

File tree

30 files changed

+327
-275
lines changed

30 files changed

+327
-275
lines changed

.github/workflows/codespell.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,4 @@ jobs:
2727
# 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.
2828
exclude_file: '.codespellexcludelines'
2929
# To skip files entirely from being processed, add it to the following list:
30-
skip: '*.cproject,*.der,*.mtpj,*.pem,*.vcxproj,.git,*.launch,*.scfg,*/README_jp.txt'
30+
skip: '*.cproject,*.der,*.mtpj,*.pem,*.vcxproj,.git,*.launch,*.scfg'
Lines changed: 104 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,71 @@
1-
wolfSSL/AlphaProject�{�[�h�f���@�Z�b�g�A�b�v�K�C�h
1+
wolfSSL/AlphaProjectボードデモ セットアップガイド
22

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

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

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

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

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

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

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

26-
�@�f����ap_rx71m_0a_sample_cs\Sample\ap_rx71m_0a_ether_sample_cs�t�H���_����
27-
�@ap_rx71m_0a_ether_sample_cs.mtpj�v���W�F�N�g�𗘗p���܂��B
28-
�@
29-
�@- ap_rx71m_0a_sample_cs\Sample\ap_rx71m_0a_ether_sample_cs\src�t�H���_����
30-
�@AP_RX71M_0A.c�t�@�C�����J���A
31-
�@�X�V�s�ڂ�echo_srv_init()�̉���wolfSSL_init()��}�����܂��B
26+
 デモはap_rx71m_0a_sample_cs¥Sample¥ap_rx71m_0a_ether_sample_csフォルダ下の
27+
 ap_rx71m_0a_ether_sample_cs.mtpjプロジェクトを利用します。
28+
 
29+
 - ap_rx71m_0a_sample_cs¥Sample¥ap_rx71m_0a_ether_sample_cs¥srcフォルダ下の
30+
 AP_RX71M_0A.cファイルを開き、
31+
 97行目のecho_srv_init()の下にwolfSSL_init()を挿入します。
3232

3333
===
3434
sci_init();
3535
can_init();
3636
echo_srv_init();
37-
wolfSSL_init(); <- ���̍s��}��
37+
wolfSSL_init(); <- この行を挿入
3838
===
3939

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

50-
�@- ap_rx71m_0a_sample_cs\Sample\ap_rx71m_0a_ether_sample_cs\src\smc_gen\r_bsp_config.h
51-
�@���J���A�X�^�b�N�T�C�Y�ƃq�[�v�T�C�Y���ȉ��̂悤�ɐݒ肵�܂��B
52-
�@
53-
�@120�s�� #pragma stacksize su=0x2000
54-
�@139�s�� #define BSP_CFG_HEAP_BYTES (0xa000)
55-
56-
!!** �T���v���v���O���� v2.0 ���g�p����ꍇ�́A���L **!!
57-
�@- ap_rx71m_0a_sample_cs\Sample\ap_rx71m_0a_usbfunc_sample_cs\src\smc_gen\r_bsp_config.h
58-
�@���J���A�X�^�b�N�T�C�Y�ƃq�[�v�T�C�Y���ȉ��̂悤�ɐݒ肵�܂��B
59-
�@154�s�� #pragma stacksize su=0x2000
60-
�@175�s�� #define BSP_CFG_HEAP_BYTES (0xa000)
50+
 - ap_rx71m_0a_sample_cs¥Sample¥ap_rx71m_0a_ether_sample_cs¥src¥smc_gen¥r_bsp_config.h
51+
 を開き、スタックサイズとヒープサイズを以下のように設定します。
52+
 
53+
 120行目 #pragma stacksize su=0x2000
54+
 139行目 #define BSP_CFG_HEAP_BYTES (0xa000)
55+
56+
!!** サンプルプログラム v2.0 を使用する場合は、下記 **!!
57+
 - ap_rx71m_0a_sample_cs¥Sample¥ap_rx71m_0a_usbfunc_sample_cs¥src¥smc_gen¥r_bsp_config.h
58+
 を開き、スタックサイズとヒープサイズを以下のように設定します。
59+
 154行目 #pragma stacksize su=0x2000
60+
 175行目 #define BSP_CFG_HEAP_BYTES (0xa000)
6161
!!**********************************************************************!!
6262

63-
�@- IP�A�h���X�̃f�t�H���g�l�͈ȉ��̂悤�ɂȂ��Ă��܂��B
64-
�@�K�v������΁ASample\ap_rx71m_0a_ether_sample_cs\src\r_t4_rx\src\config_tcpudp.c
65-
�@����139�s�ڂ���̒�`��ύX���܂��B
66-
�@!!** �T���v���v���O���� v2.0 ���g�p����ꍇ�́A���L **!!
67-
Sample\ap_rx71m_0a_usbfunc_sample_cs\src\tcp_sample\src\config_tcpudp.c
68-
����166�s�ڂ���̒�`��ύX���܂��B
63+
 - IPアドレスのデフォルト値は以下のようになっています。
64+
 必要があれば、Sample¥ap_rx71m_0a_ether_sample_cs¥src¥r_t4_rx¥src¥config_tcpudp.c
65+
 内の139行目からの定義を変更します。
66+
 !!** サンプルプログラム v2.0 を使用する場合は、下記 **!!
67+
Sample¥ap_rx71m_0a_usbfunc_sample_cs¥src¥tcp_sample¥src¥config_tcpudp.c
68+
内の166行目からの定義を変更します。
6969
!!**********************************************************************!!
7070

7171
===
@@ -75,74 +75,74 @@ wolfSSL/AlphaProject
7575
===
7676

7777

78-
�@- CS+��ap_rx71m_0a_ether_sample_cs.mtpj�v���W�F�N�g���J���AwolfSSL�ƃf�����C�u������
79-
�@�o�^���܂��BCC-RX(�r���h�c�[��)->�����N�E�I�v�V�����^�u->�g�p���郉�C�u������
80-
�@�ȉ��̓�‚̃t�@�C����o�^���܂��B
81-
�@wolfssl\IDE\Renesas\cs+\Projects\wolfssl_lib\DefaultBuild\wolfssl_lib.lib
82-
�@wolfssl\IDE\Renesas\cs+\Projects\t4_demo\DefaultBuild\t4_demo.lib
78+
 - CS+でap_rx71m_0a_ether_sample_cs.mtpjプロジェクトを開き、wolfSSLとデモライブラリを
79+
 登録します。CC-RX(ビルドツール)->リンク・オプションタブ->使用するライブラリに
80+
 以下の二つのファイルを登録します。
81+
 wolfssl¥IDE¥Renesas¥cs+¥Projects¥wolfssl_lib¥DefaultBuild¥wolfssl_lib.lib
82+
 wolfssl¥IDE¥Renesas¥cs+¥Projects¥t4_demo¥DefaultBuild¥t4_demo.lib
8383

84-
- CC-RX(�r���h�c�[��)->���C�u�����[�W�F�l���[�V�����^�u->���C�u�����[�\�����uC99�v�ɁA
85-
ctype.h��L���ɂ�����u�͂��v�ɐݒ肵�܂��B
84+
- CC-RX(ビルドツール)->ライブラリージェネレーションタブ->ライブラリー構成を「C99」に、
85+
ctype.hを有効にするを「はい」に設定します。
8686

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

96-
t�R�}���h�F�e�Í����A���S���Y���̊ȒP�ȃe�X�g�����s���܂��B���v�̃A���S���Y����
97-
�@�g�ݍ��܂�Ă��邩�m�F���邱�Ƃ��ł��܂��B�g�ݍ��ރA���S���Y���̓r���h�I�v�V����
98-
�@�ŕύX���邱�Ƃ��ł��܂��B�ڂ����̓��[�U�}�j���A�����Q�Ƃ��Ă��������B
99-
b�R�}���h�F�e�Í��A���S���Y�����Ƃ̊ȒP�ȃx���`�}�[�N�����s���܂��B
100-
s�R�}���h�F�ȒP��TLS�T�[�o���N�����܂��B�N������ƃr���h����IP�A�h���X�A
101-
�@�|�[�g50000�ɂ�TLS�ڑ���҂��܂��B
102-
c�R�}���h�F�ȒP��TLS�N���C�A���g���N�����܂��B�N������Ƒ��A�[�M�������g�Ŏw�肳�ꂽ
103-
�@IP�A�h���X�A���A�[�M�������g�Ŏw�肳�ꂽ�|�[�g�ɑ΂���TLS�ڑ����܂��B
104-
105-
������̃R�}���h���P��̂ݎ��s���܂��B�J��Ԃ����s�������ꍇ�́AMPU�����Z�b�g����
106-
�ċN�����܂��B
107-
108-
�S�D�Ό��e�X�g
109-
�@�f���̂��A���R�}���h���g���āA���̋@��ƊȒP�ȑΌ��e�X�g�����邱�Ƃ��ł��܂��B
110-
�@Ubuntu�Ȃǂ�GCC, make�‹��AWindows��Visual Studio�Ȃǂ�
111-
�@�Ό��e�X�g�p�̃T�[�o�A�N���C�A���g���r���h���邱�Ƃ��ł��܂��B
112-
113-
�@GCC,make�R�}���h�‹��ł́A�_�E�����[�h�𓀂���wolfssl�̃f�B���N�g�����ňȉ���
114-
�@�R�}���h�𔭍s����ƁA���C�u�����A�e�X�g�p�̃N���C�A���g�A�T�[�o�ȂLjꎮ���r���h
115-
�@����܂��B
116-
�@
117-
�@$ ./configure
118-
�@$ make check
119-
�@
120-
�@���̌�A�ȉ��̂悤�Ȏw��ŃN���C�A���g�܂��̓T�[�o���N�����āA�{�[�h���
121-
�@�f���ƑΌ��e�X�g���邱�Ƃ��ł��܂��B
122-
�@
123-
�@PC���F
124-
�@$ ./examples/server/server -b -d
125-
�@�{�[�h���F
126-
�@�@> c <IP�A�h���X> 11111
127-
128-
�@�{�[�h���F
129-
�@�@> s
130-
�@PC���F�@
131-
�@$ ./examples/client/client -h <IP�A�h���X> -p 50000
132-
�@
133-
�@
134-
�@Windows��Visual Studio�ł́A�_�E�����[�h�𓀂���wolfssl�t�H���_����wolfssl64.sln
135-
�@���J���A�\�����[�V�������r���h���܂��BDebug�t�H���_���Ƀr���h�����client.exe��
136-
�@server.exe�𗘗p���܂��B
137-
�@
138-
PC���F
139-
�@Debug> .\server -b -d
140-
�@�{�[�h���F
141-
�@�@> c <IP�A�h���X> 11111
142-
143-
�@�{�[�h���F
144-
�@�@> s
145-
�@PC���F
146-
�@Debug> .\client -h <IP�A�h���X> -p 50000
147-
148-
�ȏ�A
96+
tコマンド:各暗号化アルゴリズムの簡単なテストを実行します。所要のアルゴリズムが
97+
 組み込まれているか確認することができます。組み込むアルゴリズムはビルドオプション
98+
 で変更することができます。詳しくはユーザマニュアルを参照してください。
99+
bコマンド:各暗号アルゴリズムごとの簡単なベンチマークを実行します。
100+
sコマンド:簡単なTLSサーバを起動します。起動するとビルド時のIPアドレス、
101+
 ポート50000にてTLS接続を待ちます。
102+
cコマンド:簡単なTLSクライアントを起動します。起動すると第一アーギュメントで指定された
103+
 IPアドレス、第二アーギュメントで指定されたポートに対してTLS接続します。
104+
105+
いずれのコマンドも1回のみ実行します。繰り返し実行したい場合は、MPUをリセットして
106+
再起動します。
107+
108+
4.対向テスト
109+
 デモのs、cコマンドを使って、他の機器と簡単な対向テストをすることができます。
110+
 UbuntuなどのGCC, make環境、WindowsのVisual Studioなどで
111+
 対向テスト用のサーバ、クライアントをビルドすることができます。
112+
113+
 GCC,makeコマンド環境では、ダウンロード解凍したwolfsslのディレクトリ下で以下の
114+
 コマンドを発行すると、ライブラリ、テスト用のクライアント、サーバなど一式がビルド
115+
 されます。
116+
 
117+
 $ ./configure
118+
 $ make check
119+
 
120+
 その後、以下のような指定でクライアントまたはサーバを起動して、ボード上の
121+
 デモと対向テストすることができます。
122+
 
123+
 PC側:
124+
 $ ./examples/server/server -b -d
125+
 ボード側:
126+
  > c <IPアドレス> 11111
127+
128+
 ボード側:
129+
  > s
130+
 PC側: 
131+
 $ ./examples/client/client -h <IPアドレス> -p 50000
132+
 
133+
 
134+
 WindowsのVisual Studioでは、ダウンロード解凍したwolfsslフォルダ下のwolfssl64.sln
135+
 を開き、ソリューションをビルドします。Debugフォルダ下にビルドされるclient.exeと
136+
 server.exeを利用します。
137+
 
138+
PC側:
139+
 Debug> .¥server -b -d
140+
 ボード側:
141+
  > c <IPアドレス> 11111
142+
143+
 ボード側:
144+
  > s
145+
 PC側:
146+
 Debug> .¥client -h <IPアドレス> -p 50000
147+
148+
以上、

cmake/options.h.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ extern "C" {
131131
#undef HAVE_POLY1305
132132
#cmakedefine HAVE_POLY1305
133133
#undef HAVE_PTHREAD
134-
#cmakedefine HAVE_PTHREAD
134+
#cmakedefine HAVE_PTHREAD 1
135135
#undef HAVE_REPRODUCIBLE_BUILD
136136
#cmakedefine HAVE_REPRODUCIBLE_BUILD
137137
#undef HAVE_SESSION_TICKET

configure.ac

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6000,6 +6000,19 @@ else
60006000
fi
60016001
60026002
6003+
# C89 build
6004+
AC_ARG_ENABLE([c89],
6005+
[AS_HELP_STRING([--enable-c89],[Build with C89 toolchain (default: disabled)])],
6006+
[ ENABLED_C89=$enableval ],
6007+
[ ENABLED_C89=no ]
6008+
)
6009+
6010+
if test "$ENABLED_C89" = "yes"
6011+
then
6012+
AM_CFLAGS="$AM_CFLAGS -DWOLF_C89"
6013+
test "$enable_inline" = "" && enable_inline=no
6014+
fi
6015+
60036016
# inline Build
60046017
AC_ARG_ENABLE([inline],
60056018
[AS_HELP_STRING([--enable-inline],[Enable inline functions (default: enabled)])],
@@ -9928,7 +9941,7 @@ AM_CONDITIONAL([USE_VALGRIND],[test "x$ENABLED_VALGRIND" = "xyes"])
99289941
AM_CONDITIONAL([BUILD_MD4],[test "x$ENABLED_MD4" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
99299942
AM_CONDITIONAL([BUILD_PWDBASED],[test "x$ENABLED_PWDBASED" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
99309943
AM_CONDITIONAL([BUILD_SCRYPT],[test "x$ENABLED_SCRYPT" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
9931-
AM_CONDITIONAL([BUILD_CRYPTONLY],[test "x$ENABLED_CRYPTONLY" = "xyes" && test "x$ENABLED_OPENSSLEXTRA" = "xno"])
9944+
AM_CONDITIONAL([BUILD_CRYPTONLY],[test "x$ENABLED_CRYPTONLY" = "xyes"])
99329945
AM_CONDITIONAL([BUILD_FASTMATH],[test "x$ENABLED_FASTMATH" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
99339946
AM_CONDITIONAL([BUILD_HEAPMATH],[test "x$ENABLED_HEAPMATH" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
99349947
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"
1049710510
echo " * RISC-V ASM $ENABLED_RISCV_ASM"
1049810511
echo " * Write duplicate: $ENABLED_WRITEDUP"
1049910512
echo " * Xilinx Hardware Acc.: $ENABLED_XILINX"
10513+
echo " * C89: $ENABLED_C89"
1050010514
echo " * Inline Code: $ENABLED_INLINE"
1050110515
echo " * Linux AF_ALG: $ENABLED_AFALG"
1050210516
echo " * Linux KCAPI: $ENABLED_KCAPI"

examples/asn1/asn1.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -66,15 +66,15 @@ static int asn1App_ReadFile(FILE* fp, unsigned char** pdata, word32* plen)
6666
word32 len = 0;
6767
size_t read_len;
6868
/* Allocate a minimum amount. */
69-
unsigned char* data = (unsigned char*)malloc(DATA_INC_LEN);
69+
unsigned char* data = (unsigned char*)XMALLOC(DATA_INC_LEN, NULL, DYNAMIC_TYPE_TMP_BUFFER);
7070

7171
if (data != NULL) {
7272
/* Read more data. */
7373
while ((read_len = fread(data + len, 1, DATA_INC_LEN, fp)) != 0) {
7474
unsigned char* p;
7575

7676
if (ferror(fp)) {
77-
free(data);
77+
XFREE(data, NULL, DYNAMIC_TYPE_TMP_BUFFER);
7878
return IO_FAILED_E;
7979
}
8080

@@ -87,10 +87,10 @@ static int asn1App_ReadFile(FILE* fp, unsigned char** pdata, word32* plen)
8787
}
8888

8989
/* Make space for more data to be added to buffer. */
90-
p = (unsigned char*)realloc(data, len + DATA_INC_LEN);
90+
p = (unsigned char*)XREALLOC(data, len + DATA_INC_LEN, NULL, DYNAMIC_TYPE_TMP_BUFFER);
9191
if (p == NULL) {
9292
/* Reallocation failed - free current buffer. */
93-
free(data);
93+
XFREE(data, NULL, DYNAMIC_TYPE_TMP_BUFFER);
9494
data = NULL;
9595
break;
9696
}
@@ -132,7 +132,7 @@ static int PrintDer(FILE* fp)
132132
/* Print DER/BER. */
133133
ret = wc_Asn1_PrintAll(&asn1, &opts, data, len);
134134
/* Dispose of buffer. */
135-
free(data);
135+
XFREE(data, NULL, DYNAMIC_TYPE_TMP_BUFFER);
136136
}
137137

138138
return ret;
@@ -168,7 +168,7 @@ static int PrintBase64(FILE* fp)
168168
ret = wc_Asn1_PrintAll(&asn1, &opts, data, len);
169169
}
170170
/* Dispose of buffer. */
171-
free(data);
171+
XFREE(data, NULL, DYNAMIC_TYPE_TMP_BUFFER);
172172
}
173173

174174
return ret;
@@ -280,7 +280,7 @@ static int PrintPem(FILE* fp, int pem_skip)
280280
ret = wc_Asn1_PrintAll(&asn1, &opts, data, len);
281281
}
282282
/* Dispose of buffer. */
283-
free(data);
283+
XFREE(data, NULL, DYNAMIC_TYPE_TMP_BUFFER);
284284
}
285285

286286
return ret;

examples/client/client.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -789,9 +789,9 @@ static int ClientBenchmarkThroughput(WOLFSSL_CTX* ctx, char* host, word16 port,
789789

790790
/* Compare TX and RX buffers */
791791
if (XMEMCMP(tx_buffer, rx_buffer, (size_t)len) != 0) {
792-
free(tx_buffer);
792+
XFREE(tx_buffer, NULL, DYNAMIC_TYPE_TMP_BUFFER);
793793
tx_buffer = NULL;
794-
free(rx_buffer);
794+
XFREE(rx_buffer, NULL, DYNAMIC_TYPE_TMP_BUFFER);
795795
rx_buffer = NULL;
796796
err_sys("Compare TX and RX buffers failed");
797797
}

0 commit comments

Comments
 (0)