WoflSSL Delivers on Latest MQTT Standard

WolfSSL Delivers on Latest MQTT Standard

July 19, 2018
MQTT v5.0 is out, and WolfSSL is chiming in with its implementation of the latest Message Queuing Telemetry Transport protocol.

The Message Queuing Telemetry Transport (MQTT) is one the more popular protocols used for the Internet of Things (IoT). It’s now in its fifth revision, adding a number of new features and addressing many issues brought up by high-latency, low-speed wireless communication networks, where low communication overhead is as important as secure data transfers.

WolfSSL is delivering its implementation of MQTT v5.0 now. WolfSSL builds on its products like wolfMQTT on the wolfCrypt embedded crypto engine, including products like wolfSSH and wolfSSL. The latest wolfSSL supports the new TLS 1.3 standard. WolfSSL dual licenses its products under the open-source GPLv2 as well as a commercial license.

WolfSSL may not be a household name for developers, but many are likely to be using the company’s technology. A host of chip and tool vendors license and deliver WolfSSL technology as part of their development platforms. The wolfCrypt crypto engine has been customized to support a range of hardware security engines found on the latest microcontrollers and SoCs.

One reason to choose a commercial implementation like wolfMQTT is its compact size—it uses only 3.6 kB. Another is that it supports quality-of-service (QoS) levels 0-2. SSL/TLS 1.3 (Secure Sockets Layer/Transport Layer Security) encryption can be blended with MQTT with the wolfTLS adding less than 30 kB to the code. The TLS session resumption support can reduce connection costs for sensor devices and other platforms with limited resources.

“wolfMQTT’s progression to the new 5.0 standard helps developers to lever our security coding and testing standards when using this critical IoT protocol,” says Larry Stefonic, Co-founder and CEO of wolfSSL. “Our implementation of MQTT has proven quite popular when coupled with wolfSSL.”

What’s New in MQTTv5.0?

The MQTT 5.0 specification includes several improvements, such as AUTH packet type to submit authentication after a connection is made. Authentication is critical to secure IoT applications. Servers can now disconnect from clients; the protocol supports new data types for UTF-8 string pairs. Packets are able to include optional key/value properties that are useful for custom IoT node communication.

In addition, connection negative acknowledgements can now incorporate a reason code to describe the reason for connection failures. And it’s now possible to provide passwords without a username. This will be used with IoT nodes where only be one user would be associated with the device; thus, a username would be redundant.

The code is written in C89 to instill portability. WolfSSL also employs static-analysis tools to make sure its code is bug-free. It supports all client-side packet types and protocol options. Detailed error checking and handling is in the mix, too.

Most chipsets are supported—Arm, Intel, Motorola, mbed, NXP/Freescale, Microchip (PIC32)/Atmel, STMicro (STM32F2/F4), Analog Devices, and Texas Instruments. It also works with operating systems such as Windows, Linux, Mac OS X, Linux, FreeRTOS, and ChibiOS.

About the Author

William G. Wong | Senior Content Director - Electronic Design and Microwaves & RF

I am Editor of Electronic Design focusing on embedded, software, and systems. As Senior Content Director, I also manage Microwaves & RF and I work with a great team of editors to provide engineers, programmers, developers and technical managers with interesting and useful articles and videos on a regular basis. Check out our free newsletters to see the latest content.

You can send press releases for new products for possible coverage on the website. I am also interested in receiving contributed articles for publishing on our website. Use our template and send to me along with a signed release form. 

Check out my blog, AltEmbedded on Electronic Design, as well as his latest articles on this site that are listed below. 

You can visit my social media via these links:

I earned a Bachelor of Electrical Engineering at the Georgia Institute of Technology and a Masters in Computer Science from Rutgers University. I still do a bit of programming using everything from C and C++ to Rust and Ada/SPARK. I do a bit of PHP programming for Drupal websites. I have posted a few Drupal modules.  

I still get a hand on software and electronic hardware. Some of this can be found on our Kit Close-Up video series. You can also see me on many of our TechXchange Talk videos. I am interested in a range of projects from robotics to artificial intelligence. 

Sponsored Recommendations

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!