Topic: how to build wolfssl for gnu-efi?

I am trying to use wolfssl in my vs gnu-efi project. What are the steps for GNU-EFI ?

Thank you.

Share

Re: how to build wolfssl for gnu-efi?

Have you had a look at https://github.com/wolfSSL/wolfssl-exam … efi-static and https://github.com/wolfSSL/wolfssl-exam … fi-library ?

Share

Re: how to build wolfssl for gnu-efi?

Yes I checked it. Made an .efi (examples/uefi-library/libwolfcrypt.efi) with WSL. I got the main library in examples/uefi-static/... Used: make on WSL. Got wolfssl folder as .sln project. Here I built the project and got the .lib but when I reference it from gnu-efi project (#include <wolfssl/ssl.h>), I get many errors from file WinUser.h


I think I am missing something or that .sln project is not auto configured for gnu-efi environment?

Can you explain it?

[NOTE:My purpose is sending https requests on efi]

Share

Re: how to build wolfssl for gnu-efi?

Hi
The examples don't show how to build TLS protocols for EFI,  only wolfCrypt (cryptography algorithms implementation).

For the purpose described, (https server) you need to connect wolfSSL to a transport layer (typically a TCP/IP stack with its own drivers etc.)

>  I get many errors from file WinUser.h

This sounds windows specific, perhaps your IDE is configuring a windows project which is not compatible with EFI. You will have to create a user_settings.h file specific for EFI, assign a transport via custom I/O callbacks (e.g. a TCP/IP stack) and then compile against gnuefi (not against your OS libraries).

Suggest: make a working HTTP server first, then upgrade to HTTPS by linking wolfSSL once you have your sockets working.

We don't have a port for EFI yet, but if you have drivers for your interrface you may want to try and port wolfIP (https://github.com/wolfssl/wolfip) to gnu-efi,  There is a simple REST HTTPS server included there

Regards,

--
Daniele  (wolfSSL)

Share

Re: how to build wolfssl for gnu-efi?

danielinux wrote:

Hi
The examples don't show how to build TLS protocols for EFI,  only wolfCrypt (cryptography algorithms implementation).

For the purpose described, (https server) you need to connect wolfSSL to a transport layer (typically a TCP/IP stack with its own drivers etc.)

>  I get many errors from file WinUser.h

This sounds windows specific, perhaps your IDE is configuring a windows project which is not compatible with EFI. You will have to create a user_settings.h file specific for EFI, assign a transport via custom I/O callbacks (e.g. a TCP/IP stack) and then compile against gnuefi (not against your OS libraries).

Suggest: make a working HTTP server first, then upgrade to HTTPS by linking wolfSSL once you have your sockets working.

We don't have a port for EFI yet, but if you have drivers for your interrface you may want to try and port wolfIP (https://github.com/wolfssl/wolfip/snake game) to gnu-efi,  There is a simple REST HTTPS server included there

Regards,

--
Daniele  (wolfSSL)

I agree with this advice. One mistake I often see is treating wolfSSL as a complete HTTPS server solution. In reality, wolfSSL handles the TLS layer, but you still need a functioning transport layer underneath it.
Personally, I would follow the suggested approach: get a plain HTTP server working first, verify that your networking stack and socket layer are stable, and only then integrate wolfSSL. Debugging networking and TLS at the same time can become very difficult.

Share