Skip to content

Commit

Permalink
addressing CI errors
Browse files Browse the repository at this point in the history
configure.ac: activate opensslextra for --enable-curl even if ENABLED_OPENSSLCOEXIST; tests/api.c: in test_wolfSSL_SESSION(), use WOLFSSL_SUCCESS, not SSL_SUCCESS, in HAVE_SESSION_TICKET span reachable in non-OPENSSL_EXTRA builds.

codespell fixes.

more fixes

no need to cast to unsigned long int, went back to normal int

various trailing spaces and hard tabs fixes

addressing bugprone-misplaced-widening-cast (loss of precision)

configure.ac: activate opensslextra for --enable-curl even if ENABLED_OPENSSLCOEXIST; tests/api.c: in test_wolfSSL_SESSION(), use WOLFSSL_SUCCESS, not SSL_SUCCESS, in HAVE_SESSION_TICKET span reachable in non-OPENSSL_EXTRA builds.

codespell fixes.

Ability to bypass './configure' as some tests/scripts run it anyway

Fix false positive error on gcc 9.4.0

"error: ‘nameSz’ may be used uninitialized in this function", but it's not actually going to be used uninitialized.

Add support for Raspberry Pi Pico

This adds improved support for the Raspberry Pi Pico range of
microcontrollers.

Benchmark now compiles, and added support for the RNG functions of the
Pico SDK. This gives a ~2x RNG performance improvement on the RP2040 and
over 3x improvement on the RP2350.

The accelerated SHA256 in the RP2350 unfortunately cannot be used with
wolfSSL.

spelling: tiny cleanup.

Testing fixes

Fix header inclusion: settings.h after options.h.
pkcs8_encode(): dh is not available if NO_DH is defined.

wolfCLU added support for PKCS7

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.

wolfssl/test.h: revert heap shim refactor -- api.c relies on these being native heap allocations.

Fix for building sources (wildcard *.c). Add macro guard on new files.

Kyber/ML-KEM: make both available

Make Kyber and ML-KEM individually available as well as at the same
time.
Modified TLS layer to support both Kyber and ML-KEM.
Added new identifiers in TLS layer for ML-KEM.

display heap pointer with debug enabled

Use only one or the other

merge mix-up

dot instead of pointer

wrapping lines < 80 characters

No new line at the end of the file codespell.yml
  • Loading branch information
gasbytes committed Nov 15, 2024
1 parent d8ccbe8 commit e2b509a
Show file tree
Hide file tree
Showing 67 changed files with 2,031 additions and 630 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,./IDE/Renesas/cs+/Projects/t4_demo/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

以上、
5 changes: 5 additions & 0 deletions IDE/STM32Cube/wolfssl_example.c
Original file line number Diff line number Diff line change
Expand Up @@ -1751,6 +1751,11 @@ static int tls13_uart_client(void)
wolfSSL_SetIOReadCtx(ssl, tbuf);

#ifdef WOLFSSL_HAVE_KYBER
#ifndef WOLFSSL_NO_ML_KEM
if (wolfSSL_UseKeyShare(ssl, WOLFSSL_ML_KEM_512) != WOLFSSL_SUCCESS) {
printf("wolfSSL_UseKeyShare Error!!");
}
#else
if (wolfSSL_UseKeyShare(ssl, WOLFSSL_KYBER_LEVEL1) != WOLFSSL_SUCCESS) {
printf("wolfSSL_UseKeyShare Error!!");
}
Expand Down
2 changes: 1 addition & 1 deletion certs/taoCert.txt
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ to use PKCS#5 v2 instead of v1.5 which is default add

-v2 des3 # file Pkcs8Enc2

to use PKCS#12 instead use -v1 witch a 12 algo like
to use PKCS#12 instead use -v1 which a 12 algo like

-v1 PBE-SHA1-3DES # file Pkcs8Enc12 , see man pkcs8 for more info
-v1 PBE-SHA1-RC4-128 # no longer file Pkcs8Enc12, arc4 now off by default
Expand Down
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
Loading

0 comments on commit e2b509a

Please sign in to comment.