wolfSSL base layer info

181 Views Asked by At

I know that wolfSSL is the successor of yaSSL. But I would like to know what is the base layer of wolfSSL/yaSSL developed from.

Whether wolfSSL uses openSSL or LwIP functions internally in embedded systems (FreeRTOS, ARM)?

Best regards, Iyaps.

1

There are 1 best solutions below

4
On

I know that wolfSSL is the successor of yaSSL. But I would like to know what is the base layer of wolfSSL/yaSSL developed from.

Excellent Question!

yaSSL (yet another SSL) was a library written from scratch (no base) in C++ for use in mySQL, commissioned by mySQL since the OpenSSL licensing did not work with the Apache license used by mySQL at the time. The library was written from scratch by the now CTO and co-founder of wolfSSL Inc. in 2004.

After some time passed with yaSSL out in the world there was demand from the market for an embedded C implementation. To optimize the code for portability and footprint the wolfSSL CTO strapped on his working boots for a second time and completely re-wrote, from scratch, the same library in C. This came to be called "yet another SSL written in C" or CyaSSL for short. This was in 2006.

wolfSSL Inc. was established a short time later and CyaSSL was re-branded to wolfSSL in 2014/2015.

Long story short, there is no "base", everything was written from the ground up!

As time went on more and more users wanted to replace OpenSSL in their applications with wolfSSL because it was backed by a real company, written by professionals, offered support and maintenance along with a commercial licensing option, and was all in all more focused and dedicated to protecting the end customer.

To that end wolfSSL wrote a "compatibility layer" so that applications that used to link to OpenSSL could be re-compiled to now link to wolfSSL without changing the API interfaces. The OpenSSL API's just map to wolfSSL internal APIs' instead.

Does that help?

Whether wolfSSL uses openSSL or LwIP functions internally in embedded systems (FreeRTOS, ARM)?

wolfSSL supports several TCP/IP implementations but is not dependent on any single one. In fact wolfSSL uses a custom "I/O callback" solution and has setup some default callbacks for use when building with LWIP, or BSD sockets, etc. However, if a user wanted to do a TLS connection between two applications over RFID... that is totally possible! wolfSSL has projects involving TLS connections over BlueTooth, USB Serial, in-memory, between two applications on the same PC, over a SPI interface, and more! Users can write and register their own custom I/O callbacks or they can use one of the default ones offered by wolfSSL as it fits the users needs. To summarize it one could say "If it can send and receive data, wolfSSL can do a TLS connection over it".

Warm Regards,

  • K