You are not logged in. Please login or register.
Active topics Unanswered topics
Welcome to the wolfSSL Forums!
Please post questions or comments you have about wolfSSL products here. It is helpful to be as descriptive as possible when asking your questions.
References
Stable Releases - download stable product releases.
Development Branch - latest development branch on GitHub.
wolfSSL Manual - wolfSSL (formerly CyaSSL) product manual and API reference.
Search options
Thank you, it is now able to open the project however I am not 100% sure the defines in user_settings.h are being taken into account as I have 265 build errors for things like, unable to find any EC curves.
static const int s_ec_curves_nids[] = {
NID_X9_62_prime256v1,
NID_secp256k1,
NID_secp384r1,
NID_secp521r1,
NID_brainpoolP256r1,
NID_brainpoolP384r1,
NID_brainpoolP512r1
};
However I have the define HAVE_ECC, will investigate further as this may very well be a namespace or porting problem from openssl.
Thanks again for your support
Cheers
Adam
I have updated line 85 and reloaded the project. I now get the following error, there is no spaces in the path?
-
- USERNAME = AdamHeavens
-- THIS_USER = AdamHeavens
-- ************************************************************************************************
-- wolfssl component config:
-- ************************************************************************************************
-- Starting FIND_WOLFSSL_DIRECTORY
-- Found WOLFSSL_ROOT via Environment Variable:
-- CMAKE_CURRENT_SOURCE_DIR = .
-- CURRENT_SEARCH_DIR = D:/Projects/<PROJECTNAME>/components/wolfssl
-- Looking in D:/Projects/<PROJECTNAME>/components/wolfssl
-- Next CURRENT_SEARCH_DIR = D:/Projects/<PROJECTNAME>/components
-- Looking in D:/Projects/<PROJECTNAME>/components
-- Next CURRENT_SEARCH_DIR = D:/Projects/<PROJECTNAME>
-- Looking in D:/Projects/<PROJECTNAME>
-- Next CURRENT_SEARCH_DIR = D:/Projects
-- Looking in D:/Projects
-- Next CURRENT_SEARCH_DIR = D:/
-- Looking in D:/
-- Next CURRENT_SEARCH_DIR = D:/
-- NEW wolfssl directory not found.
CMake Error at components/wolfssl/CMakeLists.txt:176 (message):
Could not find wolfssl in .
Try setting WOLFSSL_ROOT environment variable or git clone.
Cheers
Adam
Thanks,
I have removed the wolfSSL folder from the components folder under ESP-IDF, and copied wolfSSL to the components folder within my project. I have also set an Environment variable for WOLFSSL_ROOT as below:
WOLFSSL_ROOT = d:\ThirdParty\wolfssl
Which is where I have the cloned version. I have also tried with
WOLFSSL_ROOT = "d:\ThirdParty\wolfssl"
WOLFSSL_ROOT = d:/ThirdParty/wolfssl
But get the following is VS now
Error
WOLFSSL_ROOT Environment Variable defined, but path not found: <PROJECTNAME> D:\Projects\<PROJECTNAME>\components\wolfssl\CMakeLists.txt 88
Cheers
Adam
Hi Jim,
Can I check if I am missing any steps here, I have now imported the project to VS with VisualGDB. However I can't get the build to complete due to wolfSSL dependencies.
I have completed the following
Git clone wolfSSL to local folder
Ran the following wolfssl\IDE\Espressif\ESP-IDF> .\setup_win.bat C:\SysGCC\esp32\esp-idf\v5.1 which copies the files into the component directory in the ESP-IDF framework. This creates a user_seetings.h file in \wolfssl\IDE\Espressif\ESP-IDF>
Edited user_settings.h to include
#define SINGLE_THREADED
#define HAVE_ECC
#define WOLFSSL_SMALL_STACK
#define WOLFSSL_ESPIDF
#define WOLFSSL_ESP32
#define OPENSSL_EXTRA
#define OPENSSL_ALL
#define HAVE_TLS_EXTENSIONS
#define HAVE_SUPPORTED_CURVES
#define HAVE_AESGCM
I then try to build the project in VS. Do I need to complete any other steps to get wolfSSL to build
Cheers
Adam
Thank you, I didn't realize VisualGDB had embedded support. I will look at moving to VS and VisualGDB now we are using ESP-IDF as documentation and control appears to be much better and we have a heavy TLS requirement with the ISO15118 (V2G) integrations so would benefit later on I think.
Thank you for your support and sharing your experience, much appreciated.
Cheers
Adam
Hi,
We have moved the project to use the esp-idf framework rather then Arduino, have to say it was a great recommendation as the there is far greater control.
Is there any instructions for integrating wolfSSL into VSCode / PlatformIO with esp-idf or is it simply a matter of copying the same user-settings.h into the managed_components/wolfssl__wolfssl folder?
idf.py add-dependency "wolfssl/wolfssl^5.6.6-stable-update2-esp32"
Cheers
Adam
Thanks Jim,
gojimmypi wrote:Hi Adam -
Is there a serious and compelling reason to use the Arduino platform? I'd like to again emphasize the robustness of the Espressif ESP-IDF. I noticed at project creation time that PlatformIO will use either Arduino or ESP-IDF. If you use the ESP-IDF, we'd be able to help you much more. I'll be working on improving Arduino integration, that's admittedly not great at the moment.
I will look at how much work it would be for us to move to ESP-IDF as I can't think of a reason off hand why we can't migrate to it. As I think we are seeing limitations of the Arduino Framework.
Cheers
Adam
Hi gojimmypi,
Thanks for checking in, yes we certainly will. One of the reasons I am looking at wolfSSL is that we can tailor the SSL/TLS requirements per geographic region or client base.
That is great news and look I forward to using a later build as we keep getting some weird random build issues which is slowing down integration/testing.
For example
wolfssl/openssl/sha.h:73:25: error: conflicting declaration 'typedef WOLFSSL_SHA_CTX SHA_CTX'
Also had to implement custom rand generate block as the #error "you need to write an os specific wc_GenerateSeed() here" error returned. This is with the same user_settings.h as before.
-DCUSTOM_RAND_GENERATE_BLOCK=custom_rand_generate_block
#include "helper/custom_rand.h"
#include <esp_system.h>
int custom_rand_generate_block(byte *output, word32 sz, WC_RNG *rng)
{
word32 rand;
while (sz > 0)
{
word32 len = sizeof(rand);
if (sz < len)
len = sz;
/* Get one random 32-bit word from hw RNG */
rand = esp_random();
XMEMCPY(output, &rand, len);
output += len;
sz -= len;
}
return 0; // Return success (0) or appropriate error code
}
Admittedly we are in the process of porting from openssl to wolfSSL so may be us, but some of the weird build issues have been resolved by simply closing the IDE and re-opening.
So hopefully the latest supported version of wolfSSL will help resolve some of these integration issues.
Cheers
Adam
gojimmypi wrote:AdamHeavens wrote:Hi gojimmypi,
Are there any plans to have an official version published by wolfSSL in the PlatformIO registry?
I'd personally like to see an official version. So far, there's been relatively little demand, particularly considering how well documented and polished the ESP-IDF is these days. The best way is to voice the desire: support@wolfssl.com
Cheers
Will do that now, thanks again
Cheers
Adam
gojimmypi wrote:Hi Adam -
That's excellent you've made progress!
I have added the following to platformio.ini build flags
I suggest putting them in the `user_settings.h` instead:
#define SINGLE_THREADED
#define HAVE_ECC
#define WOLFSSL_SMALL_STACK
#define WOLFSSL_ESPIDF
#define WOLFSSL_ESP32
#define OPENSSL_EXTRA
#define OPENSSL_ALL
#define HAVE_TLS_EXTENSIONS
#define HAVE_SUPPORTED_CURVES
I've updated my sample `user_settings.h` here:
https://github.com/gojimmypi/wolfssl/bl … ings.h#L39
I get the following error when building
#error directive: "No encryption algorithm available for default ticket encryption."
The library for wolfSSL is highly tunable. See the documentation for details on the options available:
https://www.wolfssl.com/documentation/m … ave_aesgcm
One possible solution to the error you are seeing is to turn on AESGCM in `user_settings.h` like this:
Please let me know if that works for you.
Cheers!
Thank you, I have updated the user_settings.h and added HAVE_AESGCM and this has enabled me to build the project. I can now proceed with testing the implementation.
Many thanks for your support
Cheers
Adam
After putting my class' back to utilise the newly integrated wolfSSL, I get the following error when building
#error directive: "No encryption algorithm available for default ticket encryption."
I have added the following to platformio.ini build flags
build_flags =
...
-DSINGLE_THREADED
-DHAVE_ECC
-DWOLFSSL_SMALL_STACK
-DWOLFSSL_ESPIDF
-DWOLFSSL_ESP32
-DOPENSSL_EXTRA
-DOPENSSL_ALL
-DHAVE_TLS_EXTENSIONS
-DHAVE_SUPPORTED_CURVES
Cheers
Adam
Hi gojimmypi,
Thank you for taking the time to do this, very much appreciate the support. wolfSSL 5.5.4 now builds correctly in my project. That was just the steps I needed and gives me more of an insight into wolfSSL configuration.
Are there any plans to have an official version published by wolfSSL in the PlatformIO registry? Happy to help with that if I can.
If not I can directly integrate from the GitHub repo will just need to figure out how to build but I expect that is easier now I have the correct user_settings.h to use.
Looks like it would be worth the time as I can see some of the newer commits include enhanced support on the ESP32-S3.
Cheers
Adam
Thank you, that make sense.
I think I may be skipping a basic compilation step as this is installed using the Platform IO registry and there is no 'build' I am specifying build flags as part of the platformio.ini file but not sure this is correct or complete
[env:esp32-s3-devkitc-1]
platform = espressif32
framework = arduino
board_build.filesystem = littlefs
board_upload.flash_size = 8MB
board_build.partitions = default_8MB.csv
board_build.f_flash = 80000000L
board_build.arduino.memory_type = qio_opi
monitor_speed = 115200
board = esp32-s3-devkitc-1
lib_deps =
onelife/wolfssl@^5.5.4
build_type = release
build_flags =
-DBOARD_HAS_PSRAM
-DCONFIG_SPIRAM=y
-DCONFIG_BT_ALLOCATION_FROM_SPIRAM_FIRST=y
-DCONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y
-DCONFIG_BT_BLE_DYNAMIC_ENV_MEMORY=y
-DCONFIG_SPIRAM_CACHE_WORKAROUND=y
-DCONFIG_SPIRAM_USE_MALLOC=y
-DCONFIG_MBEDTLS_DYNAMIC_BUFFER=1
-std=c++17
-std=gnu++17
-DDOPENSSL_EXTRA
-DOPENSSL_ALL
build_unflags = -std=gnu++11
There are no makefiles as such with VS Code / PlatformIO
I am not using a user_settings.h preference file as again not sure how this fits with the PlatformIO model or what needs to be included.
Happy to figure out from an Example project or Docs but so far not been successful with locating ether.
Thanks for your time
Cheers
Adam
Thanks Eric,
Much appreciated.
We are in the process of porting some Certificate Management class' from openssl to wolfSSL due to the limited openssl support on the ESP32. This is being used to handle certificates as part of an EV Charge Point product. So we can implement Vehicle to Grid (V2G) support.
Cheers
Adam
Hello,
Are there any instructions available for using wolfSSL with Visual Studio Code, PlatformIO and ESP32-S3 utilizing the Arduino framework?
I can see instructions for building for Visual Studio, but nothing for Visual Studio Code or ESP32-S3 specific without using the ESP-IDF
Tried to install wolfSSL using the platformio registry which pulls in version 5.5.4 but get the following errors when trying to build.
unknown register name 'r8' in 'asm'
#error "you need to write an os specific wc_GenerateSeed() here"
I am including a wc_GenerateSeed function
// custom_entropy.cpp
#include <wolfssl/wolfcrypt/types.h>
#include <string.h> // for memcpy
extern "C" {
#include <esp_system.h>
}
// Define the OS_Seed type
typedef struct {
byte* seed; // Pointer to the seed buffer
word32 size; // Size of the seed buffer
word32 idx; // Index to keep track of the position in the seed buffer
} OS_Seed;
// Declaration of the custom wc_GenerateSeed function
int wc_GenerateSeed(OS_Seed* os, byte* seed, word32 sz);
// Implementation of the custom wc_GenerateSeed function
int wc_GenerateSeed(OS_Seed* os, byte* seed, word32 sz)
{
// Gather entropy using ESP32 SDK functions
for (word32 i = 0; i < sz; i += sizeof(uint32_t)) {
uint32_t randomValue = esp_random();
memcpy(seed + i, &randomValue, sizeof(uint32_t));
}
return 0; // Success
}
Any help appreciated!
Thanks
Adam
Posts found: 15
Generated in 0.024 seconds (95% PHP - 5% DB) with 5 queries