1

(9 replies, posted in wolfCrypt)

Hi,

I was able to get RSA working by 1. increasing the stack/heap by customizing the memmap_custom.ld and linking it and 2. removing the following code from my CMakeList (this is from the RPI-Pico example repository):

if (${PICO_PLATFORM} STREQUAL "rp2350")
    add_compile_definitions(wolfssl WOLFSSL_SP_ARM_CORTEX_M_ASM)
elseif (${PICO_PLATFORM} STREQUAL "rp2350-riscv")
    add_compile_definitions(wolfSSL WOLFSSL_SP_RISCV32)
else()
    add_compile_definitions(wolfssl WOLFSSL_SP_ARM_THUMB_ASM)
endif()

The above code is right before:

pico_add_extra_outputs(benchmark)

in the Benchmark wolfCrypt algorithms section.

Thank you all for your help.

2

(9 replies, posted in wolfCrypt)

Hi Andrew,

I am using Pico SDK 2.2.0
For cmake, I am using "cmake -DPICO_BOARD=pico2_w -DPICO_PLATFORM=rp2350 .."

3

(9 replies, posted in wolfCrypt)

Hello Andrew,

Thanks for the reply; I've cloned the wolfssl-examples repository and ran the benchmark tests with the config settings that you suggested, but it seems to still stop at RSA. Please let me know what I can do to fix this issue. I'm currently looking into ways to redefine heap/stack memory for the Pico 2W, but it seems like there's very little documentation on that.

4

(9 replies, posted in wolfCrypt)

Hi David,

Thanks for the reply. For now, I'm trying to replicate the benchmark results at the link below, but it seems that I get stuck at RSA, I'm not sure why.
Additionally, are you aware whether it's possible to use ML_DSA on the Pico? Thanks.

https://www.wolfssl.com/a-slice-of-secu … y-pi-pico/

5

(9 replies, posted in wolfCrypt)

Hi all,

I have been trying to implement RSA on the Raspberry Pi Pico 2W RP2350 microcontroller with the Dual Cortex-M33 processor. However, I am getting stuck at wc_MakeRsaKey

RsaKey priv;
WC_RNG rng;
int ret = 0;
long e = 65537; // standard value to use for exponent

ret = wc_InitRsaKey(&priv, NULL);
printf("wc_InitRsaKey ret: %d\n", ret);
ret = wc_InitRng(&rng);
printf("wc_InitRng ret: %d\n", ret);
ret = wc_RsaSetRNG(&priv, &rng);
printf("wc_RsaSetRNG ret: %d\n", ret);
// generate 2048 bit long private key
ret = wc_MakeRsaKey(&priv, 2048, e, &rng);
printf("wc_MakeRsaKey ret: %d\n", ret);

I have tried the benchmark tests and have been unable to replicate the results at https://www.wolfssl.com/docs/benchmarks/
The platform that WolfSSL tested with is slightly different:
Raspberry Pi Pico-W
ARM Cortext M0+, 125MHz
When trying to run to run bench_main from the example repository in WolfSSL:
https://github.com/wolfSSL/wolfssl-exam … nch_main.c
The code gets stuck at RSA.


I saw a blog post here related to this issue:
https://www.wolfssl.com/forums/topic125 … stops.html

However, I am unsure if this is the issue and, if so, how to resolve it for my Pico 2W. Any help is appreciated.