emSSL is created by The Embedded Experts from SEGGER and is a software library that enables you to create secure connections between a client and a server, typically over the Internet, using TCP/IP. Making it an ideal solution for your safety critical embedded devices and environment.

emSSL is created by The Embedded Experts from SEGGER and is a software library that enables you to create secure connections between a client and a server, typically over the Internet, using TCP/IP. Making it an ideal solution for your safety critical embedded devices and environment.

Why should I use emSSL?

  • emSSL offers all features for current TLS and includes its latest protocol versions.
  • emSSL is a high quality product designed to be used easily but without any cutbacks.
  • emSSL is not covered by an open-source or required-attribution license and can be integrated in any free, commercial, or proprietary product without the obligation to disclose the combined source.
  • emSSL is provided as source code and offers transparency for all included modules, allowing inspection by auditors.
  • emSSL is portable. The complete software is written in ANSI C and is compiler as well as target independent. It can be implemented in PC applications and in embedded software.
  • emSSL is configurable. It is created for high performance and a low memory footprint. The library can be configured to fit any speed or size requirements. Unused features can be excluded, additional features can easily be added.


emSSL's cryptographic algorithms are tuned for speed and security and are validated by NIST. A plug-in cryptography interface delivers more performance from a wide range of cryptographic accelerators.


emSSL is designed for embedded systems and has a minimal RAM and ROM footprint. Because emSSL is modular, you only pay for what you use.


As emSSL is portable, it's possible to run on virtually any core and any compiler, and emSSL runs on Windows and Linux with ease. SEGGER can provide preconfigured support for a wide range of targets.

Time to market

emSSL is easy to use and easy to port delivering a fast time to market.  With first-class support and outstanding documentation, emSSL is a solid investment.

Getting Started

Live Demonstration 

emSSL Sample Applications

emSSL can be used even on small microcontrollers to serve websites on the internet:

The site is running on an emPower Board, featuring a Kinetis K60 Cortex-M4 microcontroller. It is powered by SEGGER software only.



emSSL is shipped with a number of examples that demonstrate TLS capability and how to integrate emSSL into your application:

  • Browser—a minimal text-based web browser using HTTPS to retrieve web content
  • WebServer—a minimal web server using HTTPS
  • ROT13Server—A server that provides a ROT13 service.
  • ROT13Client—A client that uses the ROT13 service.

 emSSL Tools for Evaluation

Browsing Websites with emSSL

Open a command line window on Windows and navigate to the Browser directory that contains the Browser.exe application. Once there, run Browser.exe and you should see something similar to this:



The browser opened a secure connection to the website on port 443 (the HTTPS port) and retrieved the HTML associated with the home page. It then processed the HTML markup to format the output nicely. The browser will work on any website that can support an HTTPS connection, but graphic-rich websites have a poor textual browsing experience.

Serving Webpages with emSSL

Now open up a second command line window, navigate to the WebServer directory and run the WebServer.exe application. It is likely that you will see a dialog asking you to grant the web server application access to the network, which you should do. You should now see something like:

Serving Webpages with emSSL

The web server application is waiting for somebody to connect to it such that it can serve its small web page. Now we will connect emSSL to emSSL over a TLS connection — we are going to browse the website served by the WebServer application by using the Browser application. Back in the first window, type "browser", the IP address of the local web server and the port it will serve on, a

Serving Webpages with emSSL

This shows that both sides of the TLS connection are working correctly and the cipher suite that was agreed between them, RSA-AES-256-GCM-WITH-SHA-384 in this case, is the same on both sides

To prove that this is no accident, you can point a standard web browser, such as Firefox or Chrome, to the local web server. Open your web browser and enter the URL "" into the address bar. You should now be greeted by a notification from the browser that the certificate presented is invalid — and it is, according to the browser, because you are browsing your own PC using a self-signed certificate rather than a fully-authenticated certificate for a website on the Internet. Accept the certificate or click "Advanced" and "Proceed to" and you should be greeted with a short web page served by emSSL on your PC.

Internet Explorer has some difficulties with locally-hosted websites serving what it thinks are invalid certificates, so it is better to use Chrome or Firefox in this case.

Buyer's Guide

The emSSL Package

emSSL is a complete software package, designed for embedded systems and comes with everything which is needed to secure communication.

It includes all modules which implement the required functionality to use SSL. They are provided in source code, to allow complete control of the code that is used in the product and create transparency to avoid worries about possible back doors or weakness in code, which cannot be checked in precompiled libraries. emSSL comes with a simple, yet powerful API to make using emSSL in your product as easy as possible.

It also includes sample applications in binary and source code, which demonstrate how and when emSSL can be used in real life scenarios. For a list of included applications, see the chapters below.

Included Applications

emSSL Tools for Evaluation

emSSL includes sample utilities and tools to show how to use emSSL. 
The sample applications are available as executables for evaluation upon request.

Application name Description
SimpleWebClientGet a webpage via HTTPS and print it to the console
SimpleWebServerA minimal web server using HTTPS
PrintCert Read an X.509 SSL certificate and print its information to the console
ScanScan a server for its supported cipher suites.
ROT13ServerA server that provides a ROT13 service
ROT13ClientA client that uses the ROT13 service


  • Secures your connection
  • Compatible with any modern server
  • Easy to understand source code
  • Simple to integrate into your IoT environment
  • No additional hardware required
  • No royalties
Tecnologix offre supporto gestito direttamente dal Team di sviluppo.
Non esitare a metterti in contatto con i nostri esperti.
Basta chiedere qui

Hai bisogno di aiuto per sviluppare il tuo progetto?

Con più di 25 anni di esperienza nei servizi di ingegneria elettronica ed informatica, affiancati da consulenza e formazione, Tecnologix è il partner ideale per lo sviluppo di ogni tipo di applicazione nel settore industriale.
Clicca il pulsante qui sotto e inviaci la tua richiesta, il nostro staff ti risponderà il prima possibile.